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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Проблемы с запросом.
 
 автор: Krondor   (06.04.2009 в 15:53)   письмо автору
 
 

Добрый день. я начинаю изучать MySQL. у меня возникла вот такая проблема.
есть php-скрипт, который подключается к базе и делает к ней запрос. на основе результатов запроса должен рисувать список. но при выполнении скрипта мне выдается предупреждение: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in \\vinexim.ru\users\barsukov\Documents\TryHTML\Dieta\add_food_to_ration_select.php on line 56

вот листинг скрипта, который обращается к базе:

          $name = $_POST["nazv"];
          mysql_query("SET NAMES koi8r");
          $qstr = "SELECT * FROM Ingredients WHERE Iname=\"{$name}\"";
          $qstr = stripslashes($qstr);
          $qs = mysql_query($qstr);
          echo $qstr."\n<br>";
          echo "<form name=\"SelFood\" action=\"add_food_to_ration_query.php\" method=\"post\">\n";
          $n = mysql_num_rows($qs); /*Линия 56 скрипта*/
          echo "<select size=\"10\" name=\"ing\" onChange=\"show();\">\n";
          for ($r=0; $r<$n; $r++) {
          echo "<option>".mysql_result($q, $r, 2)."</option><br>\n";
          };
         echo "</select>\n";


после выполнения скрипта мне показали строку, которая была запросом к базе:
SELECT * FROM Ingredients WHERE Iname="сыр"


что странное, у меня есть другой скрипт, который обращается к этой же базе с таким же запросом и совершенно нормально рисует табличку на основании результатов запроса.
не знаете в чем может быть проблема??

  Ответить  
 
 автор: Trianon   (06.04.2009 в 16:03)   письмо автору
 
   для: Krondor   (06.04.2009 в 15:53)
 

если вызов mysql_query вернул нулевой результат, то Это значит, что запрос не прошел, и бесполезно вызывать функции mysql_num_rows, mysql_result, mysql_fetch_...

что именно является причиной отвергания запроса, можно получить с помощью функции mysql_error()

  Ответить  
 
 автор: Krondor   (06.04.2009 в 16:05)   письмо автору
 
   для: Trianon   (06.04.2009 в 16:03)
 

в том-то и дело, что запрос проходит. в соседнем скрипте по такой же строке запроса, возвращается строка результата из одной записи. у меня строит проверка на возврат нулевого результата, я просто ее не стал здесь писать, чтоб место не занимать.
если это поможет, могу выложить полные листинги двух скриптов и исходные коды страниц, которые эти скрипты рисуют.

  Ответить  
 
 автор: Trianon   (06.04.2009 в 16:45)   письмо автору
 
   для: Krondor   (06.04.2009 в 16:05)
 

Когда запрос проходит, и этот запрос - SELECT , функция mysql_num_rows такого не напишет.

  Ответить  
 
 автор: Krondor   (06.04.2009 в 17:37)   письмо автору
 
   для: Trianon   (06.04.2009 в 16:45)
 

большое спасибо. с проблемой разобрался. оказалось, я забыл при mysql_connect указать пользователя с нужными правами.:)

  Ответить  
Rambler's Top100
вверх

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