<?
$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-м.
Если анализировать по порядку то вы:
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);
?>