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

Форум MySQL

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

 

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

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

тема: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource
 
 автор: xpom   (13.04.2007 в 19:20)   письмо автору
 
 

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

   
 
 автор: cheops   (13.04.2007 в 19:28)   письмо автору
 
   для: xpom   (13.04.2007 в 19:20)
 

В начале файла разместите вызов функции
<?php
  Error_Reporting
(E_ALL & ~E_NOTICE);
?>

   
 
 автор: xpom   (13.04.2007 в 19:41)   письмо автору
 
   для: cheops   (13.04.2007 в 19:28)
 

Почему-то не помогло?:(
Вот, что пишет:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in (и дальше путь к файлу)

   
 
 автор: ddhvvn   (13.04.2007 в 20:01)   письмо автору
 
   для: xpom   (13.04.2007 в 19:41)
 

Попробуйте:

<?php
  Error_Reporting
(0); 
?>

   
 
 автор: Trianon   (13.04.2007 в 20:13)   письмо автору
 
   для: ddhvvn   (13.04.2007 в 20:01)
 

[поправлено модератором]

   
 
 автор: ddhvvn   (13.04.2007 в 20:37)   письмо автору
 
   для: Trianon   (13.04.2007 в 20:13)
 

[поправлено модератором]

   
 
 автор: xpom   (13.04.2007 в 20:43)   письмо автору
 
   для: ddhvvn   (13.04.2007 в 20:37)
 

Yes, Yes!!!
Получилось, работает!
Большое спасибо!!!
Очень помогли :-)

   
 
 автор: ddhvvn   (13.04.2007 в 20:58)   письмо автору
 
   для: ddhvvn   (13.04.2007 в 20:37)
 

Но только в этом случае не будут отображаться даже ошибки!

Примите это к сведению...

   
 
 автор: xpom   (13.04.2007 в 21:14)   письмо автору
 
   для: ddhvvn   (13.04.2007 в 20:58)
 

А, вместо ошибок, что будет? Пусто! Но, другого пути нет :-)

   
 
 автор: ddhvvn   (13.04.2007 в 21:16)   письмо автору
 
   для: xpom   (13.04.2007 в 21:14)
 

пусто

   
 
 автор: cheops   (13.04.2007 в 21:37)   письмо автору
 
   для: xpom   (13.04.2007 в 21:14)
 

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

   
 
 автор: cheops   (13.04.2007 в 21:35)   письмо автору
 
   для: xpom   (13.04.2007 в 19:41)
 

Это серьёзное предупреждение... скорее всего работоспособность нарушается в результате того, что код расчитан на включённую директиву register_globals или ещё что-то в этом же духе...
SQL-запросы, особенно динамические нужно всегда обрабатывать на предмет ошибок
<?php
  $tbl 
mysql_query($query);
  if(!
$tbl) exit("Ошибка - ".mysql_error());
?>

   
 
 автор: xpom   (14.04.2007 в 12:40)   письмо автору
 
   для: cheops   (13.04.2007 в 21:35)
 

А, может быть это, из-за того, что все данные о базе данных (название, имя пользователя, пароль) хранятся в отдельном файле, а в файл с запросом вставлены функцией include("fail.php"); и имеют везде не глобальные переменные $server $imya, $polz, $parol.
И вот так в запросе:

$zapr= mysql_connect($server, $polz, $parol);

Подскажите, как нужно правильно сделать?

   
 
 автор: cheops   (14.04.2007 в 13:32)   письмо автору
 
   для: xpom   (14.04.2007 в 12:40)
 

Функцию mysql_connect() следует разместить в том же файле, где хранятся название, имя пользователя, пароль, тогда включение файла fail.php будет приводить к автоматической установки соединения с базой данных.

   
 
 автор: xpom   (14.04.2007 в 16:47)   письмо автору
 
   для: cheops   (14.04.2007 в 13:32)
 

А переменную, которой мы присвоим функцию mysql_connect()

$zapr= mysql_connect($server, $polz, $parol) 

