Мой скрипт пытается обновить значения БД, ГДЕ $ system_id имеет определенное значение;проблема в том, что он обновляет значения БД, даже если $ system_id имеет неправильное значение.
Более конкретно: $ g1choice, $ g2choice и $ g3choice обновляются для любой строки, в которой совпадает $ factor, независимо от$ system_id
Что я делаю не так?Спасибо!:)
Ниже: 1) код;2) неудачные попытки исправить код
//Insert & Update Factor A table
$page_query = $pdo->query(
"SELECT sum(task_1) AS task01, sum(task_2) AS task02, sum(task_3) AS task03, rand01
FROM pages
GROUP BY rand01"
);
while ($row = $page_query->fetch()) {
$factors = $pdo->prepare(
"SELECT factor
FROM factorA
WHERE factor = ? && system_id = ?"
);
$factors->execute([$row['rand01'], $system_id]);
$count = count($factors->fetchAll());
if ($count > 0) {
$pdo->prepare(
"UPDATE factorA
SET g1choice = ?, g2choice = ?, g3choice = ?
WHERE factor = ?"
/* failed fix: WHERE factor = ? && system_id = ?" */
)->execute([$row['task01'], $row['task02'], $row['task03'], $row['rand01']]);
/* failed fix: )->execute([$row['task01'], $row['task02'], $row['task03'], $row['rand01'],$system_id]); */
} else {
$pdo->prepare(
"INSERT INTO factorA (system_id, factor, g1choice, g2choice, g3choice)
VALUES (?,?,?,?,?)"
)->execute([$system_id, $row['rand01'], $row['task01'], $row['task02'], $row['task03']]);
}
}
/*failed fixes below*/
//failed fix (1):
failed fix:
$page_query = $pdo->prepare(
"SELECT sum(task_1) AS task01,
sum(task_2) AS task02, sum(task_3)
AS task03, rand01
FROM pages
WHERE system_id= ?
GROUP BY rand01"
);
$factors->execute([$system_id]);
*/
//failed fix (2)
/*
if ($count > 0) {
$pdo->prepare(
"UPDATE factorA
SET g1choice = ?, g2choice = ?, g3choice = ?
was WHERE factor = ?"
/* failed fix: WHERE factor = ? && system_id = ?" */
)->execute([$row['task01'], $row['task02'], $row['task03'], $row['rand01']]);
/* failed fix: )->execute([$row['task01'], $row['task02'], $row['task03'], $row['rand01'],$system_id]); */
*/