Проблема вывести по три колонки из двух таблиц БД

star112

Всем доброго времени суток!
Прошу помощи в следующей задаче:
Есть две таблицы в БД «groups» и «hodo1». В таблице groups находятся заголовки для будущких колонок таблицы. У groups есть строки в БД category_id(auto increment) и name(название группы).
В таблице hodo1 есть link(auto_increment) category_id(сюда вписывается значение category_id из groups)
name и url(для создания href, имя и ссылка).
В настоящее время есть 19 групп и к каждой группе принадлежит от 20 до 70 ссылок(сортировка по category_id) в таблице hodo1.
Моя задача компактно отобразить на web странице таблицу,где в ряду таблицы будет по 3 колонки. Т.е.
заголовок 1,2,3 из таблицы groups и все линки, которые есть в hodo1 с соответсвующим category_id=1,2,3. Далее пойдет вторая таблица с тремя следующими заголовками и всеми линками(category_id 4,5,6). Прикладываю код, который работает без ошибок, однако он выводит все столбцы в один ряд. Никак не могу понять, как наложить правильный цикл так, чтобы выводилось именно по 3 столбца в один ряд до тех пор, пока количество строк groups существуют.
Заранее спасибо!

PHP:
  1.  <?php
  2. $i=0;
  3. $cat_id_groups = array();
  4. $conn = mysqli_connect($servername, $username, $password, $database);
  5. $result = $conn->query(«SELECT name FROM groups»);
  6. $for_groups=«SELECT category_id FROM groups»;
  7. $cat_ids= mysqli_query($conn, $for_groups);
  8. $counter=mysqli_num_rows($cat_ids);
  9. while($cat_id = mysqli_fetch_assoc($cat_ids)) {
  10.     $category_id_groups = $cat_id[‘category_id’];
  11.  
  12.     $cat_id_groups[$i] = $category_id_groups;
  13.     $i++;
  14. }
  15. echo «<table cols=3 border=0 cellspacing=0 cellpadding=0 width=1000»;
  16. echo «<tr>»;
  17. while (list($name) = $result->fetch_array()) {
  18.     echo
  19.            »  <td>$name</td>n« ;
  20. }
  21. echo «</tr><tr>»;
  22.  
  23. for($k=0;$k<$counter;$k++) {
  24. $main=«SELECT * FROM hodo1 WHERE category_id=$cat_id_groups[$k] ORDER BY sort»;
  25. $result1= mysqli_query($conn, $main);
  26. echo «<td>»;
  27. while($row = mysqli_fetch_row($result1)){  
  28.  
  29. echo «<a href=$row[1]>$row[3]</a><br>»;
  30.  
  31. }
  32.  
  33. }
  34. echo «</td></tr>»;
  35. echo «</table>»;
  36.  
  37.  
  38. ?>
 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *