检查PHP中mysql_fetch_row返回的数组中的值


Check value in array returned by mysql_fetch_row in PHP

大家好,我是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返回的数组值?

首先,你不应该使用mysql_*函数。它们(非正式地)已被弃用,不建议进一步使用。其次,使用$row["order"]而不是$row[order],因为PHP中没有order这样的东西。

同样,mysql_fetch_row返回行作为一个数字数组,而不是关联数组。如果你坚持使用mysql_,那就使用mysql_fetch_assoc()

除此之外,整个语句应该在while循环中,因为可能有不止一行您丢失了。如果您想确保只有一行,请在SQL查询的末尾添加LIMIT 1

mysql_fetch_row函数,返回一个数值数组,该数组对应于所获取的行,并将内部数据指针向前移动。

所以在你的例子中你需要像这样检查:

if ($row[0] == "1")

我认为问题是在mysql_fetch_row()mysql_fetch_row -获取结果行作为枚举数组

使用

mysql_fetch_array()
然后

use $row['order']

我不太确定你在问什么,但你能更新你的sql查询

$res=mysql_query('SELECT `order` FROM `competitions ORDER BY order`');

如果不需要更改

if($row[ 'order' ] == "1")