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

Форум MySQL

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

 

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

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

тема: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
 
 автор: kalenik_k   (11.10.2009 в 00:24)   письмо автору
 
 

Есть код
<?php

error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT);

require_once("config/connect.php");

$query = "SELECT * FROM users";
$frm = mysql_query($query);
if(mysql_fetch_array($frm))

?>
запускаю на выполнение и в результате вижу следующее
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\1.com\www\show.php on line 8

что это и как избавиться??

спасибо

  Ответить  
 
 автор: tvv123456   (11.10.2009 в 00:29)   письмо автору
 
   для: kalenik_k   (11.10.2009 в 00:24)
 

Скорей всего у вас либо нет таблицы users в бд, или же заданы неверные параметры для подключения к базе

  Ответить  
 
 автор: kalenik_k   (11.10.2009 в 00:31)   письмо автору
 
   для: tvv123456   (11.10.2009 в 00:29)
 

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

  Ответить  
 
 автор: Trianon   (11.10.2009 в 00:34)   письмо автору
 
   для: kalenik_k   (11.10.2009 в 00:31)
 

начать нужно с того, что изменить режим отображения ошибок на
error_reporting(E_ALL | E_NOTICE );

  Ответить  
 
 автор: kalenik_k   (11.10.2009 в 00:35)   письмо автору
 
   для: Trianon   (11.10.2009 в 00:34)
 

так. поменял... эффект тот же..

  Ответить  
 
 автор: Trianon   (11.10.2009 в 00:43)   письмо автору
 
   для: kalenik_k   (11.10.2009 в 00:35)
 

тогда проверьте, что в $frm лежит, выведите mysql_error() если там 0

  Ответить  
 
 автор: kalenik_k   (11.10.2009 в 00:45)   письмо автору
 
   для: Trianon   (11.10.2009 в 00:43)
 

суть проблемы в чем...
создал простую таблицу регистарции пользователя.

из таблицы данные записываются в БД. После этого хочу вывести всех пользователей БД (для просмотра) и на этом этапе имею данную проблему...

  Ответить  
 
 автор: tvv123456   (11.10.2009 в 00:47)   письмо автору
 
   для: kalenik_k   (11.10.2009 в 00:45)
 

А другие запросы к талице у вас проходят?
Я все-таки склонен считать что у вас где-то с подключением к базе накосячено

  Ответить  
 
 автор: kalenik_k   (11.10.2009 в 00:48)   письмо автору
 
   для: tvv123456   (11.10.2009 в 00:47)
 

нет, вот именно что уже десятый раз проверил подключение к БД. Все нормально...

А вот насчет запросов - ни один не проходит!

  Ответить  
 
 автор: tvv123456   (11.10.2009 в 00:50)   письмо автору
 
   для: kalenik_k   (11.10.2009 в 00:48)
 

Ну попробуйте прописать подключение ни в файле, а над запросом(именно прописать а не скопировать) а то иногда ошибку трудно заметить а две подряд сделать тоже сложно
А КАК ВЫ ПРОВЕРЯЛИ ПОДКЛЮЧЕНИЕ К БД?

  Ответить  
 
 автор: kalenik_k   (11.10.2009 в 00:56)   письмо автору
 
   для: tvv123456   (11.10.2009 в 00:50)
 

<?php
error_reporting(E_ALL | E_NOTICE );

$dbhost = "localhost";
$dbuser = "root";
$dbpassword = "";
$dbname = "site";

$Link = mysql_connect($dbhost, $dbuser, $dbpassword);
if($Link) {
echo('+');
}
else {
echo('-');
}
$Link = mysql_select_db($dbname, $Link);

$sqlAll = "select * from users";
$resultsAll = mysql_query($sqlAll);
$row = mysql_fetch_array($resultsAll);
while ($row) {

echo $row["username"]." -- ".$row["email"]."<br />";

$row = mysql_fetch_array($result);
}
?>

  Ответить  
 
 автор: tvv123456   (11.10.2009 в 01:04)   письмо автору
 
   для: kalenik_k   (11.10.2009 в 00:56)
 

Единственное что еще могу посоветовать Создайте пользователя отличного от root и предоставте ему все права на пользование нужной базой(пароль только не забудте ему задать и имя хоста localhost).

  Ответить  
 
 автор: kalenik_k   (11.10.2009 в 01:05)   письмо автору
 
   для: tvv123456   (11.10.2009 в 01:04)
 

тоже пробовал... но не помогло.

ну и на том спасибо! ;)

  Ответить  
 
 автор: tvv123456   (11.10.2009 в 01:06)   письмо автору
 
   для: kalenik_k   (11.10.2009 в 01:05)
 

