使用 php 在 HTML 表中显示 sql 数据
Posted
技术标签:
【中文标题】使用 php 在 HTML 表中显示 sql 数据【英文标题】:Showing sql data in HTML table using php 【发布时间】:2018-05-17 20:40:53 【问题描述】:我对 html、php 和 SQL 非常非常陌生,所以这个问题听起来可能不太聪明,但这种情况开始让我烦恼。
我想在我的网站上的 HTML 表中显示我的 mysql 数据库中名为“movies”的数据。该表名为“测试”。我知道我需要 php 来处理从 sql 到 html 的查询。
但是,我在这里和其他地方阅读了很多答案/教程,我无法让我的代码工作。
代码如下:
<?php
$connection = mysql_connect('localhost', 'root', 'password');
mysql_select_db('movies');
$query = "SELECT * FROM test";
$result = mysql_query($query);
echo "<table>";
while($row = mysql_fetch_array($result))
echo "<tr><td>" . $row['Name'] . "</td></tr>";
echo "</table>";
mysql_close();
?>
为了让我尽可能简单,该表只包含两个条目,只有 ID 和一个名称。
这是我在 Chrome 中以 html 格式打开网站时显示的内容:
"; while($row = mysql_fetch_array($result)) echo "" . $row['Name'] . ""; echo ""; mysql_close(); ?>
我不知道问题出在哪里,所以现在我转向这里。如果我的目标是在我的网站上的表格中显示我的表格中的两个条目,我需要在哪里修复我的代码中的内容?
仅仅是因为当我包含 php 代码时,我无法再在 Chrome 中打开文件了吗?如果是这样,我需要用什么程序打开文件?
感谢您抽出宝贵的时间,希望能给您一点帮助!
【问题讨论】:
警告:如果您只是学习 PHP,请不要学习过时的mysql_query
接口。这很糟糕,已在 PHP 7 中删除。PDO is not hard to learn 之类的替代品和PHP The Right Way 之类的指南有助于解释最佳实践。确保确保您的用户参数为properly escaped,否则您将得到严重的SQL injection bugs。
考虑使用development framework 来解决此类问题。这些为您提供了将代码组织到适当的模型、视图和控制器上下文中的模式,并避免最终导致混乱的关注点,HTML、PHP、SQL 和 javascript 都混在一起。框架有多种形式,从像 Fat-Free Framework 这样的非常精简到像 Laravel 这样的功能非常全面,以及介于两者之间的许多地方。
如果你只是用 Chrome 从本地文件系统打开文件,它不会执行任何 PHP 代码。该文件需要从配置为使用 PHP 处理文件的 Web 服务器加载。
如果您看到 php 代码,则说明您没有或没有使用启用了 php 的网络服务器。你不能打开文件,它必须通过服务器提供红色
不要惊慌 / 史密斯:如果我理解正确,打开文件时我需要 XAMPP 之类的东西才能正确执行 PHP?并且只在处理 Html 时坚持使用 Chrome?有趣的是,教程似乎没有提到这一点。但是会在工作结束后立即安装,谢谢!
【参考方案1】:
尝试使用mysqli_query($connection, $query)
代替mysql_query($query)
和mysqli_fetch_array($result)
代替mysql_fetch_array($result)
。
注意$connection
变量,这是新的mysqli
所必需的。
您还需要使用新的 mysqli_connect。比如试试,
$connection = mysqli_connect('localhost, 'root', 'password', 'movies');
我假设“测试”是“电影”数据库中的一个表。
【讨论】:
我正在尝试复制,以便我可以接受答案,但似乎最新版本的 php 和 mysql 无法连接。尝试先解决这个问题:/ 你还需要使用新的mysqli_connect。例如,试试 $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = '密码'; $dbname = '电影''; $connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);这将定义 $connection 变量。 谢谢!花了几个小时,重新安装了 Mysql Workbench(加上一些奇怪的错误消息),但它现在可以工作了!以上是关于使用 php 在 HTML 表中显示 sql 数据的主要内容,如果未能解决你的问题,请参考以下文章
如何从多个SQL表中获取值并在html / php表中显示?
使用 PHP 将多个 SQL 列组合成 HTML 表的单个列