Array
(
[0] => Array
(
[time] => 1330901100
[country] => New_Zealand
[importance] => 1
[name] => text
[fact] => -2.3%
[forecast] =>
[previous] => 3.2%
)
[1] => Array
(
[time] => 1330903800
[country] => Australia
[importance] => 1
[name] => text
[fact] => 46.7
[forecast] =>
[previous] => 51.9
)
[2] => Array
(
[time] => 1330907400
[country] => Australia
[importance] => 1
[name] => text
[fact] => 0.1%
[forecast] =>
[previous] => 0.2%
хочу проверить записана ли эта информация в базу, если да - то UPDATE этой записи, если нет, то добавить новую запись. В результате - всегда нет, даже если я вижу что всё совпадает.
Подскажите, где ошибка?
if (!mysql_connect('localhost','root','')){
echo "Ошибка подключения к серверу MySQL";
exit;
}
$sql_calendar=mysql_select_db('calendar');
$count=count($index_array);
for ($i=0;$i<$count;$i++){
$where="country='".$index_array[$i][country]."', AND name='".$index_array[$i][name]."'";
$sql_econom_calendar=mysql_query("SELECT * FROM econom_calendar WHERE ".$where);
if($sql_econom_calendar){
$set="time='".$index_array[$i][time]."' importance='".$index_array[$i][importance]."' fact='".$index_array[$i][fact]."' forecast='".$index_array[$i][forecast]."' previous='".$index_array[$i][previous]."'";
mysql_query("UPDATE econom_calendar SET ".$set." WHERE ".$where);
}else {
$values="'".$index_array[$i][time]."','".$index_array[$i][country]."','".$index_array[$i][importance]."','".$index_array[$i][name]."','".$index_array[$i][fact]."','".$index_array[$i][forecast]."','".$index_array[$i][previous]."'";
mysql_query("INSERT INTO econom_calendar (time, country, importance, name, fact, forecast, previous) VALUES (".$values.")");
}
}
mysql_close();
Спустя 8 минут, 29 секунд (9.03.2012 - 11:39) Visman написал(а):
$where="country='".$index_array[$i][country]."', AND name='".$index_array[$i][name]."'";
Что в условии делает запятая?
Спустя 2 минуты, 15 секунд (9.03.2012 - 11:41) T1grOK написал(а):
...
$sql_econom_calendar=mysql_query("SELECT * FROM econom_calendar WHERE ".$where);
if(mysql_num_rows($sql_econom_calendar) > 0){
...
И как заметил Visman запрос неправильно сформирован
Спустя 6 минут, 49 секунд (9.03.2012 - 11:48) tkir написал(а):
спасибо!!! заработало!
Спустя 3 минуты, 26 секунд (9.03.2012 - 11:51) sergeiss написал(а):
Цитата (tkir @ 9.03.2012 - 12:30) |
хочу проверить записана ли эта информация в базу, если да - то UPDATE этой записи, если нет, то добавить новую запись. |
Для выполнения этой задачи существует более правильный способ. Прочитай в хэлпе про INSERT ... ON DUPLICATE KEY UPDATE. Именно в Мускуле такая шняга уже готовая существует.
Если у тебя какое-то сложное условие, то можно создать триггер и его использовать, причем весьма успешно.
Цитата (tkir @ 9.03.2012 - 12:48) |
спасибо!!! заработало! |
Но лучше сразу переделай, т.е. сделай правильно
