Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Категории и подкатегории
 
 автор: rusel6   (19.09.2009 в 16:34)   письмо автору
76.4 Кб
 
 

Помогите избавится от этих строк пожалуйста
Я прикрепил картинку со структурой категорий в ней все будет понятно
<?php
$grup_tovar = mysql_query ("SELECT id, name FROM shop_categories where parent = 0 ",$db);
$row = mysql_fetch_array($grup_tovar);
do
{
echo $row ['name'].'<br>';


$grup_tovar1 = mysql_query ("SELECT * FROM shop_categories where parent ='".$row['id']."'",$db);
$row2 = mysql_fetch_array($grup_tovar1);
do
{
echo '-- '.$row2['name'].'<br>';

$grup_tovar2 = mysql_query ("SELECT * FROM shop_categories where parent ='".$row2['id']."'",$db);
$row3 = mysql_fetch_array($grup_tovar2);
do
{
echo '---------- '.$row3['name'].'<br>';


}
while ($row3 = mysql_fetch_array($grup_tovar2));

}
while ($result_t = mysql_fetch_array($grup_tovar1));

echo '<br>';
}
while ($row = mysql_fetch_array($grup_tovar));
?>

  Ответить  
 
 автор: cheops   (19.09.2009 в 16:36)   письмо автору
 
   для: rusel6   (19.09.2009 в 16:34)
 

Что за место них хотите видеть?

  Ответить  
 
 автор: Rusel6   (19.09.2009 в 16:43)   письмо автору
 
   для: cheops   (19.09.2009 в 16:36)
 

Что бы их просто не было видно, я так понял это ошибка

  Ответить  
 
 автор: cheops   (19.09.2009 в 16:53)   письмо автору
 
   для: Rusel6   (19.09.2009 в 16:43)
 

Т.е. должен выводится список только корневых каталогов? Или подкаталоги тоже должны выводиться, но только у выбранного каталога?

  Ответить  
 
 автор: Rusel6   (19.09.2009 в 17:03)   письмо автору
100.2 Кб
 
   для: cheops   (19.09.2009 в 16:53)
 

Я выслал структуру таблицы этих категорий и под категорий. Так вот нужно чтоб выводились настоящие категории вот например Главные категории у них поле parent = 0 а у этих главных категорий могут быть под категории, соответсвенно у подкатегории поле parent будет номер id главной под категории а у подкатегории есть тоже под категории и так дальше. Ну мне нужно что бы отображались настоящие категории соотвтствующие свое надкатегории

  Ответить  
 
 автор: cheops   (19.09.2009 в 17:18)   письмо автору
 
   для: Rusel6   (19.09.2009 в 17:03)
 

Цикл do {} while следует заменить на while и все встанет на свои места. Вам не нужно пост-условие, так как флаг-условие цикла формируется сразу - т.е. удобнее использовать прямой while. Попробуйте использовать следующий подход.
<?php
  $grup_tovar 
mysql_query ("SELECT id, name FROM shop_categories where parent = 0 ",$db);
  if(
mysql_num_rows($grup_tovar))
  while(
$row mysql_fetch_array($grup_tovar))
  {
    echo 
$row ['name'].'<br>';
    
$grup_tovar1 mysql_query ("SELECT * FROM shop_categories where parent ='".$row['id']."'",$db);
    if(
mysql_num_rows($grup_tovar1))
    while(
$row2 mysql_fetch_array($grup_tovar1))
    {
      echo 
'-- '.$row2['name'].'<br>';
      
$grup_tovar2 mysql_query ("SELECT * FROM shop_categories where parent ='".$row2['id']."'",$db);
      if(
mysql_num_rows($grup_tovar2))
      while (
$row3 mysql_fetch_array($grup_tovar2));
      {
        echo 
'---------- '.$row3['name'].'<br>'
      }
    }
  }
?>

  Ответить  
 
 автор: Rusel6   (19.09.2009 в 17:43)   письмо автору
18.1 Кб
 
   для: cheops   (19.09.2009 в 17:18)
 

Вот выслал что получилось. Не видно 2-ой под категори

  Ответить  
 
 автор: cheops   (19.09.2009 в 17:48)   письмо автору
 
   для: Rusel6   (19.09.2009 в 17:43)
 

Если не сложно, прикрепите дамп таблицы shop_categories, чтобы можно было воспроизвести ситуацию.

  Ответить  
 
 автор: Rusel6   (19.09.2009 в 17:50)   письмо автору
580 байт
 
   для: cheops   (19.09.2009 в 17:48)
 

вот

  Ответить  
 
 автор: cheops   (19.09.2009 в 17:58)   письмо автору
 
   для: Rusel6   (19.09.2009 в 17:50)
 

Ага, точка с запятой лишняя затесалась, воспользуйтесь следующим вариантом
<?php
  $grup_tovar 
mysql_query ("SELECT id, name FROM shop_categories where parent = 0 ",$db); 
  if(
mysql_num_rows($grup_tovar)) 
  while(
$row mysql_fetch_array($grup_tovar)) 
  { 
    echo 
$row ['name'].'<br>'
    
$grup_tovar1 mysql_query ("SELECT * FROM shop_categories where parent ='".$row['id']."'",$db); 
    if(
mysql_num_rows($grup_tovar1)) 
    while(
$row2 mysql_fetch_array($grup_tovar1)) 
    { 
      echo 
'-- '.$row2['name'].'<br>'
      
$grup_tovar2 mysql_query ("SELECT * FROM shop_categories where parent ='".$row2['id']."'",$db);
      if(
mysql_num_rows($grup_tovar2)) 
      while (
$row3 mysql_fetch_array($grup_tovar2))
      { 
        echo 
'---------- '.$row3['name'].'<br>';  
      } 
    } 
  } 
?>

  Ответить  
 
 автор: Rusel6   (19.09.2009 в 18:06)   письмо автору
 
   для: cheops   (19.09.2009 в 17:58)
 

Все получилось спасибо БОЛЬШОЕ!!!!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования