我在我的函数中有这段代码,如果它无法获取存储在变量$ result中的数据,则回显“清空”。 “空”部分工作正常。但是,如果条件进入else
部分,它将不会回显用户数据,为什么?
$result = mysql_query("SELECT * FROM `users` ORDER BY `earnings` DESC LIMIT ".$load.",1") or die (mysql_error());
if(!mysql_fetch_row($result)) {
echo "Empty";
} else {
while($data = mysql_fetch_array($result))
{
if($name == true) {
echo ucfirst($data['user']);
} else {
echo ucfirst($data['earnings']);
}
}
}
答案 0 :(得分:0)
通过调用mysql_fetch_row($result)
作为测试,您始终缺少数据的第一行。检查行数是否为0。
答案 1 :(得分:0)
我认为你的问题是在mysql_fetch_array()中。该函数将返回数组而非关联数组..
你可以使用
$result = mysql_query("SELECT * FROM `users` ORDER BY `earnings` DESC LIMIT ".$load.",1") or die (mysql_error());
if(mysql_num_rows($result) == 0) {
echo "Empty";
} else {
while($data = mysql_fetch_array($result,MYSQL_BOTH))
{
if($name == true) {
echo ucfirst($data['user']);
} else {
echo ucfirst($data['earnings']);
}
}
}
使用mysql_umetch_row的mysql_num_rows来检查空记录集。
我传递mysql_fetch_array中的第二个参数,其中MYSQL_BOTH将返回数组和关联数组..
或者您可以使用
mysql_fetch_assoc()函数不依赖于mysql_fetch_array()..
随意提出问题..
答案 2 :(得分:-1)
试试这个
$result = mysql_query("SELECT * FROM `users` ORDER BY `earnings` DESC LIMIT ".$load.",1") or die (mysql_error());
if(!$result) {
echo "Empty";
} else {
while($data = mysql_fetch_array($result))
{
if($name == true) {
echo ucfirst($data['user']);
} else {
echo ucfirst($data['earnings']);
}
}
}