ФорумПрограммированиеPHP для идиотов → Проблемка в запросе на добавление в БД

Проблемка в запросе на добавление в БД

  • Женя

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 25 апреля 2012 г. 3:03

    Есть форма для добавления информации в БД:

    <form name="forma" action="add.php" method="post">

    <table>

    <tr><td>Имя<td><input name=name maxlength=13 size=13>
    <tr><td>Описание<td><input name=text maxlength=30 size=30>
    <tr><td>Цена<td><input name=price maxlength=60 size=30>
    <tr><td>Категория<td><input name=cat maxlength=12 size=12>
    <tr><td colspan="2"><input type=submit value="Ввод">
    </table>
    </form>


    Также приведенный ниже скрипт обработчик:

    <?php
    error_reporting(E_ALL);

    if (!$name || !$text || !$price || !$cat )
    die ("Не все данные введены.<br>
    Пожалуйста, вернитесь назад и закончите ввод");

    $name = trim ( $name );
    $text= trim ( $text );
    $price = trim ( $price ) ;
    $cat = trim ( $cat ) ;
    $name = addslashes ( $name );
    $text = addslashes ( $text );
    $price = addslashes ( $price ) ;
    $cat = addslashes ( $cat ) ;

    //подключение к БД///////////////////
    $host="localhost";
    $user="root";
    $pwd="";
    $db=mysql_connect($host,$user,$pwd);
    mysql_select_db("sportbd",$db);
    mysql_query('SET NAMES cp1251');
    //////////////////////////////////////////


    $query = "INSERT INTO sportbd VALUES ('"
    .$name."', '".$text."', '".$price."', '"
    .$cat."')";
    $result = mysql_query ( $query );
    if ($result) echo "Товар добавлен в БД";
    ?>



    Собственно проблема, когда нажимаешь "ВВОД", выдает следущее…

    Как это можно исправить, или может быть я что нибудь не правильно написал в коде?
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 25 апреля 2012 г. 4:11, спустя 1 час 8 минут 31 секунду

    включи register_globals на свой страх и риск
  • Женя

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 25 апреля 2012 г. 4:35, спустя 23 минуты 23 секунды


    включи register_globals на свой страх и риск


    Включил, теперь после нажатия на "Ввод", дальше просто пустое окно, и в БД ничего не добавило. Не понимаю почему? Все же правильно.
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 25 апреля 2012 г. 4:56, спустя 21 минуту 23 секунды

    запрос наверно не отработал выведи var_dump($result)
  • Женя

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 25 апреля 2012 г. 5:00, спустя 4 минуты 11 секунд


    запрос наверно не отработал выведи var_dump($result)



    boolean false пишет…


    Может оно к БД не может подключится, посмотрите, функция подключения прописана правильно, и там где надо?

    <?php
    error_reporting(E_ALL);

    $host="localhost";
    $user="root";
    $pwd="";
    $db=mysql_connect($host,$user,$pwd);
    mysql_select_db("sportbd",$db);


    if (!$name || !$text || !$price || !$cat )
    die ("Не все данные введены.<br>
    Пожалуйста, вернитесь назад и закончите ввод");

    $name = trim ( $name );
    $text= trim ( $text );
    $price = trim ( $price ) ;
    $cat = trim ( $cat ) ;
    $name = addslashes ( $name );
    $text = addslashes ( $text );
    $price = addslashes ( $price ) ;
    $cat = addslashes ( $cat ) ;




    $query = "INSERT INTO sportbd VALUES ('"
    .$name."', '".$text."', '".$price."', '"
    .$cat."')";
    $result = mysql_query ( $query );
    if ($result) echo "Товар добавлен в БД";
    var_dump($result)
    ?>
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 25 апреля 2012 г. 5:03, спустя 2 минуты 59 секунд

    пароль неверный ))
  • Женя

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 25 апреля 2012 г. 5:13, спустя 9 минут 18 секунд


    пароль неверный ))


    Пароля вообще нету
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 25 апреля 2012 г. 5:22, спустя 9 минут 17 секунд

    проверь что возвращает mysql_connect
  • Женя

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 25 апреля 2012 г. 5:33, спустя 11 минут 39 секунд

    Заработало, переписал запрос вот так, и все ок.

    <?php
    error_reporting(E_ALL);

    $host="localhost";
    $user="root";
    $pwd="";
    $db=mysql_connect($host,$user,$pwd);
    mysql_select_db("sportbd",$db);


    if (!$name || !$text || !$price || !$cat )
    die ("Не все данные введены.<br>
    Пожалуйста, вернитесь назад и закончите ввод");






    $result = mysql_query ("INSERT INTO products (name, text, price, cat)
    VALUES ('$name', '$text', '$price', '$cat')");
    if ($result=='TRUE')
    {
    echo "Товар добавлен";
    }

    else{

    echo " Товар НЕ ДОБАВЛЕН";
    }
    ?>



    ВОПРОС!!!

    У меня три раздела в каталоге товаров:
    "Протеины",
    "Креатины",
    "Гейнеры"

    Оно теперь мне добавляет еще один раздел, а мне нужно чтобы именно в раздел "Протеины" впихивало еще один товар. Как следует переписать запрос?
    У меня поле "cat" служит выборкой товаров, то есть вывожу я их вот так:

    $result = mysql_query("SELECT DISTINCT cat FROM products");

    Спустя 265 сек.
    А, все, разрулил, то проблемы с кодировкой были)
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 25 апреля 2012 г. 6:30, спустя 56 минут 11 секунд

    Женя ты что ли?
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 25 апреля 2012 г. 6:31, спустя 1 минуту 15 секунд


    Женя ты что ли?
    )))))))
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 25 апреля 2012 г. 6:57, спустя 25 минут 38 секунд

    Женя, а теперь удали всё нахер и напиши по нормальному
  • Женя

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 25 апреля 2012 г. 11:07, спустя 4 часа 10 минут 41 секунду

    ОК, сделано!

    <form name="forma" action="add.php" method="post">

    <h2>Имя товара:</h2> <input name="name" type="text" size=40 >

    <p><h2>Описание:</h2>
    <textarea name="text" cols="60" rows="12"></textarea></p>

    <h2>Цена товара:</h2> <input name="price" type="text">

    <h2>Категория:</h2>

    Протеины <input name="cat" type="radio" value="Протеины"><br>
    Гейнеры <input name="cat" type="radio" value="Гейнеры"><br>
    Креатины <input name="cat" type="radio" value="Креатины"><br>

    <input name="submit" type="submit" value="Добавить новый товар на сайт">
    </form>





    <?php
    error_reporting(E_ALL);

    $host="localhost";
    $user="root";
    $pwd="";
    $db=mysql_connect($host,$user,$pwd);
    mysql_select_db("sportbd",$db);
    mysql_query('SET NAMES cp1251');

    if (!$name || !$text || !$price || !$cat )
    die ("Не все данные введены.<br>
    Пожалуйста, вернитесь назад и закончите ввод");






    $result = mysql_query ("INSERT INTO products (name, text, price, cat)
    VALUES ('$name', '$text', '$price', '$cat')");
    if ($result=='TRUE')
    {
    echo "Товар добавлен";
    }

    else{

    echo " Товар НЕ ДОБАВЛЕН";
    }
    ?>
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 25 апреля 2012 г. 13:42, спустя 2 часа 35 минут 17 секунд

    бля, чтобы работало без register_globals и параметры эскейпились при вставке в БД mysql_real_escape_string
  • Женя

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 26 апреля 2012 г. 13:52, спустя 1 день 9 минут


    бля, чтобы работало без register_globals и параметры эскейпились при вставке в БД mysql_real_escape_string


    А как сделать без register_globals, можно объяснить?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!