Создайте таблицу с помощью 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-странице.

Author: Brian Tompsett - 汤莱恩, 2010-06-16

3 answers

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

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

Для стиля я немного обманываю и использую 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>
 14
Author: brendan, 2010-06-16 04:51:46

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

<?php
include('./my_other_file.php');
?>
 2
Author: Fosco, 2010-06-16 04:15:14

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

<?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" для извлечения нескольких строк из базы данных.

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

 0
Author: Knowledge Craving, 2010-06-16 05:25:25