PHP: структура таблицы - PullRequest
       3

PHP: структура таблицы

0 голосов
/ 27 декабря 2010

Я занимаюсь разработкой веб-сайта с несколькими аудиокурсами, каждый из которых может иметь несколько уроков Я хочу отобразить каждый курс в отдельной таблице с разными уроками.

Это мой оператор SQL:

Таблица : курсы

id, title

Таблица : уроки

идентификатор, cid (идентификатор курса), заголовок, дата, файл

        $sql = "SELECT lessons.*, courses.title AS course FROM lessons INNER JOIN courses ON courses.id = lessons.cid GROUP BY lessons.id ORDER BY lessons.id" ;

Может кто-нибудь помочь мне с кодом PHP?

Это код I, который я написал:

mysql_select_db($database_config, $config);
    mysql_query("set names utf8");
    $sql = "SELECT lessons.*, courses.title AS course FROM lessons INNER JOIN courses ON courses.id = lessons.cid GROUP BY lessons.id ORDER BY lessons.id" ;
    $result = mysql_query($sql) or die(mysql_error());
    while ($row = mysql_fetch_assoc($result)) {
        echo "<p><span class='heading1'>" . $row['course'] . "</span> </p> ";               
        echo "<p class='datum'>Posted onder <a href='*'>*</a>,  latest update on " . strftime("%A %d %B %Y %H:%M", strtotime($row['date']));
        }
        echo "</p>";
        echo "<class id='text'>";
        echo "<p>...</p>";
        echo "<table  border: none cellpadding='1' cellspacing='1'>";
        echo      "<tr>";
        echo        "<th>Nr.</th>";
        echo        "<th width='450'>Lesso</th>";
        echo        "<th>Date</th>";
        echo        "<th>Download</th>";
        echo      "</tr>";
        echo      "<tr>";
        echo        "<td>" . $row['nr'] . "</td>";
        echo        "<td>" . $row['title'] . "</td>";
        echo        "<td>" . strftime("%d/%m/%Y", strtotime($row['date'])) . "</td>";
        echo        "<td><a href='audio/" . rawurlencode($row['file']) . "'>MP3</a></td>";
        echo      "</tr>";
        echo    "</table>";                 
        echo "<br>";
    }
    ?>

Ответы [ 2 ]

0 голосов
/ 28 декабря 2010

Одна вещь, которая приходит на ум, вы начинаете с lessons и вытягиваете course детали. Это означает, что у вас будет новый ряд на урок с объединенным курсом. Вы можете сортировать по курсу (чтобы они были сгруппированы), а затем (в PHP) вести подсчет «текущего курса». Когда курс изменится, переключитесь на новый пункт заголовка, таблицу и т. Д.

Псевдокод:

$currentCourse = null; // intitialize the course
$query = your select sorted by course;
while ($row in $query)
{
  if ($currentCourse != $row['course'])
  {
    if (!is_null($currentCourse))
    {
      // there was a course before it, close the current one
    }
    // begin setting up heading1, table beginning, etc.

    $currentCourse = $row['course']; // set this as the active course
  }
  // dump the current row as a table entry
}
// close the table (same code as in the second if statement)
0 голосов
/ 28 декабря 2010

Вы закрываете цикл while в строке 8 вашего кодового блока. Удалите это '}' в строке 8.

Также элемент HTML не существует!

Я думаю, я знаю, в чем твоя проблема. Вам нужен цикл while, который зацикливает все «курсы», и в этом цикле вы выполняете второй запрос, где выбираете уроки, где значение_курса равно идентификатору текущего курса, который вы зацикливаете. Небольшой фиктивный код для вас.

<?php
while($row = mysql_fetch_assoc(mysql_query("SELECT * FROM courses"))) {

//display the course 

while($row2 = mysql_fetch_assoc(mysql_query("SELECT * FROM lessons WHERE course_id=" . $row['id']))) {

//display the lessons of that course

}

}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...