我在我的函数中有这段代码,如果它不能获取存储在变量$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']);
}
}
}发布于 2014-02-20 18:52:03
通过调用mysql_fetch_row($result)作为测试,您将始终丢失数据的第一行。检查行数是否为0。
发布于 2014-02-20 18:55:19
嗨,我想你的问题在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_num_rows mysql_fetch_row整数检查空记录集。
我在mysql_fetch_array中传递第二个参数,MYSQL_BOTH将返回数组和关联数组。
或者你可以用
mysql_fetch_assoc()函数代替mysql_fetch_array().
随便问问题吧。
发布于 2014-02-20 18:54:03
尝尝这个
$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']);
}
}
}https://stackoverflow.com/questions/21916827
复制相似问题