我正在处理一段意图在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-2013
和26-03-2013
,但这段代码会返回2x 24-03-2013
。我在这做错了什么?
P.S。我也尝试了一个while循环但是无限循环或者崩溃我的页面。除此之外,我通过在数据库本身运行它来测试查询,并返回正确的结果,因此查询工作正常。
非常感谢帮助!
答案 0 :(得分: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等替代方案。
答案 1 :(得分: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);
}
答案 2 :(得分:0)
mysql_fetch_row
仅返回查询实际结果中的一条记录。您必须多次调用它,然后返回null
:
$res = mysql_query(...);
while (($record = mysql_fecth_row($res)) !== null) {
print_r($record[0]);
}
请注意,mysql_*
函数已弃用,不应再使用了。