Mysql
 sql >> база данни >  >> RDS >> Mysql

Показване на таблица в foreach цикъл със стойности на база данни

Опитайте

...
//Detect change in category
if($catID != $categoryId) 
{
    echo "<h3>Category 01: <span>{$category}</span><span></span></h3>";
    echo "<div class='container'>";
    echo "<table>"; 

    if (is_array($subjects))
    {
        foreach ($subjects as $sub) {
            echo "<tr>";
            echo "<td>";
            echo $sub;
            echo "</td>";
            echo "</tr>";
        }
    }
    else
    {
        echo "<tr><td>No subjects to display...<td/><tr/>";
    }
    echo "</table>"; 
    echo "</div> <!-- End .container DIV -->";
}
...

Актуализация

Мисля да промените подхода, който сте използвали за извличане на данните от DB. Опитайте този код (кодът не е тестван, напишете го с бележника), така че може да се наложи да го поправите малко...)

$categoryIds = implode(',', $_SESSION['category']);

$q = "SELECT  c. category_id AS ci, c.category_name AS cn
      FROM    category AS c 
      WHERE   c.category_id IN ($categoryIds)";

$r = mysqli_query( $dbc, $q) ;

$catID = false;
$max_columns = 2;

while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC))
{
    $categoryId = $row['ci'];
    $category = $row['cn'];

    echo '<div>';

    echo "<h3>Category 01: <span>{$category}</span><span></span></h3>\n";

    $qs = "SELECT  s.subject_name AS sn, s.subject_id AS si
              FROM    category_subjects cs
              INNER JOIN subjects AS s ON s.subject_id = cs.subject_id
              WHERE cs.category_id = \'' . $categoryId . '\'";

     $rs = mysqli_query( $dbc, $qs) ;

     echo "<h3>Category 01: <span>{$category}</span><span></span></h3>";
     echo "<div class='container'>";
     echo "<table>"; 

     while ($rows = mysqli_fetch_array($rs, MYSQLI_ASSOC))
     {
         $sub = $rows['sn'];

         echo "<tr>";
         echo "<td>";
         echo $sub;
         echo "</td>";
         echo "</tr>";
     }

     echo "</table>"; 
     echo "</div> <!-- End .container DIV -->";

     echo '</div>';          

}

При това първо извличаме категории, влизаме в цикъл, отпечатваме първо име на категория и в рамките на цикъла извличаме подходящи теми за текущата категория, след това отпечатваме следващата и така нататък...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете нов потребител и да предоставите разрешения в MySQL

  2. php се регистрира в база данни

  3. как да направите таймер за обратно отброяване за уебсайт за наддаване

  4. множество добавени обекти може да имат един и същ първичен ключ в базата данни

  5. Как мога да използвам едновременен достъп до таблицата mysql в PHP