【问题标题】:Printing mySQL table to webpage将 mySQL 表打印到网页
【发布时间】:2014-05-14 02:30:17
【问题描述】:

我对 php 很陌生,我想用它来将 mySQL 表的内容打印到网页上。到目前为止,我已经完成了“连接到数据库”部分,但对于如何实际打印数据,最好是在 HTML 表中,我真的很困惑。

我的 PHP:

<?php    

$username="root";
$password="password";
$database="posts";
mysql_connect("localhost",$username,$password);
mysql_select_db($database) or die( "Unable to select database");

$query= "SELECT * FROM input";

$result=mysql_query($query);

mysql_close();

?>

我的网页 HTML:

<!doctype html>

<html lang="en">

<head>
  <meta charset="utf-8">
  <link rel="stylesheet" href="css/viewstyle.css">
  <title>Database View</title>
</head>

<body>
    <h1> Database View Page </h1>
    <p> Here you can view the Database </p>
    <script src="display.php"></script>
</body>
</html>

感谢您的宝贵时间。

已编辑:

<!doctype html>

<html lang="en">

<head>
  <meta charset="utf-8">
  <link rel="stylesheet" href="css/viewstyle.css">
  <title>Database View</title>
</head>

<body>
    <h1> Database View Page </h1>
    <p> Here you can view the Database </p>


    <?php

        $username="root";
        $password="password";
        $database="posts";
        mysql_connect("localhost",$username,$password);
        mysql_select_db($database) or die( "Unable to select database");

        $query= "SELECT * FROM input";

        $result=mysql_query($query);

        echo "<table border='1' cellpadding='10'>";
        echo "<tr><th>First name</th><th>Last name</th><th>Age</th></tr>";

        while($row = mysql_fetch_array($result))
         {
          echo '<td>' . $row['firstname'] . '</td>';
          echo '<td>' . $row['surname'] . '</td>';
          echo '<td>' . $row['age'] . '</td>';
          echo "</tr>"; 
          }
         echo "</table>";

                     mysql_close();

    ?>

</body>
</html>

当我的页面加载时,它现在显示:

""; echo "样品样品说明"; while($row = mysql_fetch_array($result)) { echo '' . $row['firstname'] 。 '';回声''。 $row['姓氏'] 。 '';回声''。 $row['年龄'] 。 '';回声“”; } 回声“”; ?> mysql_close(); "

作为我网页上的文字。

【问题讨论】:

  • 假设您正在通过 &lt;script&gt; 块加载 fetch-from-db PHP,您的 PHP 代码 HAS 可以输出有效的 javascript 代码...除非您的数据是将被动态更改,以这种方式加载数据没有意义-“html”页面应该是一个php脚本并在页面生成时输出表格的内容,保存&lt;script&gt;将触发的完整http请求.
  • 所以你是说不是从单独的文件加载脚本,我应该简单地将 PHP 嵌入到
  • 差不多。让 php 输出 javascript 通常没什么意义,因此您可以在客户端构建 html - 通常让 php 直接构建 html 效率更高。
  • 我是否误解了您的问题? @dat_guy 我在下面发布了一个答案。如果这不是您要查找的内容,我可以将其删除。
  • @Fred-ii- 不,我不认为你误会了,我要离开家几分钟,所以我还没有机会尝试

标签: php mysql


【解决方案1】:

你需要使用循环,我在这个例子中使用了while循环。

取决于您希望显示的列:

修改$row['column'](列是列本身的名称)

<?php
$username="xxx";
$password="xxx";
$database="xxx";
mysql_connect("localhost",$username,$password);
mysql_select_db($database) or die( "Unable to select database");

$query= "SELECT * FROM input";

$result=mysql_query($query);

    while($row = mysql_fetch_array($result))
    {
    echo '<p>'.$row['column'].' </p>';
    }

mysql_close();

?>

如果您想在 HTML 表格中显示它,您可以使用以下内容:

echo "<table border='1' cellpadding='10'>";
    echo "<tr> <th>Sample</th> <th>Sample Description</th></tr>";

 while($row = mysql_fetch_array($result))
 {
  echo '<td>' . $row['column_1'] . '</td>';
  echo '<td>' . $row['column_2'] . '</td>';
  echo "</tr>"; 
  }
 echo "</table>";

如果您希望显示更多列,只需添加另一列:

echo '<td>' . $row['column_1'] . '</td>';
echo '<td>' . $row['column_2'] . '</td>';
echo '<td>' . $row['column_3'] . '</td>';

等等……

并为顶部单元格添加第三个标题:

echo "<tr><th>Row 1</th><th>Row 2</th><th>Row 3</th></tr>";

如果您想添加更多单元格标题,只需在&lt;/tr&gt; 之前添加更多&lt;th&gt;Row X&lt;/th&gt;


旁注:

作为 Marc B pointed out in a comment,您可能希望使用 href 而不是 &lt;script src="display.php"&gt;&lt;/script&gt;,具体取决于该文件中未在您的问题中发布的内容。

例如:

<a href="display.php">View database</a>

脚注:

mysql_*函数弃用通知:

http://www.php.net/manual/en/intro.mysql.php

此扩展自 PHP 5.5.0 起已弃用,不推荐用于编写新代码,因为它将在未来被删除。相反,应使用 mysqliPDO_MySQL 扩展名。在选择 MySQL API 时,另请参阅MySQL API Overview 以获得更多帮助。

这些函数允许您访问 MySQL 数据库服务器。有关 MySQL 的更多信息,请访问 »http://www.mysql.com/

可以在 »http://dev.mysql.com/doc/ 找到 MySQL 文档。

【讨论】:

  • 我需要定义$row吗?另外,如果我使用你在这个问题中给我的信息并使用 href 来使用我的脚本,那我不需要改变任何东西就可以工作吗?还是直接在我的 HTML 中使用会更好?
  • 是的,你需要定义$row。你不想这样做有什么特别的原因吗? @dat_guy
  • 我只是想知道您是否忘记在答案中定义它?
  • 我不明白你的意思。它在while($row = mysql_fetch_array($result))echo '&lt;p&gt;'.$row['column'].' &lt;/p&gt;'; 等中。你试过了吗?你有问题吗? @dat_guy
  • 对,对不起。我将作业误解为相等。我已经尝试过了,我的页面显示为空白(除了我的标题)我将编辑我的问题以显示我的代码现在的样子。
【解决方案2】:

获得 MySQL 结果后,您需要从中读取行。

查看mysqli_fetch_assoc 上的示例代码(示例#2 程序样式)

另外:mysql 已弃用,请使用 mysqli

【讨论】:

    【解决方案3】:

    你应该使用mysqli_fetch_array(),它比你的使用方法更容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多