[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не могу работать с MySQL. Помогите.
Гость_Viktor
Проблема такая: пытаюсь изучить работу с MySQL и PHP. Конечная задача сделать интерактивную таблицу в которую можно было бы добавлять строчки с данными и все это на сайтик выводить. Пытаюсь запустить простой пример с созданием БД, таблицы, записью туда данных и вывод в браузер. Вот что получилось, почитав статьи:

<?
$host = "localhost";
$user = "root";
$password = "***";//тут мой пароль под которым в phpmyadmin захожу под рутом
$name = "test";

$msconnect = mysql_connect($host, $user, $password);

mysql_query("CREATE TABLE test_zero ( num INT, title TEXT,
text TEXT)"
,$msconnect);
mysql_select_db($name, $msconnect);

mysql_query("INSERT INTO test_zero VALUES (1, 'Заголовок статьи',
'Текст статьи')"
, $msconnect);

mysql_query("UPDATE test_zero SET(num='2', title='Заголовок 2')
WHERE num=1"
, $msconnect);
mysql_close($msconnect);

$res=mysql_query("SELECT * FROM test_zero");
while($row=mysql_fetch_array($res))
{
$num=$row[num];
$title=$row[title];
$text=$row[text];

echo "($num) - $title <br><p align=justify>$text";
}
?>

Пример почти полностью списан из http://phpfaq.ru/formtable
Никаких ошибок не выдает. Просто пустая страница. Пробовал просто вручную создать такую базу - все равно не выводит. Подскажите, пожалуйста, что я делаю не так? Если есть возможность дайте, пожалуйста, пример работающий: создать таблицу, записать в нее, вывести. Не могу понять. в чем я ошибся.



Спустя 11 минут, 22 секунды (23.02.2012 - 14:50) TranceIT написал(а):
Все неверно...

Если анализировать по порядку то вы:
1) Соединяетесь с mysql.
2) Создаете таблицу (не указав с какой базой вы работаете)
3) Выбираете базу данных.
4) Вставляете данные.
5) Обновляете данные.
6) Закрываете соединение с mysql
7) Делаете выборку, когда соединение уже закрыто.

Вам надо поменять местами 3-й со 2-м пунктом, а так же 6-й с 7-м.

Спустя 23 минуты, 16 секунд (23.02.2012 - 15:13) Гость_Viktor написал(а):
Вроде поправил, как Вы сказали. Пробую так:

<?
$host = "localhost"; // Хост
$user = "root"; // Имя пользователя
$password = "***"; // Пароль
$name = "test"; // Имя базы данных

$msconnect = mysql_connect($host, $user, $password);

mysql_select_db($name, $connect);

mysql_query("CREATE TABLE test_zero ( num INT, title TEXT,
text TEXT)"
,$msconnect);

mysql_query("INSERT INTO test_zero VALUES (1, 'Заголовок статьи',
'Текст статьи')"
, $msconnect);

mysql_query("UPDATE test_zero SET(num='2', title='Заголовок 2')
WHERE num=1"
, $msconnect);

$res=mysql_query("SELECT * FROM test_zero");
while($row=mysql_fetch_array($res))
{
$num=$row[num];
$title=$row[title];
$text=$row[text];

echo "($num) - $title <br><p align=justify>$text";
}

mysql_close($msconnect);
?>

Результат тот же. Очень прошу обьяснить.

Спустя 11 дней, 1 час, 20 минут, 16 секунд (5.03.2012 - 16:33) Pride_St написал(а):
Начнем по порядку. Обязательно надо добавить (для данного скрипта) в команду create_table... "IF NOT EXISTS", иначе при каждом запуске будет возникать ошибка т.к. такая таблица уже будет присутствовать в базе (или используй предварительно команду drop table tabe_name if exists). Твой исходный код благополучно создавал и считывал данные, но с внесением были проблемы (хотя совпадай у тебя кодировки базы данных и сайта их небыло бы). Проблема решается принудительным указанием кодировки в которой будет происходить общение с MYSQL. Рекомендую в подобных ситуациях пользоваться функцией mysql_error() для детектированя ошибок. Привожу рабочий вариант кода:

<?
define ("USERNAME", "root");
define ("PSWRD", "pass");
define ("DBNAME", "name_bd");
define ("SERVER", "127.0.0.1");
//Стандартное подключение к базе

$msconnect=mysql_connect(SERVER, USERNAME,PSWRD,DBNAME);
mysql_query('USE name_bd', $msconnect);

//Указываем кодитровку
//В качестве параметра тебе нужно указать твою кодировку базы данных

mysql_query("SET NAMES 'latin1'");
mysql_query("SET CHARACTER SET 'latin1'");

mysql_query("CREATE TABLE test_zero ( num INT, title TEXT, text TEXT) IF NOT EXISTS",$msconnect);

mysql_query("INSERT INTO test_zero (num, title, text) VALUES (1, 'Заголовок статьи', 'Текст статьи')", $msconnect);

mysql_query("UPDATE test_zero SET(num='2', title='Заголовок 2') WHERE num=1", $msconnect);

$res=mysql_query("SELECT * FROM test_zero");
while($row=mysql_fetch_array($res))
{
$num=$row[num];
$title=$row[title];
$text=$row[text];

echo "($num) - $title <br><p align=justify>$text";
}
mysql_close($msconnect);
?>
Быстрый ответ:

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