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-20132x 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仅从查询的实际结果中返回一条记录。您必须多次调用它,直到它返回null

$res = mysql_query(...);

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

请注意mysql_*,函数已被弃用,也不应再使用。

于 2013-03-26T13:39:21.453 回答
0

试试这个:mysql_fetch_row()只获取一行,如果你需要所有的行使用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 回答