Я Синтаксический Этот JSon массив, и я хочу взять type
объект и положить, что в Нью-Column type2
, и это один ряд моих JSon Ряды, Почему я получаю это предупреждение для некоторых строк?Warning: Invalid argument supplied for foreach() in C:\wamp64\www\json\json.php on line 18
Синтаксический массив и JSON объект через PHP - Недействительный аргумент
[{"id":"26","answer":[{"option":"3","text":"HIGH"}],"type":"3"},
{"id":"30","answer":[{"option":"3","text":"LOW"}],"type":"3"},
{"id":"31","answer":[{"option":"3","text":"LOW"}],"type":"3"}]
И Это мой код:
<?php
$con=mysqli_connect("localhost","root","","array");
mysqli_set_charset($con,"utf8");
// Check connection
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="SELECT `survey_answers`,us_id FROM `user_survey_start`";
if ($result=mysqli_query($con,$sql)){
while ($row = mysqli_fetch_row($result)){
$json = $row[0];
if(!is_null($json)){
$jason_array = json_decode($json,true);
// type2
$type = array();
foreach ($jason_array as $data) {
if (array_key_exists('type', $data)) {
// Now we will only use it if it actually exists
$type[] = $data['type'];
}
}
// lets check first your $types variable has value or not?
if(!empty($type)) {
$types= implode(',',$type); /// implode yes if you got values
}
else {
$types = ''; //blank if not have any values
}
$sql2="update user_survey_start set type2='$types' where us_id=".$row[1];//run update sql
echo $sql2."<br>";
mysqli_query($con,$sql2);
}
}
}
mysqli_close($con);
?>
Это Странг, почему некоторые строки имеют выход и некоторые строки не имеют никакого выхода, Тот Тип Json одинаковы. Я нашел проблему, потому что некоторые json вошли, я имею в виду. Это один Имеет Warning: Invalid argument supplied for foreach()
[{"id":"26","answer":[{"option":"4","text":"Hello
"}],"type":"3"}]
И это один Окей
[{"id":"26","answer":[{"option":"4","text":"Hello"}],"type":"3"}]
Как я могу исправить эту проблему?
Yessss, решенный, Appriciate It. –
У меня нет какой-либо ошибки, но в выводе У меня нет значения для этих строк 'Type' Too, я имею в виду, у меня есть обновление user_survey_start set type2 = '' где us_id = 267593 –
Я думаю, что ваша переменная $ jason_array не является массивом that'why not come any output –