【问题标题】:echo multiple values from mysql table从 mysql 表中回显多个值
【发布时间】:2012-12-23 14:01:00
【问题描述】:

关于如何做到这一点,我已经没有什么想法了。我有一张带有 memberOrders 的桌子。现在有三个条目。我在屏幕上显示它没有问题,我在屏幕上放置它有问题。我需要把它从顶部放 600px。它必须在 echo 语句中,因为它在 while 循环中查看相同 memberNumber 的行,然后在屏幕上显示所有行。但是,当我在 echo 语句中执行此操作并将表 600 放在屏幕上时,它会将所有行放在彼此的顶部,我不知道如何将它们分开。这是我所拥有的:

<?php
session_start(); // Must start session first thing
//Connect to the database through our include 
include_once "connect_to_mysql.php";
// Place Session variable 'id' into local variable
$id = $_SESSION['id'];
// Process the form if it is submitted
$sql = mysql_query("SELECT memberNumber FROM members WHERE id='$userid'"); 
$row = mysql_fetch_assoc($sql);
$uniqueMember = $row['memberNumber'];
$result = mysql_query("SELECT * FROM memberOrders WHERE memberNumber='$uniqueMember'");
while ($row = mysql_fetch_array($result)){
    echo '<table cellpadding="12" style="position:absolute; left:300px; top:600px">
            <tr style="border:1px solid black">
              <th style="padding:15px">Link To Order</th>
              <th>Order Cost</th>
              <th>Order Status</th>
            </tr>
            <tr>
              <td>',$row['orderLinks'],'</td>
              <td style="text-align:center">$',$row['cost'],'</td>
              <td style="text-align:center">',$row['orderStatus'],'</td>
            </tr>
          </table>',"<br>";
}
?>

我知道代码并不完美,而且很混乱,但我只想以漂亮的表格格式显示所有内容,其中包含三个或四个表格标题以及标题下的结果,而不会将它们相互叠加。有什么想法吗?

【问题讨论】:

    标签: php html css html-table echo


    【解决方案1】:

    问题是您在每个条目中都回显了表格。您需要将表格和标题行放在循环之前:

    echo '<table cellpadding="12" style="position:absolute; left:300px; top:600px">
            <tr style="border:1px solid black">
              <th style="padding:15px">Link To Order</th>
              <th>Order Cost</th>
              <th>Order Status</th>
            </tr>';
    
    while ($row = mysql_fetch_array($result)){
        echo '<tr>
              <td>',$row['orderLinks'],'</td>
              <td style="text-align:center">$',$row['cost'],'</td>
              <td style="text-align:center">',$row['orderStatus'],'</td>
            </tr>';
    }
    
    echo '</table><br>';
    

    除此之外,您应该切换到 PDO / mysqli,因为 mysql_* 函数已被弃用并修复潜在的 sql 注入问题。

    【讨论】:

    • 完美运行,非常感谢。我仍在学习过程中,还没有研究 PDO/mysqli。我以前听说过做一些不同的事情来防止注射。我不能阻止人们通过 javascript 或 php 函数进行注入,以允许用户输入某些字符并使用诸如 stripslashes 或 preg_replace 之类的东西吗?
    • @denikov 不,有效输入还可以包含'" 之类的字符,因此在sql 中使用它们之前,您始终需要使用准备好的语句或转义变量。
    • 好的,我会调查的。再次感谢
    猜你喜欢
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    相关资源
    最近更新 更多