не нужно делать глобальной, т.е. вот такой $_POST['zapr']?

   
 
 автор: xpom   (14.04.2007 в 17:29)   письмо автору
 
   для: xpom   (14.04.2007 в 16:47)
 

Прописал в файле fail.php там где пароли запрос:

 $zapr= mysql_connect($server, $imya, $parol);
   mysql_selecdb($bazimya, $zapr);

и выводит ошибку: 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 '' at line 2
Подскажите, в чем может быть проблема?

   
 
 автор: Unkind   (14.04.2007 в 19:25)   письмо автору
 
   для: xpom   (14.04.2007 в 17:29)
 

Да Вы не там ошибку смотрите. Надо смотреть на запрос, идентификатор которого передаете в mysql_fetch_row().

P.S. Не может такого быть, т.к. функции "mysql_selecdb" не существует.

   
 
 автор: xpom   (14.04.2007 в 22:07)   письмо автору
 
   для: Unkind   (14.04.2007 в 19:25)
 

>P.S. Не может такого быть, т.к. функции "mysql_selecdb" не существует.
Я исправил на функцию "mysql_selec_db" !


>Да Вы не там ошибку смотрите. Надо смотреть на запрос, идентификатор которого передаете в mysql_fetch_row().
Но ошибку уже другую выдает?:

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 '' at line 2

   
 
 автор: Unkind   (15.04.2007 в 00:01)   письмо автору
 
   для: xpom   (14.04.2007 в 22:07)
 

Я исправил на функцию "mysql_selec_db" !
К сожалению, такой функции тоже не существует.

Но ошибку уже другую выдает?
Ответ сервера MySQL просто так не выводится. Ошибки выдаются через mysql_error(). Вы явно не все указали, что изменили.

   
 
 автор: xpom   (15.04.2007 в 08:43)   письмо автору
 
   для: Unkind   (15.04.2007 в 00:01)
 

>Я исправил на функцию "mysql_selec_db" !
>К сожалению, такой функции тоже не существует.
А как правильно, установить соединение с Б.Д.?
Я в отдельном файле, где пароли сделал во такой запрос:

$zapr= mysql_connect($server, $imya, $parol);
   mysql_selec_db($bazimya, $zapr); 

а потом этот файл включил в сам скрипт include("fail.php");
и после запроса mysql_query поставил обработку на предмет ошибок mysql_error()?
Помогите найти ошибку, please!!!

   
 
 автор: Unkind   (15.04.2007 в 13:11)   письмо автору
 
   для: xpom   (15.04.2007 в 08:43)
 

Вы так и не показали сам запрос. С соединением и так все понятно.

   
 
 автор: xpom   (15.04.2007 в 22:08)   письмо автору
 
   для: Unkind   (15.04.2007 в 13:11)
 

Вот такой запрос:

for ($i=1; $i<=20; $i++) {
 $pol = mysql_query("SELECT * FROM tabl
      WHERE dan=".$_POST['i'],$zapr);
}

Странно, когда подключение к базе данных и этот запрос находились в одном файле все работало?

   
 
 автор: xpom   (16.04.2007 в 14:35)   письмо автору
 
   для: xpom   (15.04.2007 в 22:08)
 

Запрос, правильный?

   
 
 автор: Unkind   (16.04.2007 в 15:13)   письмо автору
 
   для: xpom   (16.04.2007 в 14:35)
 

Я так понимаю, что нет.


for ($i=1; $i<=20; $i++) { 
 $pol = mysql_query("SELECT * FROM tabl 
      WHERE dan=".$_POST[$i],$zapr); 
}


И правда ли существует 20 элементов массива $_POST с индексами 1, 2, 3, ...? Ко всему прочему, они должны быть только числами. В данном случае.

   
 
 автор: xpom   (16.04.2007 в 19:53)   письмо автору
 
   для: Unkind   (16.04.2007 в 15:13)
 

Да, это не правильный запрос :)
Большое спасибо что подсказали, этот запрос вообще не нужен, не знаю как он попал в этот фаил :-)
Я его убрал и все работает!

   
Rambler's Top100
вверх

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