查询上的引用ID,fetch_assoc和result不起作用

时间:2012-03-01 11:13:16

标签: php sql reference echo

$id = $_SESSION['user_id'];

$query1 = mysql_query("SELECT `user_name` FROM `users` WHERE `id` LIKE '$id'"); 

echo $query1;

if (mysql_num_rows($query1) == 0)
    die ("User not found");
else {
    $username = mysql_result($query1);
    echo $username ;
} 

有人能告诉我为什么我会继续获取资源 ID ,然后'阵列'回应了?!我已经尝试了fetch assoc和MySQL fetch,但遗憾的是:(我已阅读了手册,但仍然没有快乐!

2 个答案:

答案 0 :(得分:1)

您是否尝试在“user_name”列中显示该值?如果是这样,您需要一个如下所示的循环:

while($row = mysql_fetch_array($query1)) {
    $username = $row['user_name'];
    echo "user_name = " . $username;
}

将其放入“其他”块中,替换当前内部的内容。你这样做的方式,你的$ username变量是获取Result Set对象,而不是它里面的数据。

答案 1 :(得分:0)

您可以使用mysql_result,但必须将行号指定为第二个参数

mysql_result($query1, 0); 

http://www.php.net/manual/en/function.mysql-result.php

或者你可以......

$id = $_SESSION['user_id'];

$query1 = mysql_query("SELECT `user_name` FROM `users` WHERE `id` LIKE '$id'"); 



if (mysql_num_rows($query1)==0){
    die ("User not found");
}

while($row = mysql_fetch_array($query1)){
echo $row['user_name'];
}

顺便说一下,你不必使用LIKE,而是=会很好。