【问题标题】:MySQLi_fetch_Array skips first rowMySQLi_fetch_Array 跳过第一行
【发布时间】:2014-11-08 20:53:09
【问题描述】:

我的 mysql,我正在尝试从数据库中调用要在选择列表中使用的值。选择有效,但会跳过第一个结果。我知道这是一个相当普遍的问题,但我不认为(至少我看不到在哪里)我重复了 mysqli_fetch_array 的分配,这通常是问题所在,尽管如果发生这种情况,问题与通常情况相同。

$qselectgamename = "SELECT * FROM game ORDER BY GameName asc";
$rselectgamename = mysqli_query($dbc, $qselectgamename);
if(mysqli_num_rows($rselectgamename) !== false){
     while($rowselectgamename = mysqli_fetch_array($rselectgamename, MYSQLI_ASSOC)){
          echo '<option value="'.$rowselectgamename['GameID'].'">'.$rowselectgamename['GameName'].'</option>';
     }
} else {
     echo '<option value="0">Please Insert a Game Title first</option>';
}

我正在做的其他事情会导致这个问题吗?

结果为 1,2,0 被驳回,将排序切换到 desc,结果为 1,0,2 被驳回。

编辑:我发现了问题,见下文。

【问题讨论】:

  • 我不明白为什么这段代码会这样做。我见过很多类似的问题,他们在循环之前额外致电mysqli_fetch_array()。你确定你在真实的代码中没有类似的东西吗?
  • 顺便说一句,mysqli_num_rows() 返回一个数字,而不是 NULL。但是0 == NULL 这样测试就可以了。
  • 确定,按 CTRL+F 并搜索 mysqli_fetch_array($rselect 带回一个结果,即我向您展示的结果。是的,我不止一次使用 mysqli_fetch_array,但只有一次使用 $rowselectgamename . 值得一提的是,我已经在其他地方完成了这种风格的选择/填充,并且效果很好。
  • 你的比较真的很奇怪。请将其更改为if(mysqli_num_rows($rselectgamename) != 0)。您编写它的方式不是反转比较,而是反转行数。
  • &lt;td class="input"&gt;&lt;dropdownlabel&gt;&lt;select class="roundedcorners" name="GameName" size="1" value="'; if(isset($_POST['GameName'])){ echo $_POST['GameName']; } echo '/&gt;'; 你在 PHP 之外。除非你有 echo ' 并且没有显示它。

标签: php mysqli


【解决方案1】:

我发现了问题

<select class="roundedcorners" name="GameName" size="1"
value="'; if(isset($_POST['GameName'])){ echo $_POST['GameName']; } echo '/>';

_

<select class="roundedcorners" name="GameName" size="1"
value="'; if(isset($_POST['GameName'])){ echo $_POST['GameName']; } echo '"/>';

当然这是因为我在回显选择我没有看到错误(显然在我删除完整代码之前没有其他人这样做)。问题是最后一个 " 丢失了。因此 select 的值不仅仅是 $_POST 变量或什么都没有,它现在是 value="/> 所有选项 1 到第一个 " ,因此第一个选项是有效地被吸收了。该死的小错误总是把我的代码搞得一团糟。

【讨论】:

    猜你喜欢
    • 2014-06-07
    • 2013-08-17
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 2015-06-09
    相关资源
    最近更新 更多