Идентификаторы ссылок на запрос, которые выбирают ассоциацию и результат не работают - PullRequest
0 голосов
/ 01 марта 2012

1001 *

$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 , а затем выводится "массив" ?! Я пробовал извлечь ассоциацию и MySQL, но, к сожалению, ничего не получилось :( Я прочитал руководство и все равно не радуюсь!

Ответы [ 2 ]

1 голос
/ 01 марта 2012

Вы пытаетесь отобразить значение в столбце "user_name"?Если это так, вам нужен цикл, который выглядит следующим образом:

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

Поместите его в свой блок «else», заменив то, что в данный момент находится внутри него.Таким образом, ваша переменная $ username получает объект Result Set, а не данные внутри него.

0 голосов
/ 01 марта 2012

Вы можете использовать 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, скорее = было бы хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...