PHP MySQL сравнить строки таблицы с массивом JSON

У меня есть таблица mysql с именем, фамилией и адресом электронной почты, которую я хочу сравнить с массивом электронных таблиц Google (json) с такими же заголовками таблицы (имя, фамилия, адрес электронной почты).
Если записи соответствуют друг другу, я хочу обновить свою таблицу.
Например: у меня есть «Джон Доу» в таблице MySQL и «Джон Доу» в моей электронной таблице Google: если это правда, я хочу обновить определенное значение для этой строки таблицы MySQL.

Мой код пока что, все строки получают обновление, потому что есть одно сравнение. Я хочу только конкретные строки (может быть, с foreach?):

$sql = "SELECT * FROM student WHERE form=''"; //select from db
$result = $conn->query($sql);

while($row = mysqli_fetch_array($result)) //fetch it
{
$firstname= $row['firstname'];
$lastname= $row['lastname'];
$email = $row['email'];

$url = 'https://spreadsheets.google.com/feeds/list/*MY-KEY*/od6/public/values?alt=json'; // my spreadsheet (key is inserted with me)
$file= file_get_contents($url);
$json = json_decode($file);
$ress = $json->{'feed'}->{'entry'};

foreach($ress as $res) {

$fname = $res->{'gsx$naam'}->{'$t'};
$lname = $res->{'gsx$achternaam'}->{'$t'};
$mailing = $res->{'gsx$email'}->{'$t'};
}

if ($firstname.$lastname == $fname.$lname || $email == $mailing) {
$sql2 = "UPDATE student SET form=1";

if ($conn->query($sql2) === TRUE) {
echo "inserted";
}
}

}

0

Решение

Я думаю, что вам нужно изменить цикл for и оператор if, как это

foreach($ress as $res) {

$fname = $res->{'gsx$naam'}->{'$t'};
$lname = $res->{'gsx$achternaam'}->{'$t'};
$mailing = $res->{'gsx$email'}->{'$t'};
if ($firstname.$lastname == $fname.$lname || $email == $mailing) {
$sql2 = "UPDATE student SET form=1";

if ($conn->query($sql2) === TRUE) {
echo "inserted";
}
// to break from for loop when the record has been found
break;
}
}
0

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

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

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