Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Категории Подкатегории вывод данных из бд

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Проблема в выводе категорий и подкатегорий из бд mySql
Артист
Отправлено: 12 Марта, 2009 - 04:24:55
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




привет всем... нужна помощь в выводе данных из бд в php... Суть такая. У меня сайт разделяется на категории, в каждой категории есть подкатегория.
Например категория Фотошоп, а в ней подкатегории Кисти, Шрифты, Стили, Градиенты.
Конечный результат таблицы должен выглядеть вот так:
-------------------------------- -----------------
PHP:
скопировать код в буфер обмена
  1.  <table width="200" border="0" align="center" cellpadding="0" cellspacing="0">
  2.        <tr>
  3.          <td align="center" valign="top"><a href="photoshop.php"><img src="images/photoshop.gif" border="0" alt="Photoshop, кисти, шрифты, стили, Градиенты" /></a></td>
  4.        </tr>
  5.        <tr>
  6.          <td>
  7.  <div id="coolmenu">
  8.  <a href="photoshop.php?rub=1">КИСТИ</a>
  9.  <a href="photoshop.php?rub=2">ШРИФТЫ</a>
  10.  <a href="photoshop.php?rub=3">СТИЛИ</a>
  11.  <a href="photoshop.php?rub=4">ГРАДИЕНТЫ</a>
  12.  </div>
  13.  </td>
  14.        </tr>
  15.      </table>
  16.  --------------------------------------------------
  17.  Я создал таблицу в бд "categories" из 4 полей  id - int(11), img varchar(255), alt varchar(255), link varchar(255), где вводятся данные по категориям сайта.
  18.  Потом также создал таблицу rub, где 3 поля id  int(2), title varchar(255), cat int(2). Где должны храниться  данные какая подкатегория к какой категории принадлежит.
  19.  Также создал таблицу data? где состоят все данные подкатегорий, из 10 полей:
  20.   id int(5)  - идентификатор
  21.   rub  int(1) - номер принадлежности к категории.
  22.   meta_d varchar(255) - описание       
  23.  meta_k  varchar(255) - ключевые слова 
  24.  description text       - Краткое описание в заметке
  25.  view int(7) - количество просмотров     
  26.  author varchar(100) - автор
  27.  date varchar(20) - дата
  28.  mini  - мини-изображение      
  29.  title - Название
  30.  
  31.  Чтобы было с чем работать ввел несколько данных.
  32.  Например, в таблицу "categories" ввел категории Оформление, Фотошоп, Форумы. А в таблицу "rub" ввел все подкатегории с различными полями cat.
  33.  C базой данных вроде закончил и все должно быть вроде правильно.
  34.  
  35.  Перехожу к коду php. Пишу :
  36.  
  37.  -----------------------------------------------
  38.  <?
  39.   $r = mysql_query("SELECT * FROM categories",$db);
  40.  
  41.  if (!$r)
  42.  {
  43.  echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору. <br> <strong>Код ошибки:</strong></p>";
  44.  }
  45.  
  46.  if (mysql_num_rows($r) > 0)
  47.  
  48.  {
  49.  $myrow2 = mysql_fetch_array($r);
  50.  
  51.  
  52.  do
  53.  {
  54.  printf ("
  55.  
  56. <table width="200" border="0" align="center" cellpadding="0" cellspacing="0">
  57.       <tr>
  58.         <td align="center" valign="top"><a href="%s"><img src="%s" border="0" alt="%s" /></a></td>
  59.       </tr>
  60.       <tr>
  61.         <td>
  62.  
  63. <div id="coolmenu">
  64. ----------------место где должны выводится подкатегории--------------
  65. <a href="photoshop.php?rub=1">КИСТИ</a>
  66. <a href="photoshop.php?rub=2">ШРИФТЫ</a>
  67. <a href="photoshop.php?rub=3">СТИЛИ</a>
  68. <a href="photoshop.php?rub=4">ГРАДИЕНТЫ</a>
  69. ----------------место где должны выводится подкатегории--------------
  70. </div>
  71. </td>
  72.       </tr>
  73.     </table>
  74.  
  75.  
  76. ",$myrow2["link"],$myrow2["img"],$myrow2["alt"]);
  77.  
  78.  
  79.  
  80.  }
  81.  while ($myrow2 = mysql_fetch_array($r));
  82.  
  83.  }
  84.  
  85.  else
  86.  {
  87.  echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
  88.  exit();
  89.  }
  90.  
  91.  
  92.   ?>



-------------------------------- ------------------

Вывев категории, я начал задумываться как вывести подкатегории, и тут!!! собственно я и зпутался. Я пытался по всякому, но ничего не получалось. Знаю, что нужно поключиться к следующей таблице произвести выборку, чтобы каждая подкатегория выводилась под свою категорию, а в последующем ввела ссылкой на страницу с содержимым. Но у меня ничего не получается. У кого была такая проблема, или просто кто знает ответ, то помогите плиз. Так как бошка у мня запуталась вообще!!!


Отредактировано администратором: Champion, 12 Марта, 2009 - 10:18:36
Оформляйте код по-человечески тегами
 
 Top
Onuchin Artem
Отправлено: 12 Марта, 2009 - 07:56:50
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Март 2009  
Откуда: Протвино


Помог: 0 раз(а)




Попробуй разделить php и html Например так (Это не единственный способ и не самый лучший):
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. try
  4. {
  5.    $r = mysql_query("SELECT * FROM categories",$db);
  6.    if (!$r)
  7.    throw new Exception("Запрос на выборку данных из базы не прошел. Напишите об этом администратору.");
  8.  
  9.    if (mysql_num_rows($r) = 0)
  10.    throw new Exception('Информация по запросу не может быть извлечена в таблице нет записей.');
  11.  
  12.    $myrow2 = mysql_fetch_array($r);
  13.       do
  14.       $categories[] = $myrow2
  15.       while ($myrow2 = mysql_fetch_array($r));
  16. }
  17. catch (Exception $e)
  18. {
  19. ?>
  20. <html>
  21.   <head>
  22.     <title>
  23.     Мега сайт
  24.     </title>
  25.   </head>
  26.   <body>
  27.   <h1>Произошла ошибка</h1>
  28.   <h2><?PHP echo $e->getMesage() ?></h2>
  29.   </body>
  30. </html>
  31. <?PHP
  32. }
  33. ?>
  34. <html>
  35.   <head>
  36.     <title>
  37.     Мега сайт
  38.     </title>
  39.   </head>
  40.   <body>
  41.   <?PHP foreach ($categories as $category): ?>
  42.     <table width="200" border="0" align="center" cellpadding="0" cellspacing="0">
  43.       <tr>
  44.         <td align="center" valign="top">
  45.         <a href="<?PHP echo $category['link'] ?>">
  46.           <img src="<?PHP echo $category['img'] ?>" border="0" alt="<?PHP echo $category['alt'] ?>" />
  47.           </a>
  48.         </td>
  49.      </tr>
  50.       <tr>
  51.         <td>
  52.           <div id="coolmenu">
  53.           ----------------место где должны выводится подкатегории--------------
  54.           <a href="photoshop.php?rub=1">КИСТИ</a>
  55.           <a href="photoshop.php?rub=2">ШРИФТЫ</a>
  56.           <a href="photoshop.php?rub=3">СТИЛИ</a>
  57.           <a href="photoshop.php?rub=4">ГРАДИЕНТЫ</a>
  58.           ----------------место где должны выводится подкатегории--------------
  59.           </div>
  60.           </td>
  61.        </tr>
  62.     </table>
  63.   <?PHP endforeach; ?>
  64.   </body>
  65. </html>
  66.  

Все понятно что я сделал?

(Отредактировано автором: 12 Марта, 2009 - 08:03:47)

 
 Top
Вездеход
Отправлено: 12 Марта, 2009 - 07:57:20
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




для начала научитесь пользоваться тегами [PHP ][/PHP] и\или [code ][/code]


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB