Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка в запросе 
V
    Опции темы
NZero
Дата 23.5.2013, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 358
Регистрация: 28.4.2010
Где: Москва

Репутация: нет
Всего: нет



Только начинаю изучать php! Вот мой нехитрый скрипт:

Код

<?php
$server="localhost";
$user="pbezpal";
$db="test";
$pas="123";
mysql_connect($server,$user,$pas) or die("MySql сервер недоступен".mysql_error());
mysql_select_db($db) or die("Нет соединения с БД".mysql_error());
$out="select * from gbook";
$rez=mysql_query($out);
?>
<html>
<head>
<title>Гостевая книга</title>
</head>
<?php
if(mysql_num_rows($rez) == 0)
{
    echo "Пока нет ни одной записи! Станьте первым)";
}
else
{
    for($i=0; $i<mysql_num_rows($rez); $i++)
    {
        $book=mysql_fetch_row($rez);
        echo $book;   
    }       
}
?>
<form method="post" name="add_gbook">
<input type="text" size="50" name="name" value=""/>
<br />
<input type="text" size="20" name="city" value="Москва"/>
<br />
<textarea name="comment" cols="50" rows="10"></textarea>
<br />
<input type="submit" name="sub_add" value="Добавить"/>
</form>
<?php
if(isset($_POST['sub_add']))
{
    $name=$_POST['name'];
    $date=date('Y-m-d');
    $city=$_POST['city'];
    $text=$_POST['comment'];
    $add='insert into gbook (name, date, city, text) values ($name, $date, $city, $text)';
    mysql_query($add);    
}
?>
</html>


Ошибок при подключении к БД не выдает, значит к БД подключение есть, но почему то в браузере выводит загадочное Array?
И еще не добавляет данные в БД из формы?  smile 

Это сообщение отредактировал(а) NZero - 23.5.2013, 23:37
PM MAIL WWW ICQ   Вверх
ksnk
Дата 23.5.2013, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 14
Всего: 386



Сейчас в базе одна запись?

вместо 
Код

echo $book;
  
можно написать 
Код

var_dump($book);

тогда, возможно, появится более содержательная информация.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
NZero
Дата 23.5.2013, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 358
Регистрация: 28.4.2010
Где: Москва

Репутация: нет
Всего: нет



С выводом разобрался! Сделал вот так:

Код

$connetc_bd=mysql_connect($server,$user,$pas) or die("MySql сервер недоступен".mysql_error());
mysql_select_db($db, $connetc_bd) or die("Нет соединения с БД".mysql_error());
$out="select * from gbook";
$rez=mysql_query($out, $connetc_bd);
while($book=mysql_fetch_row($rez))
    {
        foreach($book as $value)
        {
            echo $value;
        }
    }


А добавление все равно не работает( В чем ошибка?
PM MAIL WWW ICQ   Вверх
NZero
Дата 24.5.2013, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 358
Регистрация: 28.4.2010
Где: Москва

Репутация: нет
Всего: нет



Разобрался вот как надо было сделать:

Код

if( isset($_POST['sub_add'], $_POST['name'], $_POST['city'], $_POST['comment']) )
{
    $name = mysql_real_escape_string($_POST['name']);
    $date = date('Y-m-d');
    $city = mysql_real_escape_string($_POST['city']);
    $text = mysql_real_escape_string($_POST['comment']);
    $add='INSERT INTO `gbook` (`name`, `date`, `city`, `text`) VALUES ("' . $name . '", "' . $date . '", "' . $city . '", "' . $text . '")';
    mysql_query($add);    
}

PM MAIL WWW ICQ   Вверх
Basili4
Дата 24.5.2013, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.8.2010

Репутация: нет
Всего: нет



Ну надо бы сделать  с помощью PDO. ну это оффтоп

а вообще то

$add='insert into gbook (name, date, city, text) values ($name, $date, $city, $text)';
одинарные кавычки замените на двойные.

Ну и как показал NZero используйте mysql_real_escape_string.

Но лучше PDO


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0675 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.