Как работает mysql_query ?

mdsoul

Guest
Как работает mysql_query ?

Доброго времени суток!
Я столкнулся с такой проблемой: "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /hosting/clients/inteleco.ru/httpd/htdocs/form.php on line 18" Эта строка 2-я:
PHP:
...$result_print = mysql_query($print,$connection);
while($row = mysql_fetch_array($result_print)){...
Один товарищ (админ сервера) сказал что это из-за того, что таблица, из которой вытаскивается информация, пустая. Тогда у меня возник такой вопрос: почему информация не помещается в эту таблицу, хотя соответствующий код работает тихо и спокойно и об ошибках не сообщает, то есть внешне он выполнен правильно, хотя таблица вроде как остается пустой. Вот соответственно и он:
PHP:
$sql = "INSERT INTO $table_name
	(address_mn, address_sc, mark, name, num, phone, time_mn, time_sc, res1)
	VALUES
	(\"$address_mn\", \"$address_sc\", \"$mark\", \"$name\", \"$num\", \"$phone\", \"$time_mn\", \"$time_sc\", \"$res1\")
	";
$result = mysql_query($sql,$connection);
Я просто не поймупочему он не работает, все переменные к этому моменту имеют свои значения.

З.Ы.: работу PHP и MySQL я изучау уже не много ни мало 4-й день, так что прошу очень строгоменя не судить.
Заранее благодарен, Игорь.
 

Фанат

oncle terrible
Команда форума
кстати, к вопросу о том, как работает mysql_query твоя проблема не имеет никакого отношения
а вот имя переменной $result_print как раз имеет.
причем именно к запросу, а ни к какому принту.
поэтому, называть её $result_print - это только вносить путаницу.

Ну, и вдобавок, изучи, пожалуйста, вот ээтот текст.
PHP FAQ: Ничего не работает! Что делать???
Он научит тебя понимать - почему на работает ,и объяснит, что такой вопрос бессмысленно задавать на форуме
 

mdsoul

Guest
Вот хоть вы меня убейте, ничего не помогает.
сделал самую простенькую програмку,чтоб уж наверняка,которая записывает в таблицу одну строчку:
PHP:
$name = "Hramtsov";
$number = "1000";


$sql = "INSERT INTO $table_name
	(name, number)
	VALUES
	(\"$name\", \"$number\")
	";
$result = mysql_query($sql,$connection);
echo mysql_error();
echo $sql;
echo "Программа выполнена";
Все сделала как надо, словалишнего не сказала.
Затем опять же самую простую прогузапустил которая читает это все

PHP:
$sql = "SELECT name, number
	FROM $table_name
	";
$result = mysql_query($sql,$connection) or die("Bad query: ". mysql_error());
while($row = mysql_fetch_array($result_print))
{echo $name;
		$name = $row['name'];
		$number = $row['number'];
		
		$display_block .= "
		<p> name: $name num: $number </p>
		";
	
}
echo $display_block;
echo mysql_error();
Но все на той же строке while($row = mysql_fetch_array($result_print)) выдает ту ;t ошибку. Ели кому не лень, растолкуйте дураку, где я что не так сделал?
 

Фанат

oncle terrible
Команда форума
Все очень просто.
тебе дали ссылку
PHP FAQ: Ничего не работает! Что делать???
там написано
Если никаких ошибок не выведется, надо писать
error_reporting(E_ALL);
Это очень сильно поможет, показав несуществующие переменные.

Ты этого не сделал.
несуществующую переменную не видишь.
зря у людей время отнимаешь
 

mdsoul

Guest
1. Если я у вас, уважаемый, отнимаю время, просто не трать его не меня,не отвечай если не хочешь,тебя не заставляют.

2. Позволь узнать, с чего ты взял, что я этього не сделал? потому что этого нету в коде который я включил в сообщение? ну там и описания переменной connection нету,и пароля и всего остального нету,не скажешь же ты что раз у тебя $connection в коде нету, то вот и не работает ничего; не буду же я бездумно весь текст сюда передувать.
Если все что ты можешь это так вот лихо и безосновательно заявлять что я, с твоих слов, пришел сюда со своими вопросами только для того чтобы чем-то народ занять, то я не понимаю что ты тут делаешь, я здесьтолько для того, что бы получить ответ от тех кто понимает в ПХП больше меня.
Если же ты можешь предложить что-то по существу, попытавшись разобраться в мой проблеме, я тебе скажу огромное человеческое спасибо.

3. Все, я даже повторю, ВСЕ что мнетут предложили,я попробовал и не один раз. В частности я читал то что ты мне советовал и написал как и было велено
ini_set('display_errors',1);
error_reporting(E_ALL ^E_NOTICE);
в самом начале кода. Проблема в том что в результате ничего не изменилось, первая программа выполнилась и ничего лишнего не вывела, во второй же пишет Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource. Все без изменений. Лично я ума не приложу, перепробовал все на что я способен, ничего у меня не выходит.
 

Фанат

oncle terrible
Команда форума
error_reporting(E_ALL ^E_NOTICE);
Найди одно отличие.

Я тебе велел сделать первое.
а ты мне рассказываешь, что делал второе.

Вот стакой внимательностью ты пишешь программы.
И путаешь переменные.
Найти переменную, которую ты перепутал, поможет
error_reporting(E_ALL);

Еще раз повторить, или двух хватит?
 

mdsoul

Guest
Всем спасибо за внимание, дело оказалось в том что в
$sql = "SELECT перечисление переменных
FROM $table_name
";
вместо перечисления переменных надо было звезду зазвездить, то есть
$sql = "SELECT *
FROM $table_name
";
ЗЫ: ты велел прочесть статью, я прочел, и сделал все как там написано, но теперь уже неважно, все равноспасибо,на будущее пригодится.
 

Фанат

oncle terrible
Команда форума
конечно же, "звезда вместо перечисления" никакого отношения к проблеме не имеет.

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

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

-~{}~ 27.01.05 20:54:

И еще один совет, на будущее.

Если ты хочешь одну, или обе из этих двух вещей:
- научиться программировать или делать сайты
- задавать вопросы на этом форуме
то
старайся немного критичнее относиться к своим достижениям
утверждения вида "я ВСЕ попробовал" "ВСЕ сделал" "ВСЕ прочитал и понял" имеют очень мало общего с реальностью.
Особенно, если эта реальность вступает с утверждениями в прямое противоречие в виде сообщения об ошибке.

Поэтому, если у тебя будет выбор между
"не работает потому, что пхп глючит", и "не работает потому, что я сделал неправильно", то выбирай второе
если у тебя будет выбор между
"мне не то посоветовали, что надо" и "я не сделел то, что мне посоветовали, или сделал неправильно", то выбирай второе

Этим ты сэкономишь массу времени и себе и другим людям.
 
Сверху