Создайте таблицу с помощью 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, я не уверен, что вы подразумеваете под "включить ('имя файла с_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 это не нарушает его.
@Аарон, я не совсем понимаю, о чем ты спрашиваешь (извини). Код предназначен для заполнения, создания и заполнения таблицы на HTML-странице.
3 answers
Вот полный пример того, что вы ищете:
- извлеките некоторые данные из mysql с помощью php
- поместите эти данные в таблицу html
- примените чередующиеся цветные строки к таблице
Для стиля я немного обманываю и использую jquery, который мне кажется немного проще, чем то, что вы пытаетесь сделать.
Кроме того, помните, что $строка[поле] чувствительна к регистру. Итак, $строка[идентификатор]!= $строка[идентификатор].
Надеюсь, это поможет:
<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
$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" для извлечения нескольких строк из базы данных.
Попробуйте использовать приведенный выше код и посмотрите, появится ли какая-либо информация.