За последние 24 часа нас посетили 62997 программистов и 1741 робот. Сейчас ищут 762 программиста ...

insert в mysql не записывает get post переменные

Тема в разделе "PHP для новичков", создана пользователем Invoker, 29 авг 2017.

  1. Invoker

    Invoker Активный пользователь

    С нами с:
    8 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    Здравствуйте! Подскажите пожалуйста в чем ошибка. Пишу web приложение небольшое. Задачник. Задачи записываются в бд. Текстовые переменные инсёртом записываются в базу, а инфа из текстовых полей не записывается (get или post) при этом инфа на месте точно в этих переменных, эхо работает. вот тексты программ прилагаю.
    PHP:
    1. <html>
    2.     <head>
    3.         <title></title>
    4.     </head>
    5.     <body>
    6.         <form action="action.php" method="post">
    7.        
    8.        
    9.        
    10.         <input type="submit" value="отправить">
    11.         </form>
    12.         <table>
    13.         <?php
    14.             mysql_connect ("localhost", "root", "");
    15.        
    16.      
    17.                
    18.             // Соединились, теперь выбираем базу данных:
    19.             mysql_select_db("abc");
    20.            
    21.            
    22.            
    23.            
    24.             $s = mysql_query("SELECT * FROM x");
    25.             echo "В таблице x ".mysql_num_rows($s)." записей";
    26.                 // Выводим таблицу:
    27.         for ($c=0; $c<mysql_num_rows($s); $c++)
    28.             {
    29.            
    30.             $z = mysql_fetch_array($s);
    31.          
    32.            
    33.             echo '<tr><td>'.$z[0].'</td><td>'.$z[1].'</td><td>'.$z[2].'</td></tr>';
    34.            
    35.            
    36.             }
    37.            
    38.         ?>
    39.         </table>
    40.  
    41.     </body>
    42. </html>
    и второй файл
    PHP:
    1. html>
    2.     <head>
    3.         <title></title>
    4.     </head>
    5.     <body>
    6.         <form action="" method="post">
    7.        <input type="text"  name="fio" placeholder="Введите ФИО" required />  
    8.         <input type="text"  name="email" placeholder="Введите email" required />  
    9.         <input type="text"  name="zadacha" placeholder="Введите задачу" required />
    10.        
    11.         <input type="submit" name="submit" value="отправить">
    12.         </form>
    13.        
    14.  
    15. <?php      
    16.            
    17.            
    18.            
    19.            
    20.             mysql_connect ("localhost", "root", "");
    21.        
    22.      
    23.                
    24.             // Соединились, теперь выбираем базу данных:
    25.             mysql_select_db("abc");
    26.            
    27.             $name = $_POST["fio"];
    28.             $mail = $_POST["email"];
    29.             $text = $_POST["zadacha"];
    30.            
    31.            
    32.             $submit=$_POST['submit'];
    33.             if(isset($submit)){
    34.             $i = mysql_query ("INSERT INTO x (name, mail, text) VALUES ($name, $mail, $text)");
    35.             }
    36.            
    37.            
    38.         ?>
    39.  
    40.            </body>
    41. </html>
     
  2. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    Пару замечаний:
    1) вместо mysql_query и ему подобных следует использовать mysqli_query или PDO
    2) все имена таблиц и полей должны быть заключены в специальные символы `` (буква Ё на клаве). Все значения заключите в одинарные кавычки
    Исправьте по крайней мере п.2 и проверьте.
     
    Invoker нравится это.
  3. Invoker

    Invoker Активный пользователь

    С нами с:
    8 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    Спасибо за подсказку, заработало!
     
    #3 Invoker, 29 авг 2017
    Последнее редактирование: 29 авг 2017