mysql — анализ json и обновление NULL для строки NULL через переполнение стека

Я анализирую мой JSON и помещаю это в 3 новых столбца, id2,awnser2 а такжеtype2, Но некоторые строки равны NULL, Как я могу сделать условие для обновления строк с нулем?(Делатьid2,type2,awnser2 = Null For Some Rows),
Это одна строка моего JSON:

[{"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"}]

Я имею в виду, например: моя строка отправки пуста и не является Json, и в моем выводе есть ошибка,
И это мой код:

<?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];
$jason_array  = json_decode($json,true);
// id2
$id = array();
foreach ($jason_array as $data) {
$id[] = $data['id'];
}
$ids= implode(',',$id);
$sql1="update user_survey_start set id2='$ids' where us_id=".$row[1];//run update sql
echo $sql1."<br>";
mysqli_query($con,$sql1);

// type2
$type = array();
foreach ($jason_array as $data) {
$type[] = $data['type'];
}
$types= implode(',',$type);
$sql2="update user_survey_start set type2='$types' where us_id=".$row[1];//run update sql
echo $sql2."<br>";
mysqli_query($con,$sql2);
// awnser2
$answers = array();
foreach ($jason_array as $data) {
foreach($data['answer'] as $ans){
$answers[] =$ans['text'] ;
}
}
$answers= implode(',',$answers);
$sql3="update user_survey_start set awnser2='$answers' where us_id=".$row[1];//run update sql
echo $sql3."<br>";
mysqli_query($con,$sql3);
}
}
mysqli_close($con);
?>

1

Решение

Спасибо @gaurav, мой вопрос решен в чате,
if(!is_null($json)){

<?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);

// id2
$id = array();
foreach ($jason_array as $data) {
$id[] = $data['id'];
}
$ids= implode(',',$id);
$sql1="update user_survey_start set id2='$ids' where us_id=".$row[1];//run update sql
echo $sql1."<br>";
mysqli_query($con,$sql1);

// type2
$type = array();
foreach ($jason_array as $data) {
$type[] = $data['type'];
}
$types= implode(',',$type);
$sql2="update user_survey_start set type2='$types' where us_id=".$row[1];//run update sql
echo $sql2."<br>";
mysqli_query($con,$sql2);
// awnser2
$answers = array();
foreach ($jason_array as $data) {
foreach($data['answer'] as $ans){
$answers[] =$ans['text'] ;
}
}
$answers= implode(',',$answers);
$sql3="update user_survey_start set awnser2='$answers' where us_id=".$row[1];//run update sql
echo $sql3."<br>";
mysqli_query($con,$sql3);
}
}
}
mysqli_close($con);
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector