[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проблема с выводом данных из БД
alex107
<?
include ("connect.inc");
$sql = mysql_query ("SELECT * FROM test");
while ($dp = mysql_fetch_object($sql)) {
$id = $dp -> id;
$name = $dp -> name;
echo $id, " ", $name, "<br>";
}
mysql_close($dp);
?>


результат:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in Z:\home\test.ru\www\mysql\index.php on line 5

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in Z:\home\test.ru\www\mysql\index.php on line 10



Спустя 5 минут, 16 секунд (12.08.2010 - 22:17) Ice написал(а):
включи die(mysql_error()), посмотри, где ошибка. Учись действовать самостоятельно.

Спустя 1 минута, 16 секунд (12.08.2010 - 22:18) alex107 написал(а):
я php всего пару месяцев изучаю... это первый опыт работы с БД... неудачный... =(

а как включить die(mysql_error())??? O_o

Спустя 2 минуты, 32 секунды (12.08.2010 - 22:20) Lenarfate написал(а):
Цитата
а как включить die(mysql_error())???

под столом biggrin.gif biggrin.gif

вот так
$sql = mysql_query ("SELECT * FROM test") or die(mysql_error());

Спустя 1 минута, 17 секунд (12.08.2010 - 22:22) alex107 написал(а):
тебе смешно... а мне не очень... dry.gif

спасибо... biggrin.gif

Спустя 25 секунд (12.08.2010 - 22:22) Lenarfate написал(а):
помогло?

Спустя 1 минута, 4 секунды (12.08.2010 - 22:23) alex107 написал(а):
ой... O_o

Спустя 1 минута (12.08.2010 - 22:24) alex107 написал(а):
сам под столом... biggrin.gif

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in Z:\home\test.ru\www\mysql\er.php on line 2

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in Z:\home\test.ru\www\mysql\er.php on line 2
Access denied for user 'ODBC'@'localhost' (using password: NO)

Спустя 3 минуты, 55 секунд (12.08.2010 - 22:28) Lenarfate написал(а):
ну настройки подключения к базе неверные

Спустя 1 минута, 13 секунд (12.08.2010 - 22:29) alex107 написал(а):
ладно, ща покавыряю че-нить... спсб...

Спустя 4 минуты, 51 секунда (12.08.2010 - 22:34) Ice написал(а):
ну раз ты еще зеленый, давай сюда connect.inc. Поковыряем вместе biggrin.gif

Спустя 20 часов, 15 минут, 52 секунды (13.08.2010 - 18:50) alex107 написал(а):
<?
$host = "localhost";
$user = "root";
$pass = "";
$dbname = "test";
$dp = (mysql_connect($host, $user, $pass));
$table = (mysql_select_db($dbname, $dp));
?>

я его изменил со вчерашнего дня... O_o
см. http://phpforum.ru/index.php?showtopic=32450

Спустя 1 день, 20 часов, 38 минут, 11 секунд (15.08.2010 - 15:28) linker написал(а):
alex107
Одновременно с изучением PHP учимся обрамлять свой php-код bb-кодами, как это сделал я на примере вашего сообщения.

Зачем так в скобках?
$dp = (mysql_connect($host, $user, $pass));
$table = (mysql_select_db($dbname, $dp));
достаточно
$dp = mysql_connect($host, $user, $pass) or die('Невозможно подключиться');
mysql_select_db($dbname, $dp) or die('База данных не существует.');
у вас явно что-то не так с учетной записью root, видимо пароль там не пустой таки.

Спустя 2 дня, 5 часов, 57 минут, 56 секунд (17.08.2010 - 21:26) UnWind написал(а):
alex107
Ошибка которую выдаёт интепритатор, означает что либо пароль либо логин пользователя mysql сервера не верен, проверь их - если бы они были бы правильными, ошибки бы не было.
Скажи мне, ты можешь залогиниться под root в phpmyadmin ? (http://localhost/tools/phpmyadmin/) Если да, то тот пароль под которым ты логинишься, присвой переменной $pass. По умолчанию в windows - denwer пароля на root нет, но может ты установил.
В LAMP (Linux Apache MySQL PHP) - тот который введёшь при установке.

Движимся далее, вопрос, ты создал базу ? (Это так, что бы решить все вопросы сразу)
Если нет, лезь сюда: http://localhost/tools/phpmyadmin/
Вводи свой логин и пасс, в разделе "Новая база данных" - создай базу "test", имя которой у тебя описанно в переменной $dbname.
Далее, создай таблицу с которой работает твой скрипт, а именно "test", в общем - кликай в левой колонке на свою базу данных "test", переключайся на вкладку SQL и туда помещай такой текст:

CREATE TABLE test (
id int AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
PRIMARY KEY(id)
)
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci TYPE=MyISAM COMMENT='Какая то таблица';

Давай заполним её записями:

INSERT INTRO test SET name='Иванов Козлов Сергеевич'; COMMIT;
INSERT INTRO test SET name='Александр GuT Григорьевич'; COMMIT;
INSERT INTRO test SET name='Петров Виктор Олегович'; COMMIT;
INSERT INTRO test SET name='Петров Олег Викторович'; COMMIT;


Далее можно сделать так:
connect.php

<?php
$host_name = "localhost"; //Адрес к MySQL серверу
$user_name = "root"; //Имя пользователя
$user_password = ""; //Пароль
$db_name = "test"; //Имя DB (Data Base) (Базы данных)

//Осуществляем подключение к серверу MySQL,
//если подключение несостоялось, выводим сообщение об ошибке

$connect = mysql_connect($host_name, $user_name, $user_password) or die('Соединение с MySQL сервером осуществленно неправильно, проверьте введённые Вами данные.');

//Вывод информации из выбранной DB (Data Base) (Базы Данных)
mysql_select_db($db_name) or die('DB под именем'.$db_name.' несуществует.');


//Настраиваем кодировки вывода
mysql_query("SET NAMES 'utf8';",$connect);
mysql_query("SET CHARACTER SET 'utf8';",$connect);
mysql_query("SET SESSION collation_connection = 'utf8_general_ci';",$connect);
?>


index.php

<?php
//Инклудим файл connect.php с настройками подключения к DB
include('connect.php');

//Выполняем запрос на выборку записей из базы
$sql = mysql_query("SELECT 'id', 'name' FROM test ORDER BY 'id' DESC; COMMIT;".$connect );

//Проверяем есть ли записи в таблице test
if(mysql_affected_rows() != 0) {

//Существующие записи выводим через цыкл while
while($select = mysql_fetch_row($sql)) {
echo('ID:'.$select[0].'<br>');
echo('Name:'.$elect[1].'<hr>');
}
}

//Выводим предупреждение если таблица пуста
else {
echo('В данный момент в таблице нет записей.');
}
?>


Вот и всё, у меня всё работает smile.gif
Записи должны вывестись в таком порядке на странице
с переносом строки и разделителем меж записями:
Цитата

ID: 4
Name: Петров Олег Викторович

ID: 3
Name: Петров Виктор Олегович

ID: 2
Name: Александр GuT Григорьевич

ID: 1
Name: Иванов Козлов Сергеевич


P.S.:> Пардон за такое длинное сообщение, просто делать дома нечего, а на работу только завтра - решил вот написать smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.