Создать таблицу с PHP и заполнить из MySQL

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

Сначала я пытаюсь вызвать PHP-код, который существует в отдельном файле в HTML через JavaScript. Я думаю, что у меня это работает правильно, но я не уверен на 100% (потому что таблица не будет отображаться). Я думаю, что он работает правильно, потому что часть кода для таблицы (которая находится в файле PHP) отображается в FireBug.

Во-вторых, я пытаюсь сделать так, чтобы ряды чередуют цвета для удобства просмотра. До сих пор мой PHP-код приведен ниже. Таблица не отображается вообще ни в одном браузере.

$query = "SELECT * FROM employees"; $result = mysql_query($query); $num = mysql_num_rows($result); echo '<table>'; for ($i = 0; $i < $num; $i++){ $row = mysql_fetch_array($result); $id = $row['id']; $l_name = $row['l_name']; $f_name = $row['f_name']; $ssn = $row['ssn']; $class = (($i % 2) == 0) ? "table_odd_row" : "table_even_row"; echo "<tr>"; echo "<td class=" . $class . ">$wrap_id</td>"; echo "<td class=" . $class . ">$wrap_l_name</td>"; echo "<td class=" . $class . ">$wrap_f_name</td>"; echo "<td class=" . $class . ">$wrap_ssn</td>"; echo "</tr>"; } echo '</table>'; mysql_close($link); } 

РЕДАКТИРОВАТЬ

Чтобы ответить на несколько вопросов:

@ controlfreak123, я не уверен, что вы подразумеваете под "include ('filename_with_php_in_it')". Поскольку страница не вызывается для анализа, я думаю, что она вызывается и делается контакт. В моем первоначальном вопросе я указал, что это правда, потому что FireBug показывает код для таблицы, и этот код находится в отдельном файле PHP, поэтому связь между файлом HTML и файлом PHP должна иметь место. Вот как я вызываю PHP-файл из HTML-файла, если вы хотите знать:

 <script language="javascript" type="text/javascript" src="/Management/Employee_Management.php?action=Edit_Employee"></script> 

@Matt S, я не получаю много информации о выходе, на самом деле я не знал, что вообще что-то получаю, пока не посмотрю на FireBug и не увижу, что код PHP (или его часть) действительно передается файл HTML. Конкретный вопрос заключается в том, как получить данные из базы данных MySQL и заполнить их в HTML-таблицу через PHP. Я также могу подтвердить, что у employees есть данные в нем, две записи, которые я вводил для тестирования. Я могу попытаться поместить код в свой собственный файл без JavaScript, как вы предложили, но это победит мою цель, так как я хочу, чтобы мои файлы HTML и PHP были отдельными, но я могу попробовать, чтобы проверить, хорош ли PHP-код и убедитесь, что JavaScript не нарушает его.

@Aaron, я не уверен, что вы просите (извините). Код предназначен для заполнения и создания таблицы на HTML-странице.

Вот полный пример того, что вы ищете:

  1. вытащить некоторые данные из mysql, используя php
  2. поместите эти данные в таблицу html
  3. применять чередующиеся цветные строки к таблице

Для стиля я немного обманываю и использую jquery, который мне кажется немного проще, чем то, что вы пытаетесь сделать.

Кроме того, помните, что $ row [field] чувствителен к регистру. Итак, $ row [id]! = $ Row [ID].

Надеюсь это поможет:

 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> <style type="text/css"> tr.header { font-weight:bold; } tr.alt { background-color: #777777; } </style> <script type="text/javascript"> $(document).ready(function(){ $('.striped tr:even').addClass('alt'); }); </script> <title></title> </head> <body> <?php $server = mysql_connect("localhost","root", ""); $db = mysql_select_db("MyDatabase",$server); $query = mysql_query("select * from employees"); ?> <table class="striped"> <tr class="header"> <td>Id</td> <td>Name</td> <td>Title</td> </tr> <?php while ($row = mysql_fetch_array($query)) { echo "<tr>"; echo "<td>".$row[ID]."</td>"; echo "<td>".$row[Name]."</td>"; echo "<td>".$row[Title]."</td>"; echo "</tr>"; } ?> </table> </body> </html> 

Вот код таблицы, используя только PHP, чтобы чередовать стили, как вы пытаетесь сделать в своем примере:

  <table class="striped"> <tr class="header"> <td>Id</td> <td>Title</td> <td>Date</td> </tr> <?php $i = 0; while ($row = mysql_fetch_array($query)) { $class = ($i == 0) ? "" : "alt"; echo "<tr class=\"".$class."\">"; echo "<td>".$row[ID]."</td>"; echo "<td>".$row[Name]."</td>"; echo "<td>".$row[Title]."</td>"; echo "</tr>"; $i = ($i==0) ? 1:0; } ?> </table> 

Причина, по которой ваш код не выполняется, заключается в том, что вы не можете включить PHP с тегом Script. Вы должны использовать функцию включения PHP, и исходная страница должна быть проанализирована как PHP.

 <?php include('./my_other_file.php'); ?> в <?php include('./my_other_file.php'); ?> 

Начало кодирования немного неверно. Должен быть:-

 <?php $query = "SELECT * FROM employees"; $result = mysql_query($query); $num = mysql_num_rows($result); echo '<table>'; if($num) { while( $row = mysql_fetch_array($result) ) { // all logic for each of the rows comes here } } else { // no rows fetched, so display proper message in a row } echo "</table>"; ?> 

В первый раз функция «mysql_fetch_array» используется в обработчике ресурсов, после чего она не работает должным образом. Этот ответ может показаться немного расплывчатым, но я видел его много раз, поэтому я всегда использую цикл «while» или «do-while» для извлечения нескольких строк из DB.

Попробуйте использовать приведенный выше код и посмотрите, появляется ли какая-либо информация.