一尘不染

用PHP创建表并从MySQL填充

mysql

我正在创建一个要在网页上显示的表,并且该表是由MySQL数据库中的数据填充的。我正在尝试做一些让我感到困难的事情。

首先,我试图通过JavaScript调用HTML中单独文件中存在的PHP代码。我认为我的工作正常,但是我不确定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文件之间必须进行通信。如果您想知道的话,这就是我从HTML文件中调用PHP文件的方式:

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

@Matt
S,我的输出方式并没有太多,事实上,直到我查看了FireBug并发现确实将PHP代码(或其中的一些代码)传递给了我之后,我才知道自己什么都没得到。
HTML文件。具体问题是如何从MySQL数据库中获取所需数据,然后通过PHP将其填充到HTML表中。我还可以确认其中employees是否包含数据,我输入了两个条目进行测试。我可以按照您的建议尝试将代码放入没有JavaScript的文件中,但这会违背我的意图,因为我希望将HTML和PHP文件分开,但是我可以尝试一下以查看PHP代码是否良好并确保JavaScript不会破坏它。

@亚伦,我不确定你在问什么(对不起)。该代码旨在在HTML页面上填充创建和填充表。


阅读 214

收藏
2020-05-17

共1个答案

一尘不染

这是您要查找的内容的完整示例:

  1. 使用php从mysql中提取一些数据
  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>
2020-05-17