@starter2

Что переделать в коде?

Есть php который принимает post запрос и выводит на экран + записывает в sql
запрос шлет андроид приложение вместе с "некой" инфой из телефона, которая не статична (меняется) и новые данные пришедшие пост запросом должны снова занестись в таблицу + на экран
код php файла:
<?php 
include 'DataBaseController.php';
if (isset($_POST['msgs'])) {
	$msgs = $_POST['msgs'];
	if (strpos($msgs, "|") > -1) {
		$msgs_array = explode("|", $msgs);
		for ($i = 0; $i < count($msgs_array); $i++) {
			if ($msgs_array[$i] != '') {
				query("INSERT INTO main (`id`, `msg`) VALUES (NULL, '$msgs_array[$i]')");
			}
		}
	} else {
		if ($msgs != '') {
			query("INSERT INTO main (`id`, `msg`) VALUES (NULL, '$msgs')");
		}
	}
	echo "123".$msgs;
} else {
		$query = query("SELECT * FROM main ORDER BY ID DESC");
		while ($row = mysqli_fetch_assoc($query)) 
echo $row['id']." | ".$row['msg']."<br>";
}		
?>

Проблема вот в чем: первый запрос обрабатывает, все записывает в табл и на экран выводит, а НОВУЮ инфу не принимает
в чем ошибка? нужно зациклировать или что сделать?
  • Вопрос задан
  • 149 просмотров
Пригласить эксперта
Ответы на вопрос 2
GTRxShock
@GTRxShock
Full-stack developer (Symfony, Angular)
инъекции? какие инъекции? :)
Ответ написан
djQuery
@djQuery
"Кодируем помаленьку" ("Сказка о Тройке")))
У вас в поле id (которое наверняка уникальное), всё время пытается записаться NULL:
query("INSERT INTO main (`id`, `msg`) VALUES (NULL, '$msgs')");
....
query("INSERT INTO main (`id`, `msg`) VALUES (NULL, '$msgs')");

здеь вся проблема. Сделайте это поле автоинкрементным и ничего туда не пишите в запросе, оно само запишется.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы