Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 19.06.2020, 09:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Забыл сказать. Я же говорил - прочесть о функции json_decode. Что пишут? А пишут о том, о чем я ранее говорил - если опущен второй параметр функции, то результатом будет не массив, а объект. К пример, пусть json будет таким и он как и у вас отправлен серверу под ключом q:

{"a":1,"b":2}


Декодируем:

$data = json_decode($_POST['q']);
//попытка вывести значение как
echo $data['a'];
//закончится фатальной ошибкой - Fatal error:  Cannot use object of type stdClass as array
//так как $data, это объект и получить можно только значения его свойств a и b
echo $data->a; //а так верно и будет выведено в браузер 1, получили значение свойства a объекта $data
//если декодировать со вторым параметром равным true (можно и 1 указать, любое значение больше 0 тоже есть true)
$data = json_decode($_POST['q'], true);
//то $data массив и вывод
echo $data['a']; //это верно, есть такой ключ в массиве, а значит получим 1


Обязательно читать о функциях, их назначении, параметрах и работе. В руководстве есть примеры.

Последний раз редактировалось laimas, 19.06.2020 в 09:56.
Ответить с цитированием
  #12 (permalink)  
Старый 20.06.2020, 16:38
Интересующийся
Отправить личное сообщение для Volun Посмотреть профиль Найти все сообщения от Volun
 
Регистрация: 24.03.2019
Сообщений: 21

Спасибо, с этим почти разобрался. Еще такой вопрос по БД. Не получается составить запрос. Я получаю на сервере параметр и мне нужно сравнить его с БД, и если там нет такого совпадения, то добавить строку в таблицу. В таблице users есть 4 столбца
u_id u_name created updated

$servername = "";
$username = "";
$password = "";
$db = "";
$conn = new mysqli($servername, $username, $password, $db);
 
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
 
$user_n = $_POST[name];
 
$sql = "SELECT * FROM `users` WHERE u_name like '%$user_n%'";
$result = mysqli_query($sql);
 
print($result);
 
mysqli_close($conn);

Последний раз редактировалось Volun, 20.06.2020 в 17:15.
Ответить с цитированием
  #13 (permalink)  
Старый 20.06.2020, 17:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Вы же учитесь, а учиться начинают с основ, сначала выучить азбуку, научится читать, писать, и т.д. Язык программирования нужно тоже начинать изучать с его основ, с синтаксиса, правил, ... Вы же этим даже не утруждаете себя. Вот так делать нельзя:

$user_n = $_POST[name];

РНР исправит за вас ошибку, но это не означает, что так он будет поступать всегда.

Пришедшие извне данные сервер обязан фильтровать/проверять, а уж тем более не допустимо вставлять непосредственно данные извне как параметры в SQL запросах, это грозит sql-инъекцией.

Прежде чем использовать LIKE, нужно внимательно прочесть о ней, дабы не получать запросом не то, чего хотелось. А в вашем запросе эта функция вообще не нужна, здесь требуется простое сравнение.

Действия после запросов не всегда нужно завершать выходом (die), это стоит учитывать, а sql-ошибки никогда не показывать пользователю.

Откройте руководство, найдите описание почему у вас ошибки, исправьте их, после это можно будет говорить как сделать лучше. И не надо это воспринимать за "отфутболивание", здесь ведь форум, а не кафедра, никто не станет вам рассказывать все, от мелких ошибок до ... Нужно самому учить такие вещи коли учитесь, и учитесь серьезно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод элементов массива списком aj-nik Общие вопросы Javascript 8 13.10.2014 19:43
Вывод случайных элементов из массива в таблицу Narm0 Общие вопросы Javascript 10 06.08.2013 12:39
поочередный вывод элементов массива seosovest Общие вопросы Javascript 7 09.04.2012 10:47
вывод поочередно элементов массива Димтрий Элементы интерфейса 17 07.03.2012 00:43
Вывод переменного по количеству элементов массива из json ArmagedDance Элементы интерфейса 4 08.06.2011 10:45