将 SQL 数据放入 HTML 表中

Posted

技术标签:

【中文标题】将 SQL 数据放入 HTML 表中【英文标题】:Putting SQL data into HTML table 【发布时间】:2013-01-10 23:16:09 【问题描述】:

我正在尝试从 mysql 数据库中获取数据并将它们放入 html 表中。 在互联网上搜索了很多之后,我找不到适合我的代码。

目前,我有这个代码

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <table>
        <thead>
            <tr>
                <td>Naam</td>
                <td>Gemeente</td>
                <td>Datum</td>
            </tr>
        </thead>
        <tbody>
       <?php
          $db_select = mysql_select_db($dbname,$db);
            if (!db_select) 
                die("Database selection also failed miserably: " . mysql_error());
            
            mysql_select_db("databaseiheko");
            $results = mysql_query("SELECT NaamFuif, GemeenteFuif, DatumFuif FROM tblfuiven");
            while($row = mysql_fetch_array($results)) 
            ?>
                <tr>
                    <td><?php echo $row['NaamFuif']?></td>
                    <td><?php echo $row['GemeenteFuif']?></td>
                    <td><?php echo &row['DatumFuif']?></td>
                </tr>

            <?php
            
            ?>   
            </tbody>
            </table>
</body>
</html>

我唯一得到的是我表的第一行 (Naam-Gemeente-Datum)。 是我做错了什么还是忘记了什么?

【问题讨论】:

1.使用mysql_error()检查您的查询是否有任何问题。 2. mysql_ 函数已弃用。你应该切换到PDO 或mysqli 1.您对数据库所做的事情并不安全,请尝试包括数据库连接。 2. 你在 Datumfuif ->&row 有错字。 3.你确定db是满的吗? 您使用的是an obsolete database API,应该使用modern replacement。 &lt;?php echo &amp;row['DatumFuif']?&gt; 您可能希望改用$ 符号。 !db_select 替换为!$db_select。将&amp;row 替换为$row 【参考方案1】:

首先,要记住的最重要的一点是:

您正在使用已弃用且不安全的代码

mysql_ functions are strongly discouraged,出于各种原因:

已弃用,并将在 PHP 的未来版本中删除, 不安全导致可能的 SQL 注入, 缺少当前 PHP 版本中的许多功能

查看链接的问题更多更深入的解释。

现在,到代码本身:

你没有使用mysql_connect连接到服务器

您应该使用mysql_connect 指定将用于访问数据库中数据的服务器、用户名和密码。从您的代码来看,它似乎应该存在 ,因为在 mysql_connect 函数中使用了一个 $db 变量,但没有正确初始化,也没有在其他任何地方再次使用。

你应该以类似这样的方式使用mysql_connect

$db = mysql_connect('localhost', $user, '$password'); 如果 (!$db) die('未连接:' . mysql_error());

(别忘了设置您的用户名和密码!)

您连续两次使用mysql_select_db

$db_select = mysql_select_db($dbname,$db); 如果(!db_select) die("数据库选择也惨败:" .mysql_error());

紧随其后

mysql_select_db("databaseiheko");

    注意$dbname$db 变量,你的代码中没有它们,这个函数不会像这样工作。 第二个mysql_select_db 覆盖第一个,但您没有指定要使用的服务器连接。

你应该使用第一个版本,但你应该在它之前使用mysql_connect

您的代码中有拼写错误

if (!db_select) 应该是 if (!$db_select) echo &amp;row['DatumFuif'] 应该是 echo $row['DatumFuif']

【讨论】:

【参考方案2】:

mysql_ 函数已弃用,但如果您想使用它们,我建议进行以下更正:

您可以通过以下方式更正您的代码: 需要mysql连接:

 <?php
 //connect to your database
 mysql_connect("serverIpAddress","userName","password");
 //specify database
 mysql_select_db("yourDatabaseName") or die;
 //Build SQL Query
 $query = "select * from tblfuiven";
 $queryResult=mysql_query($query);
 $numrows=mysql_num_rows($queryResult);

numrows 将包含在数据库中找到的记录数。 为行数添加一个回显,让我们知道行数是否仍然是一。 然后使用 mysql_fetch_assoc 获取行:

  while($row = mysql_fetch_assoc($queryResult)) 
        ?>
            <tr>
                <td><?php echo $row['NaamFuif']?></td>
                <td><?php echo $row['GemeenteFuif']?></td>
                <td><?php echo &row['DatumFuif']?></td>
            </tr>
        <?php

        
        ?>

编辑:您可以使用此代码测试代码并让我们知道您获得的行数(写下您的真实用户名和密码以及数据库名称:

         <?php
         mysql_connect("localhost","root","root");     
         mysql_select_db("databaseName") or die;
            $results = mysql_query("SELECT * FROM tblfuiven");
            $numrows=mysql_num_rows($queryResult);
           while($row = mysql_fetch_assoc($queryResult)) 
            ?>
                <tr>
                    <td><?php echo $numrows ?></td>
                    <td><?php echo $row['NaamFuif']?></td>
                    <td><?php echo $row['GemeenteFuif']?></td>
                    <td><?php echo $row['DatumFuif']?></td>
                </tr>

            <?php
           
           ?>

【讨论】:

添加你的代码后,还是不行。当前代码 --> pastebin.com/p7J4rZek @Matt 在我的回答中有一个问题。我能知道 $numrows 的价值吗? @Matt 在 mysql_connet 你使用了 $dbhost 等,在引号内。直接在引号内写入字符串,例如“localhost”而不是“$dbhost” 当我回显某些内容时,我没有得到输出(例如:echo 'Hello World")。即使直接写入字符串后,我也会得到相同的结果。 @Matt,在另外 3 个 td 附近添加行 并观察网页上的输出。【参考方案3】:

您的问题出在 php echo 语句中。它缺少“;”。

【讨论】:

以上是关于将 SQL 数据放入 HTML 表中的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 node.js 将 sql 中的数据放入 html 中的表中

如何将sql数据放入php表中

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

尝试将XML文件放入SQL Server表中

将来自多个表的查询数据放入 html 表中

将代码(PHP/HTML/SQL)放入数据库的利弊? [关闭]