【问题标题】:PHP while loop displays same result over and over againPHP while 循环一遍又一遍地显示相同的结果
【发布时间】:2014-01-19 10:47:01
【问题描述】:

我正在使用 while 循环来显示数据库中的项目,但这反而显示了相同的结果并忽略了一个。 示例:如果第一个项目称为 Item1,并且我在数据库中有 4 个项目(Item1、Item2、Item3、Item4),它将显示 Item1 的 3 倍。

<?php
    $card_data =  mysqli_query($con, "SELECT * FROM builds");
    $card_data_result = mysqli_fetch_array($card_data);
    $build_name = $card_data_result['build_name']; 

while ($card_data_result = mysqli_fetch_array($card_data)){
    echo "$build_name";
    }
?>

有什么解决办法吗?

【问题讨论】:

  • 因为你没有在while循环中改变$buildname变量。
  • 您正在打印$build_name,它在while 循环之外分配。尝试打印$card_data_result['build_name']

标签: php loops mysqli while-loop


【解决方案1】:

试试这个:

    $card_data =  mysqli_query($con, "SELECT * FROM builds");
    //$card_data_result = mysqli_fetch_array($card_data);
    //$build_name = $card_data_result['build_name']; 
    while ($card_data_result = mysqli_fetch_array($card_data)){
        echo $card_data_result['build_name']."<br />";
    }

说明: 以下代码仅返回一行。要获得更多行,您需要一个循环:

$card_data_result = mysqli_fetch_array($card_data);
$build_name = $card_data_result['build_name'];

由于您有 4 个项目,您的 while 循环将打印 4 次 $build_name(相同项目)

【讨论】:

  • 嗯,这行得通,但我这样做的方式是我得到这个错误:解析错误:语法错误,意外的 T_ENCAPSED_AND_WHITESPACE,期待 C:\wamp\www\ 中的 T_STRING 或 T_VARIABLE 或 T_NUM_STRING pcbuilds\index.php 第 123 行和第 123 行是:

    $card_data_result['build_name']

  • PHP 和 html 连接似乎不正确.. echo "

    ".$card_data_result['build_name']."

    ";
  • 有效,但再次没有显示列表中的一项:/
  • 你能检查在你的数据库中直接运行这个查询“SELECT * FROM builds”吗?它会返回 4 个项目吗?
  • 显示第 0 - 2 行(总共约 3 行,查询耗时 0.0006 秒)(我删除了一个,所以现在总共 3 个)
【解决方案2】:

像这样重写你的while

while ($card_data_result = mysqli_fetch_array($card_data)){
echo $card_data_result['build_name']; //<---- Brought this statment inside what you had outside of the while loop
}

【讨论】:

  • 这会给我一个错误解析错误:语法错误,意外的 T_ENCAPSED_AND_WHITESPACE,在第 123 行和第 123 行的 C:\wamp\www\pcbuilds\index.php 中期望 T_STRING 或 T_VARIABLE 或 T_NUM_STRING 是:

    $card_data_result['build_name']

    里面是
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
  • 1970-01-01
  • 1970-01-01
  • 2015-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多