0

我的数据库表中有 2 个条目,但是由于某种原因,我的 PHP/SQL 显示每个条目有 6 个副本。

<? 
mysql_select_db($database_database_connection, $database_connection);
$getdevices=("SELECT * FROM Device_tbl");
$getdevicesresult = mysql_query($getdevices, $database_connection) or die(mysql_error());
while($device=mysql_fetch_assoc($getdevicesresult))
{
foreach($device as $devicevalue) { ?>

        <div class="hold-cont">
        <div class="holder">
            <div class="image-hold" >
                <img class="image-icon" src="images/android.png"/>
</div>
        </div>
        <div class="device-name devicename-txt"><? print_r($device['Model']);  ?></div>
    </div>

<? }}
mysql_close();
?>

那应该只返回 2 行,而不是每个条目的 6 行。有任何想法吗?

4

2 回答 2

3

您正在循环两次结果。摆脱不必要的foreach()调用(while()将遍历查询的所有结果)。

<?php
mysql_select_db($database_database_connection, $database_connection);
$getdevices=("SELECT * FROM Device_tbl");
$getdevicesresult = mysql_query($getdevices, $database_connection) or die(mysql_error());
while($device=mysql_fetch_assoc($getdevicesresult)){
?>
    <div class="hold-cont">
        <div class="holder">
            <div class="image-hold" >
                <img class="image-icon" src="images/android.png"/>
            </div>
        </div>
        <div class="device-name devicename-txt"><?php echo $device['Model'];  ?></div>
    </div>

<?php
}
mysql_close();
?>

注意:我也已更改print_r(...)echo ...as $device['Model']is not a array,并且我已将您的短开始标签 ( <?) 更改为普通标签 ( ),<?php因为并非所有服务器都支持short tags(请参阅PHP 短标签是否可以使用?)。

于 2012-05-07T17:37:39.620 回答
0

请更正以下行

    <div class="device-name devicename-txt"><? print_r($device['Model']);  ?></div>

    <div class="device-name devicename-txt"><? echo($devicevalue['Model']);  ?></div>
于 2012-05-07T17:37:02.950 回答