MySQL запрос: использует предыдущие значения из таблицы, когда существует предыдущее значение. Необходимо исправить, если в таблице еще нет предыдущих значений - PullRequest
0 голосов
/ 22 ноября 2011
$query = "INSERT INTO temperature (city, change, curr_temp) SELECT  city, '".$cleaned_change."',  curr_temp+'".$cleaned_change."' FROM temperature where city='".$chosen_city."' order by Time desc, id desc limit 1";

Итак, в каждой строке отображается город, изменения температуры и текущая температура.Если у нас есть изменение $ cleaned_change = 2 (Forengheits) для Сан-Франциско, и его curr_temp был 47F (взят из предыдущей строки с использованием SELECT), мы вставляем ('San Francisco', '2', '49').(было 47F, изменение + 2F, теперь 49F).

Проблема в следующем: , если это первая строка, которая не работает, потому что у нас нет 47F для выбора(нет предыдущих значений).В результате он не вставляет строку.Как это исправить?

Хорошей идеей является вставка самого первого ряда «вручную» (с температурой 0F или 32F или чем-то еще).И это прекрасно работает.но есть ли какой-нибудь возможный способ проверить, имеет ли curr_temp предыдущее значение?Я хочу, чтобы он работал с нуля (когда таблица усекается, она перестает работать) и использует только один запрос.

PS НЕТ НУЛЕВ.Если строка существует, curr_temp имеет числовое значение в таблице.Спасибо.

PSS Я забыл заметить, что немного упростил запрос.Да, он очищает значения POST от возможных инъекций.Но, спасибо, что сказал это.

1 Ответ

0 голосов
/ 22 ноября 2011

Попробуйте сделать просто запрос SELECT, затем выполните логику PHP, а затем используйте запрос INSERT. Тогда вы сможете встроить защиту от SQL-инъекций и упростить свою логику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...