Форумы портала PHP.SU » » Вопросы новичков » Вывод текста с базы Mysql - PHP БД

Страниц (1): [1]
 

1. usa-1450 - 18 Июня, 2018 - 19:01:41 - перейти к сообщению
Есть таблица в базе данных MySQL.

CODE (text):
скопировать код в буфер обмена
  1.  
  2. | author     varchar(128)
  3. | title         varchar(128)
  4. | category  varchar(16)
  5. | year        smallint(6)
  6. | isbn        char(13)    
  7.  


Данные отправляются с формы но не вставляются почему то в базу данных, не знаю почему.

Данные отправляю с index.php

PHP:
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html>
  3. <html lang="ru">
  4. <head>
  5. <title>Админ-панель</title>
  6. </head>
  7. <body>
  8. <?PHP
  9.   echo <<<_END
  10.   <form action="form.php" method="post"><pre>
  11.     Author <input type="text" name="author">
  12.      Title <input type="text" name="title">
  13.   Category <input type="text" name="category">
  14.     Year <input type="text" name="year">
  15.     ISBN <input type="text" name="isbn">
  16.       <input type="submit" value="ADD RECORD">
  17.      </pre></form>
  18. _END;
  19. ?>
  20.  
  21. </body>
  22. </html>
  23.  


Через метод POST в form.php

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $host="test.ru";
  4. $user="root";
  5. $pass=""; //Установленный вами пароль
  6. $db_name="publications";
  7. $link = mysqli_connect($host,$user,$pass,$db_name);
  8.  
  9. if (!$link)  {
  10.     die("Database connection failed: " . mysqli_connect_error());
  11. }
  12.  
  13. if  (isset($_POST['author']) &&
  14.       isset($_POST['title']) &&
  15.       isset($_POST['category']) &&
  16.       isset($_POST['year']) &&
  17.       isset($_POST['isbn']))
  18.   {
  19.     $author   = $_POST['author'];
  20.     $title    = $_POST ['title'];
  21.     $category = $_POST ['category'];
  22.     $year     = $_POST ['year'];
  23.     $isbn     = $_POST['isbn'];
  24.        
  25.         // Выполняем SQL-запрос
  26. $query = "INSERT INTO publications.classics(author,title,type,year,isbn)
  27. VALUES('".$author."','".$title."','".$category."','".$year."','".$isbn."')";
  28. $result = mysqli_query($link,$query);  
  29.  
  30. }
  31.    
  32.        
  33. // Закрываем соединение
  34. mysqli_close($link);
  35.        
  36. ?>
  37.  


Вроде отправляется но в базу не записывается ничего
(Добавление)
Все, понял ошибку, не то поле указал в запросе Insert, нужно так:

CODE (text):
скопировать код в буфер обмена
  1. $query = "INSERT INTO publications.classics(author,title,category,year,isbn)
  2. VALUES('".$author."','".$title."','".$category."','".$year."','".$isbn."')";


Странно, если вводить на русском к примеру в поле author выдает кракозябры если выводить базу в командной строке в MySQL, выдает просто знаки вопроса вместо русских символов.
2. usa-1450 - 18 Июня, 2018 - 22:05:47 - перейти к сообщению
С вставкой в базу данных вроде разобрался, вот с удалением как-то не идет.

Попробовал модернизировать код, в таблице которая была описана выше есть разные года в поле year. Мне нужно чтобы удалилось то поле которое я введу в строке ввода которое соответствует тому году который есть в таблице.

Создал
index.php
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html>
  3. <html lang="ru">
  4. <head>
  5. <title>Админ-панель</title>
  6. </head>
  7. <body>
  8. <?php
  9.  
  10. echo <<<_END2
  11. <form action="form.php" method="post">
  12. <input type="text" name="year">
  13.  <input type="submit" value="DELETE RECORD"></form>
  14. _END2;
  15. ?>
  16.  
  17. </body>
  18. </html>
  19.  


Файл в который отправляем форму form.php

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $host="test.ru";
  4. $user="root";
  5. $pass=""; //Установленный вами пароль
  6. $db_name="publications";
  7. $link = mysqli_connect($host,$user,$pass,$db_name);
  8.  
  9. if (!$link)  {
  10.     die("Database connection failed: " . mysqli_connect_error());
  11. }
  12.  
  13. if(isset($_POST['year'])){
  14. $query = 'DELETE FROM publications.classics WHERE year=".$year."';
  15. }
  16.  
  17. // Закрываем соединение
  18. mysqli_close($link);
  19.  
  20.        
  21. ?>
  22.  


Данные отправляются но год который ввожу в поле, который совпадает с полем с таблицы не удаляется все поле почему то, вроде запрос правильный. Мне нужно чтобы удалилось все поле с таблицы которое соответствует году с таблицы с годом в поле в которое введу год.
3. Vladimir Kheifets - 19 Июня, 2018 - 08:02:27 - перейти к сообщению
usa-1450 пишет:
С вставкой в базу данных вроде разобрался, вот с удалением как-то не идет.

Попробовал модернизировать код, в таблице которая была описана выше есть разные года в поле year. Мне нужно чтобы удалилось то поле которое я введу в строке ввода которое соответствует тому году который есть в таблице.

Создал
index.php
Спойлер (Отобразить)


Файл в который отправляем форму form.php

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $host="test.ru";
  4. $user="root";
  5. $pass=""; //Установленный вами пароль
  6. $db_name="publications";
  7. $link = mysqli_connect($host,$user,$pass,$db_name);
  8.  
  9. if (!$link)  {
  10.     die("Database connection failed: " . mysqli_connect_error());
  11. }
  12.  
  13. if(isset($_POST['year'])){
  14. $query = 'DELETE FROM publications.classics WHERE year=".$year."';
  15. }
  16. // Закрываем соединение
  17. mysqli_close($link);   
  18. ?>


Данные отправляются но год который ввожу в поле, который совпадает с полем с таблицы не удаляется все поле почему то, вроде запрос правильный. Мне нужно чтобы удалилось все поле с таблицы которое соответствует году с таблицы с годом в поле в которое введу год.

Добрый день!
Вы задаёте вопросы и отвечаете на них без подсказок?
На всякий случай....
После $query = 'DELETE FROM publications.classics WHERE year=".$year."';
нужно добавить $result = mysqli_query($link,$query);
Удачи!
4. usa-1450 - 24 Июня, 2018 - 19:26:03 - перейти к сообщению
Попробовал вот здесь исправить, все равно не удаляет запись , ошибок не выдает

PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_POST['year'])){
  3. $query = 'DELETE FROM publications.classics WHERE `year`=".$year."';
  4. $result = mysqli_query($link,$query);
  5. }
  6.  
5. lamokk - 25 Июня, 2018 - 12:58:27 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. $query = 'DELETE FROM publications.classics WHERE year="'.$year.'"';
  3.  

Вот так должно заработать Подмигивание

 

Powered by ExBB FM 1.0 RC1