0

Google Chartsに実装することを目的としたコードに取り組んでいますが、探しているすべての値が返されるわけではありません。

データベースからいくつかの日付を選択する必要があり、次のように選択します。

$dates = mysql_fetch_row(mysql_query("SELECT DISTINCT date FROM participants WHERE subdomein='testdomain'")) or die(mysql_error());

次に、forループを使用してそれらをエコーし​​ます。

for ($i = 0; $i <= count($dates); $i++)
    {
        echo $dates[0].' ';
    }

私のデータベースには、3つの(異なる)日付があります:、、24-03-2013および25-03-201326-03-2013しかし、コードの一部は。を返します2x 24-03-2013。私はここで何が間違っているのですか?

PS私もwhileループを試しましたが、それは無限にループするか、ページをクラッシュさせます。さらに、データベース自体でクエリを実行してクエリをテストしたところ、正しい結果が返されるため、クエリは正常に機能します。

ヘルプは大歓迎です!

4

3 に答える 3

1

mysql_fetch_row()ループ内でそれ自体を使用する必要があります。

$result = mysql_query("SELECT DISTINCT date FROM participants WHERE subdomein='testdomain'");
while($date = mysql_fetch_row($result))
{
    echo $date[0];
}

mysql_*また、関数ファミリーは非推奨ではないことに注意してください。可能であればそれらの使用を避け、MySQLiやPDOなどの代替手段を検討する必要があります。

于 2013-03-26T13:38:24.933 に答える
0

これを試してください:mysql_fetch_row()1つの行のみをフェッチします。すべての行が必要な場合は、mysql_fetch_assoc()

$sql = mysql_query("SELECT DISTINCT date FROM participants WHERE subdomein='testdomain'");

while($dates = mysql_fetch_assoc() ($sql)){
   print_r($dates);
}

参照:http://php.net/manual/en/function.mysql-fetch-row.php

http://www.php.net/manual/en/function.mysql-fetch-assoc.php

于 2013-03-26T13:37:31.897 に答える
0

mysql_fetch_rowクエリの実際の結果から1つのレコードのみを返します。それが戻るまで、あなたはそれを数回呼び出す必要がありますnull

$res = mysql_query(...);

while (($record = mysql_fecth_row($res)) !== null) {
    print_r($record[0]);
}

mysql_*関数は非推奨であり、もう使用しないように注意してください。

于 2013-03-26T13:39:21.453 に答える