您好我是php新手。
$res=mysql_query('SELECT `order` FROM `competitions`');
$row=mysql_fetch_row($res);
if($row[order] == "1")
{
$res=mysql_query('SELECT `name`, `persp`, `teamp` FROM `competitions_rank` WHERE `comp_id` = '.$_PARAMS[0].' ORDER BY `persp` DESC');
}
else
{
$res=mysql_query('SELECT `name`, `persp`, `teamp` FROM `competitions_rank` WHERE `comp_id` = '.$_PARAMS[0].' ORDER BY `teamp` DESC');
}
在数据库中,字段的可能值为null,1或2.代码始终输入else语句。我做错了什么?我应该如何检查mysql_fetch_row返回的数组中的值?
答案 0 :(得分:1)
答案 1 :(得分:1)
首先,您不应该使用mysql_*
函数。他们(非正式地)弃用,不建议进一步使用。其次,使用$row["order"]
而非$row[order]
,因为PHP中没有order
这样的内容。
此外,mysql_fetch_row
将该行作为数字数组返回,而不是关联的。如果您坚持使用mysql_
,请使用mysql_fetch_assoc()
。
除此之外,整个语句应该在while循环中,因为可能有多行丢失。如果您想确保只有1行,请在SQL查询的末尾添加LIMIT 1
。
答案 2 :(得分:1)
我认为问题出在mysql_fetch_row()
...
mysql_fetch_row
- 将结果行作为枚举数组。
USE
mysql_fetch_array()
然后
use $row['order']
答案 3 :(得分:0)
我不太确定你问的是什么,但是你可以将你的SQL查询更新为
$res=mysql_query('SELECT `order` FROM `competitions ORDER BY order`');
你没需要改变
if($row[ 'order' ] == "1")