Лан щас на своем серваке гляну а то так что-то не воспринимается

  Ответить  
 
 автор: kalenik_k   (11.10.2009 в 01:06)   письмо автору
 
   для: tvv123456   (11.10.2009 в 01:06)
 

ок

  Ответить  
 
 автор: tvv123456   (11.10.2009 в 01:15)   письмо автору
 
   для: kalenik_k   (11.10.2009 в 01:06)
 

<?php
error_reporting
(E_ALL E_NOTICE );

$dbhost "localhost";
$dbuser "test";
$dbpassword "test";
$dbname "test";

$Link mysql_connect($dbhost,$dbuser,$dbpassword);
if(
$Link) {
echo(
'+');
}
else {
echo(
'-');
}
mysql_select_db($dbname,$Link);

$sqlAll "select * from users";
$resultsAll mysql_query($sqlAll,$Link);
$row mysql_fetch_array($resultsAll);
do
 {

echo 
$row["username"]." -- ".$row["email"]."<br />";

}
while (
$row mysql_fetch_array($resultsAll));
?>


Вот так покрасивше будет, и все работает, свои данные не забудь поставить. Отличия думаю тоже сам найдешь :)))))
Блин не посмотрел твой скрипт в начале комп себе повесил, как тебя в цикле угораздило
всегда истинное значение поставить
_______________________________________________
Буду рад услышать спасибо если все заработает :))))))))

  Ответить  
 
 автор: kalenik_k   (11.10.2009 в 01:27)   письмо автору
 
   для: tvv123456   (11.10.2009 в 01:15)
 

ну что же я могу сказать - Спасибо! ;)

буду обращаться если что!

  Ответить  
 
 автор: Trianon   (11.10.2009 в 01:33)   письмо автору
 
   для: tvv123456   (11.10.2009 в 01:15)
 

между прочим за do ... while здесь подвергают остракизму.

  Ответить  
 
 автор: tvv123456   (11.10.2009 в 01:43)   письмо автору
 
   для: Trianon   (11.10.2009 в 01:33)
 

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

  Ответить  
 
 автор: neadekvat   (11.10.2009 в 01:47)   письмо автору
 
   для: tvv123456   (11.10.2009 в 01:43)
 

А если у вас в бд нет записей, то что будет на странице?

do while - по-русски звучит как "делать, а потом думать, что сделал". По переводу ясно, что эта функция должна применяться редко, в каких-то исключительных случаях (честно говоря, мне еще ни разу не пришлось её применить).

  Ответить  
 
 автор: tvv123456   (11.10.2009 в 01:57)   письмо автору
 
   для: neadekvat   (11.10.2009 в 01:47)
 

В таких случаях перед циклом проверку делают обычно :). Думаю trionon имел ввиду все-таки не это?
Да и ктому же пропишем мы без do если в базе нет записей то настранице как было пусто так и останется

  Ответить  
 
 автор: Trianon   (11.10.2009 в 01:58)   письмо автору
 
   для: tvv123456   (11.10.2009 в 01:57)
 

цикл while() { ... } сам делает эту проверку.
И дополнительных костылей ему не требуется.

  Ответить  
 
 автор: neadekvat   (11.10.2009 в 01:59)   письмо автору
 
   для: tvv123456   (11.10.2009 в 01:57)
 

делаЮТ? или делаЮ (делаете вы)
Допустим, вернули вы количество записей.
Пусть одна
Но ведь цикл пойдет два раза, не так ли?

>как было пусто так и останется
Посмотрите внимательно на код. Там есть статические элементы разметки, которые обязательно остануться на странице.
А если учесть, что частнеько информация из бд достается не в прямую строчку, в элементы дизайна (таблицы, слои и тд), то можно представить, сколько мусора будет показываться пользователю с таким подходом.

  Ответить  
 
 автор: tvv123456   (11.10.2009 в 02:01)   письмо автору
 
   для: neadekvat   (11.10.2009 в 01:59)
 

Ладно признаю был неправ чуток, тогда нужно еще перед while вот эту срочку убрать
$row = mysql_fetch_array($resultsAll); 
а то иначе начнется отчет со второй сроки
Последнее написано автору темы чтоб недорозумения не получилось

  Ответить  
 
 автор: neadekvat   (11.10.2009 в 02:03)   письмо автору
 
   для: tvv123456   (11.10.2009 в 02:01)
 

или нужно не _array, а _assoc?

Загляните. Интересно выслушать мнения.
http://softtime.ru/forum/read.php?id_forum=1&id_theme=68684&page=1

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

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