0

だから、これは私が遭遇した奇妙なことであり、おそらくそれは深夜のせいであるか、ここで基本的な何かが欠けているだけです。他のAPI呼び出しは、DBからではなく配列を送信できるため、クエリをループするのではなく、配列にクエリを送信する必要があります。クエリは、想定どおりに複数のアイテムを返します。コードについて:

$result = $db->query("SELECT ID FROM tblTemp WHERE FOREIGN_KEY='2'");
$tmp = $result->fetch_array(MYSQLI_BOTH);        

for($i = count($tmp); $i > 0; --$i) {
echo '<option value="'.$tmp[$i-1].'">Item '.$i.'</option>';
}

だから、私は単に配列アイテムをHTML選択に入れようとしています。これは、渡された$tmp配列に対して正常に機能します。ただし、クエリを使用すると、最初のレコードのみが選択に入力されます。正しい量のアイテムが追加されましたが、値が欠落しています。すなわち

<option value="">Item 2</option>
<option value="7">Item 1</option> 

編集:PHPは次のエラーをスローします:未定義のオフセット:1

4

2 に答える 2

1

クエリからフェッチするレコードは1つだけです。そのため、値が1つあり、未定義のオフセットが取得されます。次の例では、whileループを使用して、クエリからすべての結果をフェッチします。

$result = $db->query("SELECT ID FROM tblTemp WHERE FOREIGN_KEY='2'");
$html = "";
$i = 1;
while($tmp = $result->fetch_array(MYSQLI_BOTH)) {
    $html = '<option value="'.$tmp['ID'].'">Item '.$i.'</option>'.html;
    $i++;
}
echo $html;
于 2012-11-28T05:13:45.427 に答える
0

実際、

 
  for($i = count($tmp); $i > 0; --$i) {
    echo 'Item '.$i.'';
  }
 

$tmpが適切な金額を返した場合は機能するはずです。$tmpが適切なデータを返した ことを確認してください。

お役に立てれば。

于 2012-11-28T05:24:17.017 に答える