За последние 24 часа нас посетили 88180 программистов и 5418 роботов. Сейчас ищут 1820 программистов ...

Запись в mysql

Тема в разделе "PHP для новичков", создана пользователем khlebnikov809, 25 сен 2016.

  1. khlebnikov809

    khlebnikov809 Новичок

    С нами с:
    25 сен 2016
    Сообщения:
    4
    Симпатии:
    0
    Ребят, всем привет. Я в этом деле новенький и столкнулся с такой проблемой при написании скрипта ввода данных с формы в mysql происходит такая штука, что поля пустые, а после обновления страницы либо просто при посещении ее пустые данные формы сами заносятся в базу и поэтому получается очень много пустых записей в таблице бд, может кто поможет?
    ВОТ САМ СКРИПТ
    PHP:
    1. <center>
    2. <h2><i>Добавление новой услуги</i></h2>
    3. </center>
    4. <body>
    5. <form name="forma"   method="post">
    6. <style>
    7. #name {
    8. width : 300px;
    9. }
    10. #name_discription {
    11. width : 700px;
    12. height : 111px;
    13. }
    14. </style>
    15. <strong><i>Название услуги</i></strong>:<br/><input type="text" name="priv_name" id="name">
    16. <br />
    17. <br />
    18. <strong><i>Описание услуги</i></strong>:
    19. <p><textarea name="description" id="name_discription"></textarea></p><br />
    20. <input name="submit" type="submit" value="Добавить">
    21. </body>
    22. </form>
    23.  
    24. <?php
    25. $db = mysql_connect("localhost", "root", "root");
    26. mysql_select_db("exgaming");
    27.  
    28. $name = $_POST['priv_name'];
    29. $description = $_POST['description'];
    30.  
    31. $result = mysql_query("INSERT INTO uslugi (name, desrcip)
    32. VALUES ('$name', '$description')");
    33. if ($result) {
    34.     echo "<strong><center>Данные успешно сохранены!</center></strong>";
    35. }
    36. else {
    37.     echo "Произошла ошибка, пожалуйста повторите попытку.";
    38. }
    39. ?>
    Подскажите, и помогите исправить данный скрипт, чтобы данные заносились после нажатия на кнопку добавить
     
    #1 khlebnikov809, 25 сен 2016
    Последнее редактирование модератором: 25 сен 2016
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    Надо mysql_query выполнять только тогда когда есть данные, добавь if с проверкой что пришёл запрос методом POST и ключи priv_name, description массива $_POST не пустые.
    https://secure.php.net/manual/ru/control-structures.elseif.php
    https://secure.php.net/manual/ru/function.empty.php
    https://secure.php.net/manual/ru/reserved.variables.server.php REQUEST_METHOD должен быть равен POST
     
  3. khlebnikov809

    khlebnikov809 Новичок

    С нами с:
    25 сен 2016
    Сообщения:
    4
    Симпатии:
    0
    Вот большое спасибо:)
     
  4. khlebnikov809

    khlebnikov809 Новичок

    С нами с:
    25 сен 2016
    Сообщения:
    4
    Симпатии:
    0
    PHP:
    1. if (empty{'$name','$description')) = null {
    2.  
    3. echo "Введите данные";
    4. }
    5. else
    6. if ($result) {
    7.     echo "<strong><center>Данные успешно сохранены!</center></strong>";
    8. }
    9. else {
    10.     echo "Произошла ошибка, пожалуйста повторите попытку.";
    11. }
    Что-то все равно идет ни так, либо я далекий))
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    @denis01 хороших ссылочек накидал, хоть одну прочитал? Последнюю особенно. Потом, расширение mysql выпелено из современной версии php, надо переделывать на mysqli, и ещё нужно данные экранировать перед вставкой. Короче, весь набор типичных ошибок чела, который пишет на php методом копирования кода со странных сайтов
    --- Добавлено ---
    Вообще, новеньким не надо писать базы данных. Надо решать задачи типа "посчитать по формуле такой-то", найти значения такие-то и т.п.: http://www.itmathrepetitor.ru/zadachi-po-php-vychisleniya/
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    @khlebnikov809 перечитай ссылки, у тебя проблемы с синтаксисом

    Логика должна быть примерно такой
    PHP:
    1. if (empty($_POST['priv_name']) || empty($_POST['description'])){
    2.     echo "Введите данные";
    3.  
    4. } elseif($_SERVER['REQUEST_METHOD'] == 'POST') {
    5.  
    6.     $result = mysql_query("INSERT INTO uslugi (name, desrcip) VALUES ('".mysql_real_escape_string($_POST['priv_name'])."', '".mysql_real_escape_string($_POST['description'])."')");
    7.  
    8.     if ($result) {
    9.         echo "<strong><center>Данные успешно сохранены!</center></strong>";
    10.     } else {
    11.         echo "Произошла ошибка, пожалуйста повторите попытку.";
    12.     }
    13. }
     
    khlebnikov809 нравится это.
  7. khlebnikov809

    khlebnikov809 Новичок

    С нами с:
    25 сен 2016
    Сообщения:
    4
    Симпатии:
    0
    Да я и так пробовал, пустые данные все равно переносятся с форм в таблицу БД как только зашел на страницу,