将数据从 SQL 数据库显示到 php/html 表中 [已关闭]

2022-08-30 18:50:13

我在MySQL上有一个数据库,我想在HTML或PHP表上显示我的一个SQL表。我已在线搜索,无法实现此功能。有人可以帮我编码吗?

database = 'hrmwaitrose'
username = 'root'
host = 'localhost'

没有密码。

我想显示“员工”表中的数据。


答案 1

PHP提供了用于连接到MySQL数据库的函数。

$connection = mysql_connect('localhost', 'root', ''); //The Blank string is the password
mysql_select_db('hrmwaitrose');

$query = "SELECT * FROM employee"; //You don't need a ; like you do in SQL
$result = mysql_query($query);

echo "<table>"; // start a table tag in the HTML

while($row = mysql_fetch_array($result)){   //Creates a loop to loop through results
echo "<tr><td>" . htmlspecialchars($row['name']) . "</td><td>" . htmlspecialchars($row['age']) . "</td></tr>";  //$row['index'] the index here is a field name
}

echo "</table>"; //Close the table in HTML

mysql_close(); //Make sure to close out the database connection

在 while 循环(每次遇到结果行时都会运行)中,我们回显,这将创建一个新的表行。我还添加了一个来包含字段。

这是一个非常基本的模板。您会看到其他答案使用mysqli_connect而不是mysql_connect。mysqli 代表 mysql 改进。它提供了更好的功能范围。你注意到它也有点复杂。这取决于您的需求。

请注意,自 PHP 5.5.0 起,“mysql_fetch_array”现已弃用,并且在 PHP 7.0.0 中已被删除。因此,请改为查看“mysqli_fetch_array()”。


答案 2

下面是我编写的一个简单函数,用于显示表格数据,而无需输入每个列名称:(另外,请注意:嵌套循环)

function display_data($data) {
    $output = '<table>';
    foreach($data as $key => $var) {
        $output .= '<tr>';
        foreach($var as $k => $v) {
            if ($key === 0) {
                $output .= '<td><strong>' . $k . '</strong></td>';
            } else {
                $output .= '<td>' . $v . '</td>';
            }
        }
        $output .= '</tr>';
    }
    $output .= '</table>';
    echo $output;
}

更新了以下功能

嗨杰克,

您的函数设计很好,但此函数总是错过数组中的第一个数据集。我测试了一下。

你的函数非常好,很多人会使用它,但他们总是会错过第一个数据集。这就是我写这个修正案的原因。

缺少的数据集由条件 if key === 0 产生。如果 key = 0,则仅写入列标题,而不写入包含 $key 0 的数据。因此,始终缺少数组的第一个数据集。

您可以通过将 if 条件移动到第二个 foreach 循环上方来避免这种情况,如下所示:

function display_data($data) {
    $output = "<table>";
    foreach($data as $key => $var) {
        //$output .= '<tr>';
        if($key===0) {
            $output .= '<tr>';
            foreach($var as $col => $val) {
                $output .= "<td>" . $col . '</td>';
            }
            $output .= '</tr>';
            foreach($var as $col => $val) {
                $output .= '<td>' . $val . '</td>';
            }
            $output .= '</tr>';
        }
        else {
            $output .= '<tr>';
            foreach($var as $col => $val) {
                $output .= '<td>' . $val . '</td>';
            }
            $output .= '</tr>';
        }
    }
    $output .= '</table>';
    echo $output;
}

最好的问候和感谢 - 阿克塞尔·阿诺德·班格特 - 黑措根拉特 2016

以及另一个删除冗余代码块的更新,这些代码块会损害代码的可维护性。

function display_data($data) {
$output = '<table>';
foreach($data as $key => $var) {
    $output .= '<tr>';
    foreach($var as $k => $v) {
        if ($key === 0) {
            $output .= '<td><strong>' . $k . '</strong></td>';
        } else {
            $output .= '<td>' . $v . '</td>';
        }
    }
    $output .= '</tr>';
}
$output .= '</table>';
echo $output;

}


推荐