2011-04-22 6 views
12

У меня есть этот запрос для использования в PHP:Как получить результат запроса select (*) в PHP?

mysql_query("select count(*) from registeredUsers where email=".$_SESSION["username"]); 

Когда я использую echo распечатать результат, ничего не печатается. Что такое возвращаемое значение из приведенного выше утверждения?

+0

Он возвращает ресурс, который необходимо использовать в другой функции. Если вы хотите получить результат, используйте [mysql_fetch_array()] (http://www.php.net/manual/en/function.mysql-fetch-array.php). Передайте результат из mysql_query в эту функцию. – Khez

ответ

13

Ваш код не содержит никакой инструкции выборки. И как еще один ответ отмечает, вам нужны одинарные кавычки около $_SESSION["username"].

$result = mysql_query("select count(*) from registeredUsers where email='{$_SESSION['username']}'"); 

// Verify it worked 
if (!$result) echo mysql_error(); 

$row = mysql_fetch_row($result); 

// Should show you an integer result. 
print_r($row); 
+0

одинарные кавычки спасают жизни! Используя их, у вас мало шансов совершить ошибки, подобные тому, что содержится в вашем коде. Ярлык синтаксиса уже имеет подгонку: D – Khez

+0

Ваш синтаксис нуждается в небольшой работе. '$ result = mysql_query (" select count (*) from registeredUsers, где email = '{$ _ SESSION [' username ']}' ");' –

+0

Я знаю - я уже исправил дополнительную двойную кавычку после сохранения. –

0

Запрос на подсчет всегда будет возвращать значение, которое равно 0, если записи не возвращаются, или целое число выше 0, если записи соответствуют ему.

Оно должно быть по крайней мере распечатывания 0, запрос вы размещены средства:

Get the number of records where the email address is equal to the session username

Это не могло бы иметь смысл, вы имеете в виду, чтобы сделать where username = ".$_SESSION["username"] или что-то подобное?

+0

вот что я думал, но все, что я пытаюсь напечатать с эхом, ничего не печатается, почему? – user722769

+0

@User, если вы покажете нам свой код, мы, вероятно, сможем решить, почему –

0

Возможно, вы захотите повторить запрос, чтобы определить, что он возвращает то, что вы ожидаете.

2

Вы нужны одиночные кавычки переменного сеанса в запросе

$result = mysql_query("SELECT COUNT(*) 
         FROM registeredUsers 
         WHERE email = '".$_SESSION['username']."' "); 
+0

Предполагая, что $ _SESSION ['username'] не является числом – Brett

+1

Это, вероятно, безопасное предположение, поскольку столбец, с которым он сравнивается, называется 'email' –

+1

I пытался быть юмористическим – Brett

0

mysql_query() возвращает ресурс, используемый для получения информации из набора результатов. Используйте функцию, например mysql_fetch_array(), чтобы извлекать строки из набора результатов. В этом случае будет только одна строка.

-2

Попробуйте перевести его в строку, прежде чем повторять его. Как int, 0 будет отображаться как пустая строка.

+0

Это не так, как вы можете видеть, выполнив: 'php -r 'echo 0," \ n ";''. 'echo (int) 0;' печатает строку '0'. –

+0

Вы правы. Интересно. В следующий раз мне придется больше внимания уделять этому. – alexantd

10

mysql_query возвращает ресурс результата. Вы можете прочитать результат с mysql_result

$res = mysql_query("select count(*) from registeredUsers where email='".mysql_real_escape_string($_SESSION["username"])."'"); 
echo mysql_result($res,0); 
+0

Это сработало отлично. Спасибо вам за публикацию. – Baxter

0

Это должно дать вам количество registere пользователей, которые имеют адрес электронной почты, который вы предоставляете в качестве параметра этого запроса. (Может быть проверка, если данный адрес электронной почты уже зарегистрирован для другого пользователя.) Если адрес электронной почты еще не зарегистрирован, будет отправлено пустое поле. (Это может быть причиной, почему ничего не печатается в вашем случае. Попробуйте с адресом электронной почты, который вы уверены, что в базе данных.)

0
$resultemp = mysql_query("select count(*) AS count from registeredUsers where email='{$_SESSION['username']}'"); 

// Verify mySQL Query Rresult 

if (!$resultemp) echo mysql_error(); 

// Convert mySQL Result for PHP 

$counter=mysql_fetch_assoc($resultemp); 
$counter=$counter['count']; 

// Print Total Employees 

echo $counter; 
0

Вы должны использовать mysql_fetch_array(), чтобы вернуть значение в пользовательской переменной. Затем нужно напечатать возвращаемое значение.

$result=mysql_query("select count(*) from registeredUsers where email='{$_SESSION['username']}'") 
$COUNT_NUMBER=mysql_fetch_array($result); 
echo "<br>1.Count=" .$COUNT_NUMBER[0]; 
Смежные вопросы