PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (2): [1] 2 »
Найдено сообщений: 30
ibe
Отправлено: 25 Августа, 2009 - 16:14:49 • Тема: Категории и подкатегории • Форум: Работа с СУБД
Ответов: 67 Просмотров: 27805
var_dump выводит все категории что есть в базе в массив. А мне нужно вывести только родительские категории, ибо не родительские категории уже готовы:
PHP:
скопировать код в буфер обмена
<?PHP
$style = 11 ;
$cats1 = mysql_query ( "SELECT * FROM categories WHERE parent_id=0" ) ; {
echo " <li class='tn" . $style . "'>
<a href='/view.php?cat=" . $cats [ 'id' ] . "'><span>" . $cats [ 'title' ] . "</span></a> </li>" ;
$style = $style + 1 ;
}
?>
Теперь нужно вывести только нижнее меню, которое состоит из родительских категорий. Как - я не знаю. Пробовал через WHERE parent_id=id... не выходит.
-----
Вы неправильно меня поняли.
ibe
Отправлено: 24 Августа, 2009 - 22:12:10 • Тема: Категории и подкатегории • Форум: Работа с СУБД
Ответов: 67 Просмотров: 27805
Запарели уже эти категории...нифига ничего не получается.
Уже 2-ой день сижу с ними. С массивами я не пониамю как это можно сделать, ибо категории по parent_id не получается отсортировать вообще.
ibe
Отправлено: 24 Августа, 2009 - 14:26:15 • Тема: Категории и подкатегории • Форум: Работа с СУБД
Ответов: 67 Просмотров: 27805
При таком варианте:
получил вот это:
CODE (
text ):
скопировать код в буфер обмена
array(8) {
[1]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(2) "PC"
[1]=>
string(1) "0"
}
}
[2]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(3) "PSP"
[1]=>
string(1) "0"
}
}
[3]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(7) "XBOX360"
[1]=>
string(1) "0"
}
}
[4]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(12) "PlayStation3"
[1]=>
string(1) "0"
}
}
[5]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(5) "Flash"
[1]=>
string(1) "0"
}
}
[6]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(6) "Mobile"
[1]=>
string(1) "0"
}
}
[7]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(7) "Новости"
[1]=>
string(2) "1"
}
}
[8]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(6) "Статьи"
[1]=>
string(2) "1"
}
}
}
ibe
Отправлено: 24 Августа, 2009 - 13:09:58 • Тема: Категории и подкатегории • Форум: Работа с СУБД
Ответов: 67 Просмотров: 27805
Нет. Я просто никак не пойму.
Вот сейчас поставил для наглядности DataLife engine. Посмотрел таблицу с категориями. Вот что там(см. скриншот)
ibe
Отправлено: 24 Августа, 2009 - 09:54:51 • Тема: Категории и подкатегории • Форум: Работа с СУБД
Ответов: 67 Просмотров: 27805
Как отсортировывать эти родительские категории? Вот к примеру есть 2 категории - "Новости" и "Статьи", к ним 2 родительские категории - "В мире"(относится к "Новости" ), "В России"(относится к "Статьи" ) ?
Какой расклад дожен быть в БД... ?
ibe
Отправлено: 24 Августа, 2009 - 09:00:42 • Тема: Категории и подкатегории • Форум: Работа с СУБД
Ответов: 67 Просмотров: 27805
Цитата: У самых родительских категорий сделай parent_id = -1 или ноль - что больше нравится.
Вот здесь можно по подробней. Почему в parent_id нельзя записать id категории.
К примеру:
Новости ( id - 9) - подкатегория "В мире" (parent_id - 9).
Статьи (id - 16) - подкатегория "В России" (parent_id - 16) ?
Объясните пожалуйста
ibe
Отправлено: 24 Августа, 2009 - 08:53:41 • Тема: Категории и подкатегории • Форум: Работа с СУБД
Ответов: 67 Просмотров: 27805
Цитата: Зря ты не стал пользоваться массивом, который я показал.
У меня меню не много другое. Верхняя часть состоит из картинок(т.е. категория PC игры - картинка PC Игры, см. скриншот)
Цитата: У самых родительских категорий сделай parent_id = -1 или ноль - что больше нравится.
Вот здесь можно по подробней. Почему в parent_id нельзя записать id категории.
К примеру:
Новости ( id - 9) - подкатегория "В мире" (parent_id - 9).
Статьи (id - 16) - подкатегория "В России" (parent_id - 16) ?
Объясните пожалуйста
ibe
Отправлено: 23 Августа, 2009 - 21:25:47 • Тема: Категории и подкатегории • Форум: Работа с СУБД
Ответов: 67 Просмотров: 27805
Вернёмся к меню.
С верхней частью(категории) меню все в порядке:
PHP:
скопировать код в буфер обмена
<?PHP
$style = 11 ;
$cats1 = mysql_query ( "SELECT * FROM categories WHERE parent_id=0" ) ; {
echo " <li class='tn" . $style . "'>
<a href='/view.php?cat=" . $cats [ 'id' ] . "'><span>" . $cats [ 'title' ] . "</span></a> </li>" ;
$style = $style + 1 ;
}
?>
Но вот с родительскими категориями проблема. Как можно их сгенерировать, если в базе они отсортировываются по полю parent_id ?
Пример:
категория "Новости" (id - 1 ) к ней род. категория "В мире" (id - 2, parent_id - 1 ) ?
ibe
Отправлено: 22 Августа, 2009 - 18:54:12 • Тема: Категории и подкатегории • Форум: Работа с СУБД
Ответов: 67 Просмотров: 27805
В общем я вернулся к этому варианту:
Это получилось меню.
Теперь как реализовать вывод новостей, статей и т.п. по их категориям ? Ещё не понятно, как будет работать при этом таблица parent_id ?
ibe
Отправлено: 21 Августа, 2009 - 19:07:10 • Тема: Категории и подкатегории • Форум: Работа с СУБД
Ответов: 67 Просмотров: 27805
Вот код:
PHP:
скопировать код в буфер обмена
include ( "include/db.php" ) ;
if ( ! isset ( $cat ) ) { $cat = 1 ; } // Создаем запросы
$result2 = mysql_query ( "SELECT * FROM `articles` WHERE `cat` = '$cat ' ORDER BY `id` DESC" , $db ) ; {
{
echo "
<td class='stat-box-full'>
<table cellpadding='0' cellspacing='0' border='0' width='100%' c lass='stat-item'>
<tr>
<td class='s-box1'>
<a href='/articles/693/view.html'>
<div class='im'>
<img src='" . $myarticle [ 'poster' ] . "' alt='' width='150' height='100' />
</div>
</a>
<div class='review' style='margin-top: 4px; vertical-align: middle;''><nobr>
</nobr></div>
</td>
<td class='s-box2'>
<span class='date'>
" . $myarticle [ 'date' ] . " </span>
<h3><a href='/'>" . $myarticle [ 'title' ] . "</a></h3>
<p>" . $myarticle [ 'short_story' ] . " </p>
</td>
</tr>
</table>
" ;
}
Вывода информации из бд не происходит.
ibe
Отправлено: 21 Августа, 2009 - 15:59:15 • Тема: Категории и подкатегории • Форум: Работа с СУБД
Ответов: 67 Просмотров: 27805
Всем огромное спасибо. Я разобрался.
Таки сделал вот так:
PHP:
скопировать код в буфер обмена
include ( "include/functions.php" ) ;
switch ( $_GET [ 'subcat' ] ) {
case '1' :
ShowNews( $cat ) ;
break ;
case '2' :
ShowArticles( $cat ) ;
break ;
default :
print ( '<p style=" margin-top:25px; margin-left:15px; font-size:15px;">Извините, категория пуста</p>' ) ;
break ;
}
Вот файл с функциями:
PHP:
скопировать код в буфер обмена
function ShowNews( $cat )
{
include ( "include/db.php" ) ;
$cat = $_GET [ 'cat' ] ;
// Создаем запросы
$result = mysql_query ( "SELECT * FROM `news` WHERE `cat` = '$cat ' ORDER BY `id` DESC" , $db ) ; do
{
echo "<td class='news-box-full'>
<div class='news-item'><div class='news-item-a'>
<p><a href='/news/6932/view.html'>
<img src='" . $mynews [ 'poster' ] . "' width='150' height='100' alt='" . $mynews [ 'title' ] . "' />
</a>
<span class='date'>" . $mynews [ 'date' ] . "</span>
<a href='/viewpost.php'>" . $mynews [ 'title' ] . "</a> <div class='review' style='margin-left: 6px; vertical-align: middle;'><nobr>
</nobr></div>
</p>
</div></div>
</td>" ;
}
}
..... и т. п.
Теперь надо бы сделать вывод "case" автоматически, с помощью бд
----
Скажите, нормально ?
ibe
Отправлено: 21 Августа, 2009 - 13:34:57 • Тема: Категории и подкатегории • Форум: Работа с СУБД
Ответов: 67 Просмотров: 27805
Стоп.
Почему же нельзя сделать примерно так:
создать в базе 2 таблици - categories, subcategories.
Поля categories:
Поля subcategories:
Цитата: id
title
parent_id(индефикатор категории из таблици categories)
Далее разберёмся с меню:
PHP:
скопировать код в буфер обмена
<?PHP
$subcat = mysql_query ( "SELECT * FROM subcategories WHERE cat=$cat " , $db ) ; do
{
echo "
<li><a href='/view.php?subcat=" . $mysubcat [ 'id' ] . "&&cat=1'><b>" . $mysubcat [ 'title' ] . "</b></a></li>
" ;
}
?>
И с выводом через GET, с помощью "case" будет производится вывод контента и подкатегорий к активной категории.
Ссылки будут таковы: Цитата: /view.php?cat=ид_категории&&subcat=ид_подкатегории
Только вот для статьей, новостей из других подкатегорий придётся писать разные запросы или как?!
Объясните пожалуйста.
Страниц (2): [1] 2 »
Powered by ExBB FM 1.0 RC1. InvisionExBB