将数据从SQL数据库显示到php/html表中

use*_*411 18 html php mysql xampp phpmyadmin

好的我在phpmyadmin(sql)上有一个数据库,我想将我的一个表显示在HTML/PHP的表中.我在网上搜索过,无法实现这个功能,所以我想知道是否有人可以帮我解决这个问题?

database = 'hrmwaitrose'
username = 'root'
host = 'localhost'
Run Code Online (Sandbox Code Playgroud)

没有PW

我想显示表名中的数据 employee

Jac*_*nta 41

你说你有一个关于PhpMyAdmin的数据库,所以你使用的是MySQL.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>" . $row['name'] . "</td><td>" . $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
Run Code Online (Sandbox Code Playgroud)

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

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

  • **警告:** `mysql_*` 扩展自 PHP 5.5.0 起已弃用,并已从 PHP 7.0.0 起删除。相反,[mysqli](https://www.php.net/manual/en/book.mysqli.php) 或 [PDO_MySQL](https://www.php.net/manual/en/book.pdo .php)应使用扩展名。另请参阅 [MySQL API 概述](https://www.php.net/manual/en/mysqlinfo.api.choosing.php),以获取选择 MySQL API 时的进一步帮助。 (2认同)

Jac*_*son 5

这是我编写的一个简单函数,无需输入每个列名即可显示表格数据:(此外,请注意:嵌套循环)

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;
}
Run Code Online (Sandbox Code Playgroud)

下面的更新功能

你好杰克,

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

您的函数是如此出色,以至于很多人都会使用它,但是他们总是会错过第一个数据集。这就是为什么我写了这个修正案。

如果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;
}
Run Code Online (Sandbox Code Playgroud)

最好的问候和感谢-Axel Arnold Bangert-Herzogenrath 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;
Run Code Online (Sandbox Code Playgroud)

}