1
$sql = "SELECT `description`,`auction_id` FROM `auctions` WHERE `description` REGEXP  '(97(8|9))?[[:digit:]]{9}([[:digit:]]|X)'";
$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result)) {
$row = mysql_fetch_row($result);
echo "$row[1]";

echo "$row[1]";1行おきに返す理由はありますか? 私が得ている結果はそのように示唆しています、私はすべての行を取得しようとしています

4

5 に答える 5

2

あなたの質問に実際に答えるには、なぜそれが起こっているのか

$row = mysql_fetch_assoc($result); //this advances the internal data pointer by 1
$row = mysql_fetch_row($result); //this advances it by 1 more

どちらもループの繰り返しごとに実行されています。 両方ではなく、どちらかを使用する必要があります。

さらに、非推奨であるため、新しいコードでmysql_*関数を使用しないでください。コメントに記載されているように、PDO または MySQLi を使用してください。

于 2013-01-24T08:39:08.230 に答える
0

fetch 関数を 2 回呼び出しているため、毎回 1 行スキップしているように見えます。

while ($row = mysql_fetch_assoc($result)) {
$row = mysql_fetch_row($result);    //This is not needed
echo "$row[1]";
}

する必要があります

while ($row = mysql_fetch_assoc($result)) {
echo $row[1];
}
于 2013-01-24T08:35:11.653 に答える
0

ループを次のようにする代わりに:

while ($row = mysql_fetch_assoc($result)) {
    $row = mysql_fetch_row($result);

使用する:

while ($row = mysql_fetch_assoc($result)) {
于 2013-01-24T08:35:20.440 に答える
0

このように使うべきです。

while ($row = mysql_fetch_assoc($result)) {
  $desc[] = $row['description'];
}
于 2013-01-24T08:36:09.723 に答える
0

クエリが phpmyadmin で適切に機能する場合は、次のいずれかを使用できます

while ($row = mysql_fetch_assoc($result)) {
echo $row['description'];
}

または

$row = mysql_fetch_row($result);
echo $row[1];

また

while ($row = mysql_fetch_array($result)) {
echo $row['description']; //or
echo $row[1];
}
于 2013-01-24T08:39:55.770 に答える