0

我有一个 html 表,我想从数据库表中回显内容:

<table style="width: 100%;">
<tbody>
<tr>
<td>
<?php
$ergebnis = mysql_query("SELECT Test FROM testtable");
while($row = mysql_fetch_object($ergebnis))
{
echo $row->Test;
}
</td>
 <td>
<?php
$ergebnis = mysql_query("SELECT Test2 FROM testtable");
while($row = mysql_fetch_object($ergebnis))
{
echo $row->Test2;
}
</td>
</tr>
</tbody>
</table>

有没有办法缩短php代码,因为它有点太长了

 <?php
 $ergebnis = mysql_query("SELECT Test FROM testtable");
 while($row = mysql_fetch_object($ergebnis))
 {
 echo $row->Test;
 }
4

4 回答 4

3

如果您的示例确实是您正在做的事情,您可能希望在一个查询中获取所有数据:

<?php
$ergebnis = mysql_query("SELECT Test, Test2 FROM testtable");
$recordset = mysql_fetch_array($ergebnis, MYSQL_ASSOC);
?>

<table style="width: 100%;">
    <tbody>
        <tr>
            <?php foreach (array('Test', 'Test2') as $column) { ?>
                <td>
                    <?php foreach ($recordset as $record) { ?>
                        <?php echo htmlspecialchars($record[$column], ENT_QUOTES, 'UTF-8'); ?>
                    <?php } ?>
                <td>
            <?php } ?>
        </tr>
    </tbody>
</table>

另请注意,这些mysql_*功能已被弃用,并将很快从语言中删除。如果您想确保您的代码不会开始抛出通知,甚至将来会停止运行,您可能需要开始使用mysqli_*PDO.

http://php.net/manual/en/mysqlinfo.api.choosing.php

另请注意,我已添加htmlspecialchars()以防止可能的XSS 攻击

于 2013-09-28T21:48:57.243 回答
0

好吧,你可以简单地通过一个函数来做到这一点:

function query($a){
$ergebnis = mysql_query("SELECT $a FROM testtable");
while($row = mysql_fetch_object($ergebnis))
{
echo $row->$a;
}
}

并这样称呼它:

<table style="width: 100%;">
<tbody>
<tr>
<td>
<?php
 $a = 'Test';
 query($a);
 ?>
</td>
 <td>
<?php
$a = 'Test2';
query($a);
?>
</td>
</tr>
</tbody>
</table>
于 2013-09-28T21:38:54.283 回答
0

从中创建一个函数。并在任何你想要的地方使用。

于 2013-09-28T21:40:07.133 回答
0

您可以制作这样的功能:

function query($a){
$ergebnis = mysql_query("SELECT $a FROM testtable");
while($row = mysql_fetch_object($ergebnis))
{
echo $row->$a;
}
}
于 2013-09-28T21:41:04.387 回答