【问题标题】:Re-factoring this mysql table display code重构这个mysql表显示代码
【发布时间】:2017-07-15 23:45:27
【问题描述】:

我并不完全精通 PHP,但在回显从 MySQL 查询函数收集的值时遇到了一些问题。

我相信我知道问题出在哪里,但我没有足够的能力来解决它,如果你能帮忙,我们将不胜感激。

PHP 函数(完美运行)。

<?php
$dbhost = 'localhost';
$dbuser = 'user';
$dbpass = 'password';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
    die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT Name, Role, Salary FROM `users-table`';

mysql_select_db('user_records');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
    die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
    echo "--------------------------------<br>",
         "Name: {$row['Name']}  <br> ".
         "Role: {$row['Role']} <br> ".
         "Salary : {$row['Salary']} <br> ".
         "--------------------------------<br>";
}
mysql_close($conn);
?>

这完美地显示了数据!但是,我现在正试图将其包含在格式良好的 HTML 表中。 (这就是为什么我要关闭上面的 php 标签)。

然后我尝试使用这样的表格:

<table >
        <tr>
            <td>
                <?php echo $row['Name'] ?>
            </td>
....

它什么也没输出,-我认为这个问题是因为我关闭了第一个函数,然后尝试引用$row,但它不知道该怎么办...?

我想我需要联系while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) 如何重新考虑这一点,以便将上述函数中的内容回显到我的表中?

【问题讨论】:

标签: php mysql function html-table


【解决方案1】:

你没有写你试过的代码,但这里有一些功能:

$link = mysqli_connect("myhost", "myuser", "mypassw", "mybd");
echo "<table>";
while ($row = mysqli_fetch_array($link, $retval, MYSQL_ASSOC)) {
    echo "
        <tr>
            <td>{$row['Name']}</td>
            <td>{$row['Role']}</td>
            <td>{$row['Salary']}</td>
        </tr>
    ";
}
echo "</table>";

PS:由于不推荐使用 MySQL,我将您的代码替换为 MySQLi,建议您也这样做:)

【讨论】:

  • 如果我想包含表格样式表怎么办?
  • 您的意思是样式表?没有什么能阻止你:)
  • 抱歉,只是想理解一下,php 和 html 的这种交织让我感到困惑 ;) - 我看不到您在上面的 sn-p 中声明 MySQL 表的位置。您在第一行声明了数据库,但实际的表呢?
【解决方案2】:

正如@zessx 所说,你应该使用 MySQLi 或 PDO。

无论如何要回答您的问题,您必须从

更改 php 代码中的循环
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
    echo "--------------------------------<br>",
         "Name: {$row['Name']}  <br> ".
         "Role: {$row['Role']} <br> ".
         "Salary : {$row['Salary']} <br> ".
         "--------------------------------<br>";
}

echo '<table>';
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
    echo "  <tr>" . 
         "    <td>Name: {$row['Name']}</td>".
         "    <td>Role: {$row['Role']}</td>".
         "    <td>Salary : {$row['Salary']}</td>".
         "  </tr>";
}
echo '</table>';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    相关资源
    最近更新 更多