Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не получается составить запрос к БД
Форумы портала PHP.SU » » Вопросы новичков » Не получается составить запрос к БД

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

1. Moby - 20 Июня, 2020 - 16:29:32 - перейти к сообщению
Добрый день. Я получаю на сервере параметр и мне нужно сравнить его с БД, и если там нет такого совпадения, то добавить строку в таблицу. В таблице users есть 4 столбца
u_id u_name created updated

PHP:
скопировать код в буфер обмена
  1.  
  2. $servername = "";
  3. $username = "";
  4. $password = "";
  5. $db = "";
  6. $conn = new mysqli($servername, $username, $password, $db);
  7.  
  8. if ($conn->connect_error) {
  9.   die("Connection failed: " . $conn->connect_error);
  10. }
  11.  
  12. $user_n = $_POST[name];
  13.  
  14. $sql = "SELECT * FROM `users` WHERE u_name like '%$user_n%'";
  15. $result = mysqli_query($sql);
  16.  
  17. print($result);
  18.  
  19. mysqli_close($conn);
  20.  
  21.  


и еще вопрос вдогонку, как извлечь параметр 123 из массива вида {list[1][data]: 123}
методом $_POST ? Т.е. из массива {user[id]:900} получается получить так $user_id = $_POST[user][id] , а иначе не получается
2. Vladimir Kheifets - 20 Июня, 2020 - 20:53:14 - перейти к сообщению
Moby пишет:
Добрый день. Я получаю на сервере параметр и мне нужно сравнить его с БД, и если там нет такого совпадения, то добавить строку в таблицу. В таблице users есть 4 столбца
u_id u_name created updated

PHP:
скопировать код в буфер обмена
  1.  
  2. $servername = "";
  3. $username = "";
  4. $password = "";
  5. $db = "";
  6. $conn = new mysqli($servername, $username, $password, $db);
  7.  
  8. if ($conn->connect_error) {
  9.   die("Connection failed: " . $conn->connect_error);
  10. }
  11.  
  12. $user_n = $_POST[name];
  13.  
  14. $sql = "SELECT * FROM `users` WHERE u_name like '%$user_n%'";
  15. $result = mysqli_query($sql);
  16.  
  17. print($result);
  18.  
  19. mysqli_close($conn);
  20.  
  21.  


и еще вопрос вдогонку, как извлечь параметр 123 из массива вида {list[1][data]: 123}
методом $_POST ? Т.е. из массива {user[id]:900} получается получить так $user_id = $_POST[user][id] , а иначе не получается

Добрый день!
1.С PHP mysqli можно использовать два стиля программирования - процедурный или объектный.
Однако, в одном скрите не допускается их смещивать.
Ваша главная ошибка в том, что для соединения с БД Вы ипользовали объектный стиль, а далее процедурный стиль.
Чтобы было понятнее это объектная реализация
Спойлер (Отобразить)

а это процедурная
Спойлер (Отобразить)
2. $_POST это не метод, а массив данных, переданных скрипту методом POST.
Цитата:
...получается получить так $user_id = $_POST["user"]["id"] , а иначе не получается...

Может быть и так, а может и нет.
Зависит от того, как устроенна HTML форма, из которой отправляются данные.
Напишите print_r($_POST) и узнаете.
Удачи!

 

Powered by ExBB FM 1.0 RC1