|
|
|
| Есть код
<?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
что это и как избавиться??
спасибо | |
|
|
|
|
|
|
|
для: kalenik_k
(11.10.2009 в 00:24)
| | Скорей всего у вас либо нет таблицы users в бд, или же заданы неверные параметры для подключения к базе | |
|
|
|
|
|
|
|
для: tvv123456
(11.10.2009 в 00:29)
| | таблица создана! и настройки подключения к базе проверил... не хочет и все... может еще что нить может заковыристого быть?? | |
|
|
|
|
|
|
|
для: kalenik_k
(11.10.2009 в 00:31)
| | начать нужно с того, что изменить режим отображения ошибок на
error_reporting(E_ALL | E_NOTICE ); | |
|
|
|
|
|
|
|
для: Trianon
(11.10.2009 в 00:34)
| | так. поменял... эффект тот же.. | |
|
|
|
|
|
|
|
для: kalenik_k
(11.10.2009 в 00:35)
| | тогда проверьте, что в $frm лежит, выведите mysql_error() если там 0 | |
|
|
|
|
|
|
|
для: Trianon
(11.10.2009 в 00:43)
| | суть проблемы в чем...
создал простую таблицу регистарции пользователя.
из таблицы данные записываются в БД. После этого хочу вывести всех пользователей БД (для просмотра) и на этом этапе имею данную проблему... | |
|
|
|
|
|
|
|
для: kalenik_k
(11.10.2009 в 00:45)
| | А другие запросы к талице у вас проходят?
Я все-таки склонен считать что у вас где-то с подключением к базе накосячено | |
|
|
|
|
|
|
|
для: tvv123456
(11.10.2009 в 00:47)
| | нет, вот именно что уже десятый раз проверил подключение к БД. Все нормально...
А вот насчет запросов - ни один не проходит! | |
|
|
|
|
|
|
|
для: kalenik_k
(11.10.2009 в 00:48)
| | Ну попробуйте прописать подключение ни в файле, а над запросом(именно прописать а не скопировать) а то иногда ошибку трудно заметить а две подряд сделать тоже сложно
А КАК ВЫ ПРОВЕРЯЛИ ПОДКЛЮЧЕНИЕ К БД? | |
|
|
|
|
|
|
|
для: 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);
}
?> | |
|
|
|
|
|
|
|
для: kalenik_k
(11.10.2009 в 00:56)
| | Единственное что еще могу посоветовать Создайте пользователя отличного от root и предоставте ему все права на пользование нужной базой(пароль только не забудте ему задать и имя хоста localhost). | |
|
|
|
|
|
|
|
для: tvv123456
(11.10.2009 в 01:04)
| | тоже пробовал... но не помогло.
ну и на том спасибо! ;) | |
|
|
|
|
|
|
|
для: kalenik_k
(11.10.2009 в 01:05)
| | Лан щас на своем серваке гляну а то так что-то не воспринимается | |
|
|
|
|
|
|
|
для: tvv123456
(11.10.2009 в 01:06)
| | ок | |
|
|
|
|
|
|
|
для: 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));
?>
|
Вот так покрасивше будет, и все работает, свои данные не забудь поставить. Отличия думаю тоже сам найдешь :)))))
Блин не посмотрел твой скрипт в начале комп себе повесил, как тебя в цикле угораздило
всегда истинное значение поставить
_______________________________________________
Буду рад услышать спасибо если все заработает :)))))))) | |
|
|
|
|
|
|
|
для: tvv123456
(11.10.2009 в 01:15)
| | ну что же я могу сказать - Спасибо! ;)
буду обращаться если что! | |
|
|
|
|
|
|
|
для: tvv123456
(11.10.2009 в 01:15)
| | между прочим за do ... while здесь подвергают остракизму. | |
|
|
|
|
|
|
|
для: Trianon
(11.10.2009 в 01:33)
| | А что в ней такого плохого, что нельзя пользоваться этим в элементарных задачах? | |
|
|
|
|
|
|
|
для: tvv123456
(11.10.2009 в 01:43)
| | А если у вас в бд нет записей, то что будет на странице?
do while - по-русски звучит как "делать, а потом думать, что сделал". По переводу ясно, что эта функция должна применяться редко, в каких-то исключительных случаях (честно говоря, мне еще ни разу не пришлось её применить). | |
|
|
|
|
|
|
|
для: neadekvat
(11.10.2009 в 01:47)
| | В таких случаях перед циклом проверку делают обычно :). Думаю trionon имел ввиду все-таки не это?
Да и ктому же пропишем мы без do если в базе нет записей то настранице как было пусто так и останется | |
|
|
|
|
|
|
|
для: tvv123456
(11.10.2009 в 01:57)
| | цикл while() { ... } сам делает эту проверку.
И дополнительных костылей ему не требуется. | |
|
|
|
|
|
|
|
для: tvv123456
(11.10.2009 в 01:57)
| | делаЮТ? или делаЮ (делаете вы)
Допустим, вернули вы количество записей.
Пусть одна
Но ведь цикл пойдет два раза, не так ли?
>как было пусто так и останется
Посмотрите внимательно на код. Там есть статические элементы разметки, которые обязательно остануться на странице.
А если учесть, что частнеько информация из бд достается не в прямую строчку, в элементы дизайна (таблицы, слои и тд), то можно представить, сколько мусора будет показываться пользователю с таким подходом. | |
|
|
|
|
|
|
|
для: neadekvat
(11.10.2009 в 01:59)
| | Ладно признаю был неправ чуток, тогда нужно еще перед while вот эту срочку убрать
$row = mysql_fetch_array($resultsAll);
| а то иначе начнется отчет со второй сроки
Последнее написано автору темы чтоб недорозумения не получилось | |
|
|
|
|
|
|
|
для: tvv123456
(11.10.2009 в 02:01)
| | или нужно не _array, а _assoc?
Загляните. Интересно выслушать мнения.
http://softtime.ru/forum/read.php?id_forum=1&id_theme=68684&page=1 | |
|
|
|