Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

Сообщения:  [1-10]   [11-13] 

 
 автор: Footer   (17.07.2007 в 21:02)   письмо автору
 
   для: Footer   (17.07.2007 в 17:19)
 

Всё заработало! Всем спасибо огромное! =)

   
 
 автор: Footer   (17.07.2007 в 17:19)   письмо автору
 
   для: Trianon   (16.07.2007 в 23:52)
 

Ага. Сейчас попробую исправить.

   
 
 автор: Trianon   (16.07.2007 в 23:52)   письмо автору
 
   для: Footer   (16.07.2007 в 22:35)
 

>user_info.php, выводящий инофрмацию о пользователе, как раз и приведён выше. Что тут не так?

Вы повторно вызываете session_start()?

   
 
 автор: Footer   (16.07.2007 в 22:35)   письмо автору
 
   для: cheops   (16.07.2007 в 22:03)
 

Спасибо, всё заработало! Понял ошибку. Исправил. Только вот никак не пойму другого. Не хочет держаться сессия. При авторизации имя пользователя и пароль записываются в сессию. Сначала всё нормально и страница грузится как нужно. То есть отображается информация о пользователе, читаемая из базы данных. Но при обновлении этой страницы, вместо информации о пользователе отображается форма авторизации. Не пойму, почему имя пользователя не сохраняется в сессию.
Тот скрипт, что выводит информацию о пользователе инклюдируется в index.php. В этом файле есть такой код:

<?php
session_start
();
    
$name $_SESSION ['name'];
    
$password $_SESSION ['password'];
if (!
$name)
{
include (
"form.html");
}
else
{
include (
"user_info.php");
}
?>

user_info.php, выводящий инофрмацию о пользователе, как раз и приведён выше. Что тут не так? Никак не разберусь.

   
 
 автор: cheops   (16.07.2007 в 22:03)   письмо автору
 
   для: Footer   (16.07.2007 в 21:36)
 

Отсутствие соответствия запросу записи является ошибочным? Или вы хотите получить ошибку, которую возвращает MySQL-сервер? В любом случае проверку лучше осуществлять с участием функции mysql_error()
<?php
  $query 
"SELECT * FROM register WHERE name = '${name}' ";
  
$ath mysql_query ($query);  
  if(!
$ath) exit("Ошибка базы данных ".mysql_error());
  if (
mysql_num_rows ($ath) == 0)  
  {  
    exit (
"В базе данных отсуствуют записи, соответствующие запросу");  
  }
?>

   
 
 автор: cheops   (16.07.2007 в 22:00)   письмо автору
 
   для: Footer   (16.07.2007 в 21:36)
 

Trianon говорит, что вы дескриптор, полученный от одной функции mysql_query() передаёте другой функции mysql_query() - это не правильно, функция mysql_query() может принимать только строку-запрос, дескриптор запроса она принимать не может - поэтому один из вызовов mysql_query() лишний.

   
 
 автор: Footer   (16.07.2007 в 21:36)   письмо автору
 
   для: Trianon   (16.07.2007 в 21:28)
 

Просто я думаю, ничего, что я пользюсь циклом while? Ведь в результате запроса должна быть получена только одна строка. И, если не использовать $ath = mysql_query ($query); , то как же тогда проверить выполнился запрос или нет? Или, в данном случае, можно обойтись без проверки

    $ath = mysql_query ($query); 
    if (mysql_num_rows ($ath) == 0) 
    { 
    exit ("Ошибка базы данных"); 
    }
?

   
 
 автор: Trianon   (16.07.2007 в 21:28)   письмо автору
 
   для: Footer   (16.07.2007 в 21:18)
 


 $query = mysql_query ("SELECT * FROM register WHERE name = '${name}' "); 
    $ath = mysql_query ($query); 

Явно один из вызовов - лишний. Отсюда и беда.

   
 
 автор: Footer   (16.07.2007 в 21:18)   письмо автору
 
   для: Trianon   (16.07.2007 в 21:06)
 

Да, echo $name выдает имя нормально. Попробовал без фигурных скобок сделать запрос, но эффект тотже. Как думаете, в чём дело? Подставил вместо $name имя пользователя, всё равно пишет тоже самое.

   
 
 автор: Trianon   (16.07.2007 в 21:06)   письмо автору
 
   для: Footer   (16.07.2007 в 21:01)
 

>Пишет: "Error in Resource id #7 : You have an error in your SQL syntax; check the manual that
>corresponds to your MySQL server version for the right syntax to use near 'Resource id #7' at line 1"

Значит в запрос у Вас подставляется не строка с именем, а что-то другое.
echo $name выдает имя нормально?

Между прочим, почему не написать просто

$query = mysql_query ("SELECT * FROM register WHERE name = '$name' "); 

безо всяких фигурных скобок?

>У меня id в таблице идёт не попорядку.
Ничего страшного. Он и не должен идти по порядку.

   

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования