PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (37): В начало « ... 7 8 9 10 [11] 12 13 14 15 ... » В конец
Найдено сообщений: 542
event
Отправлено: 06 Мая, 2014 - 10:07:58 • Тема: Запрос MySQL • Форум: Вопросы новичков
Ответов: 5 Просмотров: 1440
Короче говоря, есть таблица MySQL portfolio: CODE (
SQL ):
скопировать код в буфер обмена
CREATE TABLE IF NOT EXISTS `portfolio` (
`id` int( 10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`cat` int( 10) NOT NULL DEFAULT '0' ,
`name` varchar( 255) NOT NULL DEFAULT '' ,
`link` varchar( 255) NOT NULL DEFAULT '' ,
`video` varchar( 255) NOT NULL DEFAULT '' ,
`description` text NOT NULL ,
`image1` varchar( 255) NOT NULL DEFAULT '' ,
`image2` varchar( 255) NOT NULL DEFAULT '' ,
`price` varchar( 255) NOT NULL DEFAULT '' ,
`time` varchar( 255) NOT NULL DEFAULT '' ,
`added` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ,
`userid` int( 10) UNSIGNED NOT NULL DEFAULT '0' ,
PRIMARY KEY ( `id` )
) ENGINE= MyISAM DEFAULT CHARSET= utf8 AUTO_INCREMENT = 4 ;
И есть такой запрос:
Мне нужно добавить к этому запросу 2 пункта, чтобы он вытаскивал из таблицы CATEGORIES имя категории:
Таблица CATEGORIES:
CODE (
SQL ):
скопировать код в буфер обмена
CREATE TABLE IF NOT EXISTS `categories` (
`id` int( 10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`parent_id` int( 10) NOT NULL DEFAULT '0' ,
`name` varchar( 255) NOT NULL DEFAULT '' ,
PRIMARY KEY ( `id` )
) ENGINE= MyISAM DEFAULT CHARSET= utf8 AUTO_INCREMENT = 71 ;
А теперь в запрос надо добавить:
1. Чтобы вытаскивать поле name из таблицы categories, где WHERE id = полю cat в таблице portfolio
2. Чтобы вытаскивать поле name из таблицы categories, WHERE id = полю cat в таблице portfolio AND parent_id (в таблице portfolio) = 0
event
Отправлено: 05 Мая, 2014 - 22:23:43 • Тема: Запрос MySQL • Форум: Вопросы новичков
Ответов: 5 Просмотров: 1440
3d_killer , cat_name - название раздела, а то что я хочу сделать еще это подкатегория этого раздела.
Там у меня в таблице дерево:
id parent_id name
event
Отправлено: 05 Мая, 2014 - 20:54:55 • Тема: Запрос MySQL • Форум: Вопросы новичков
Ответов: 5 Просмотров: 1440
Привет.
Есть у меня такой запрос:
PHP:
скопировать код в буфер обмена
$mysqli -> query ( "SELECT p.id, p.cat, p.name, p.link, p.video, p.description, p.image1, p.image2, p.price, p.time, p.added, c.name AS cat_name FROM portfolio as p LEFT JOIN categories AS c ON p.cat = c.id" )
Он работает, но мне нужно добавить к нему еще одну штуку, наверное еще один left join, нужно чтобы он вытаскивал с таблицы categories ячейку name, где WHERE id = p.cat AND parent_id = '0'.
Как это можно осуществить, а то как не пробую ничего не получается.
Заранее спасибо.
event
Отправлено: 04 Мая, 2014 - 12:22:40 • Тема: Выпадающий список • Форум: Вопросы новичков
Ответов: 15 Просмотров: 566
Panoptik , хорошо, сорри что задолбал)
Но никак решить это не могу, и тот последний вариант, тож корявит)
Ладно, спасибо =)
event
Отправлено: 03 Мая, 2014 - 22:38:05 • Тема: Выпадающий список • Форум: Вопросы новичков
Ответов: 15 Просмотров: 566
Panoptik , как раз, то что мне надо, описано в первом случае. Как можно это по правильному сделать, а то у меня чего-то не получается, криво выходит.
(Добавление)
Пробую вот так: PHP:
скопировать код в буфер обмена
function build_tree( $cats , $parent_id , $only_parent = false ) {
$tree = '' ;
if ( $only_parent == false ) {
foreach ( $cats [ $parent_id ] as $cat ) {
$tree .= '<optgroup label="' . $cat [ 'name' ] . '"><option>' . $cat [ 'name' ] ;
$tree .= build_tree( $cats , $cat [ 'id' ] ) ;
$tree .= '</option> </optgroup>' ;
}
$cat = $cats [ $parent_id ] [ $only_parent ] ;
$tree .= '<option>' . $cat [ 'name' ] . ' #' . $cat [ 'id' ] ;
$tree .= build_tree( $cats , $cat [ 'id' ] ) ;
$tree .= '</option>' ;
}
}
else return null ;
return $tree ;
}
echo '<select>' ;
echo build_tree( $cats , 0) ;
echo '</select>' ;
Но как видите, коряво выходит...
event
Отправлено: 03 Мая, 2014 - 19:50:51 • Тема: Выпадающий список • Форум: Вопросы новичков
Ответов: 15 Просмотров: 566
Panoptik , спасибо.
А как еще просить к option - style="font-weight: bold;", но только к тем у кого parent_id = 0
А то я пробую прописывать, а он всем подряд прописывает его.
Заранее спасибо!
event
Отправлено: 03 Мая, 2014 - 18:03:39 • Тема: Выпадающий список • Форум: Вопросы новичков
Ответов: 15 Просмотров: 566
Panoptik , извините попутал, но и этот li заменил на option.
Вот такой код: PHP:
скопировать код в буфер обмена
$result = $mysqli -> query ( "SELECT * FROM categories_old" ) ;
//Если в базе данных есть записи, формируем массив
if ( $result -> num_rows > 0) {
//В цикле формируем массив разделов, ключом будет id родительской категории, а также массив разделов, ключом будет id категории
while ( $cat = $result -> fetch_assoc ( ) ) {
$cats_ID [ $cat [ 'id' ] ] [ ] = $cat ;
$cats [ $cat [ 'parent_id' ] ] [ $cat [ 'id' ] ] = $cat ;
}
}
function build_tree( $cats , $parent_id , $only_parent = false ) {
$tree = '<select>' ;
if ( $only_parent == false ) {
foreach ( $cats [ $parent_id ] as $cat ) {
$tree .= '<option>' . $cat [ 'name' ] . ' #' . $cat [ 'id' ] ;
$tree .= build_tree( $cats , $cat [ 'id' ] ) ;
$tree .= '</option>' ;
}
$cat = $cats [ $parent_id ] [ $only_parent ] ;
$tree .= '<option>' . $cat [ 'name' ] . ' #' . $cat [ 'id' ] ;
$tree .= build_tree( $cats , $cat [ 'id' ] ) ;
$tree .= '</option>' ;
}
$tree .= '</select>' ;
}
else return null ;
return $tree ;
}
echo build_tree( $cats , 0) ;
Вот такой результат:
А должно быть все в одном открывающем списке.
(Добавление)
Помогите пожалуйста.
event
Отправлено: 03 Мая, 2014 - 16:26:12 • Тема: Выпадающий список • Форум: Вопросы новичков
Ответов: 15 Просмотров: 566
Panoptik , вы думаете я не пробовал?
Пробовал, вот так: PHP:
скопировать код в буфер обмена
$result = $mysqli -> query ( "SELECT * FROM categories_old" ) ;
//Если в базе данных есть записи, формируем массив
if ( $result -> num_rows > 0) {
//В цикле формируем массив разделов, ключом будет id родительской категории, а также массив разделов, ключом будет id категории
while ( $cat = $result -> fetch_assoc ( ) ) {
$cats_ID [ $cat [ 'id' ] ] [ ] = $cat ;
$cats [ $cat [ 'parent_id' ] ] [ $cat [ 'id' ] ] = $cat ;
}
}
function build_tree( $cats , $parent_id , $only_parent = false ) {
$tree = '<select>' ;
if ( $only_parent == false ) {
foreach ( $cats [ $parent_id ] as $cat ) {
$tree .= '<li>' . $cat [ 'name' ] . ' #' . $cat [ 'id' ] ;
$tree .= build_tree( $cats , $cat [ 'id' ] ) ;
$tree .= '</li>' ;
}
$cat = $cats [ $parent_id ] [ $only_parent ] ;
$tree .= '<option>' . $cat [ 'name' ] . ' #' . $cat [ 'id' ] ;
$tree .= build_tree( $cats , $cat [ 'id' ] ) ;
$tree .= '</option>' ;
}
$tree .= '</select>' ;
}
else return null ;
return $tree ;
}
echo build_tree( $cats , 0) ;
Результат, корявый:
event
Отправлено: 03 Мая, 2014 - 15:57:38 • Тема: Выпадающий список • Форум: Вопросы новичков
Ответов: 15 Просмотров: 566
Короче, сделано, но не совсем так как нужно:
PHP:
скопировать код в буфер обмена
$result = $mysqli -> query ( "SELECT * FROM categories" ) ;
//Если в базе данных есть записи, формируем массив
if ( $result -> num_rows > 0) {
//В цикле формируем массив разделов, ключом будет id родительской категории, а также массив разделов, ключом будет id категории
while ( $cat = $result -> fetch_assoc ( ) ) {
$cats_ID [ $cat [ 'id' ] ] [ ] = $cat ;
$cats [ $cat [ 'parent_id' ] ] [ $cat [ 'id' ] ] = $cat ;
}
}
function build_tree( $cats , $parent_id , $only_parent = false ) {
$tree = '<ul>' ;
if ( $only_parent == false ) {
foreach ( $cats [ $parent_id ] as $cat ) {
$tree .= '<li>' . $cat [ 'name' ] . ' #' . $cat [ 'id' ] ;
$tree .= build_tree( $cats , $cat [ 'id' ] ) ;
$tree .= '</li>' ;
}
$cat = $cats [ $parent_id ] [ $only_parent ] ;
$tree .= '<li>' . $cat [ 'name' ] . ' #' . $cat [ 'id' ] ;
$tree .= build_tree( $cats , $cat [ 'id' ] ) ;
$tree .= '</li>' ;
}
$tree .= '</ul>' ;
}
else return null ;
return $tree ;
}
echo build_tree( $cats , 0) ;
В результате получаю список через <ul>, <li>. А как это переделать под выпадающий список (select, option)? А то пробую, но коряво получается.
Заранее спасибо.
event
Отправлено: 01 Мая, 2014 - 11:36:06 • Тема: Выпадающий список • Форум: Вопросы новичков
Ответов: 15 Просмотров: 566
Всем привет.
Есть такая таблица MYSQL:
-- phpMyAdmin SQL Dump
-- version 3.4.8
-- http://www.phpmyadmin[dot]net
--
-- Хост: localhost
-- Время создания: Май 01 2014 г., 11:33
-- Версия сервера: 5.1.52
-- Версия PHP: 5.3.3
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- База данных: `fldb`
--
-- -------------------------------- ------------------------
--
-- Структура таблицы `categories`
--
CREATE TABLE IF NOT EXISTS `categories` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`sort` int(10) NOT NULL DEFAULT '0',
`name` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=71 ;
--
-- Дамп данных таблицы `categories`
--
INSERT INTO `categories` (`id`, `sort`, `name`) VALUES
(1, 0, 'Администрирование'),
(2, 0, 'Айдентика/Полиграфия'),
(12, 1, 'Системное администрирование'),
(13, 1, 'Служба поддержки'),
(15, 2, 'Верстка/Допечатная подготовка'),
(16, 2, 'Дизайн продукции/упаковки');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Нужно из этой таблицы вывести запрос и сделать цикл (условие) чтобы построить этот список:
В итоге должно получится так:
Администрирование
--- Системное администрирование
--- Служба поддержки
Айдентика/Полиграфия
--- Верстка/Допечатная подготовка'
--- Дизайн продукции/упаковки
Какие будут предложения?
event
Отправлено: 18 Апреля, 2014 - 15:17:47 • Тема: Регулярка • Форум: Вопросы новичков
Ответов: 4 Просмотров: 130
strip_tags канает, все ок.
Но есть одно, но... Мне все таки нужен preg_match_ALL, а не preg_match, а потом все это в цикл кинуть и потом работать)
event
Отправлено: 18 Апреля, 2014 - 15:06:28 • Тема: Регулярка • Форум: Вопросы новичков
Ответов: 4 Просмотров: 130
Привет.
Есть такой кусок:
CODE (
html ):
скопировать код в буфер обмена
<div class = "entry-content post_content" >
<p > ТЕКСТ, который нужно спарсить</ p >
</ div > <!-- .entry-content -->
надо из этого куса спарсить текст, пробую вот так:
Парсит, но к тому еще парсит другой мусор, который не нужен. Как решить?
event
Отправлено: 17 Марта, 2014 - 23:03:21 • Тема: Запрос MySQL • Форум: Вопросы новичков
Ответов: 3 Просмотров: 121
Пробую вот так:
CODE (
SQL ):
скопировать код в буфер обмена
$result = mysql_query( "SELECT group_concat(DISTINCT `some_id` separator ','), count(*) FROM `users` GROUP BY `family`, `name`, `middle`, `birthday` HAVING count(`some_id`) > 1" ) OR die( mysql_error( ) ) ;
Получаю:
Страниц (37): В начало « ... 7 8 9 10 [11] 12 13 14 15 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB