Проверка равенства переменной хоть одному значению из базы

dasser

Новичок
Доброго вермени суток!
есть пару строк, которые выбирают из базы даты:
PHP:
$checkup = mysql_query("SELECT max(date) as max FROM currency ",$db);
$row = mysql_fetch_array($checkup, MYSQL_ASSOC);
echo strtotime($row['max']);
и есть сегодняшняя дата
PHP:
$today = strtotime (date("Y-m-d"));
КАК сделать так чтобы проверить: есть ли хотя бы одно верное значение из данных поступающих из базы равное $today?
заранее спасибо!
 

AnrDaemon

Продвинутый новичок
Вот это вообще не понял.
Давайте начнём с начала.
Что вам нужно СДЕЛАТЬ? Не КАК, а ЧТО?
Проверить, есть ли в таблице данные за конкретную дату? Или что?
 

dasser

Новичок
Вот это вообще не понял.
Давайте начнём с начала.
Что вам нужно СДЕЛАТЬ? Не КАК, а ЧТО?
Проверить, есть ли в таблице данные за конкретную дату? Или что?
все верно, пытаюсь сделать базу по курсам валют. неоходимо проверить есть ли в базе данные по нескольким валютам (USD, EUR), если есть то не обновлять, если нету , то добавить из xml файла
 

AnrDaemon

Продвинутый новичок
Неверная постановка задачи ведёт к дурацким решениям.
Вам НЕ НАДО проверять. Вам надо ДОБАВИТЬ.
Если в БД уже есть данные, запрос на добавление сфейлится, делов то…
 

dasser

Новичок
Ну и?…
Не вижу проблемы.
ну вот то что у меня сейчас есть добавляет каждый раз новую строчку, совершенно одинаковую
Код:
$today = strtotime (date("Y-m-d"));

$checkup = mysql_query("SELECT max(date) as max FROM currency  ",$db);
$row = mysql_fetch_array($checkup, MYSQL_ASSOC);

$check = strtotime($row['max']);
    if ($check < $today){
    $result = mysql_query("INSERT INTO currency (date,code,char3,size,name,rate, changes) VALUES ('$dataUSD->date','$dataUSD->code','$dataUSD->char3','$dataUSD->size','$dataUSD->name','$dataUSD->rate', '$dataUSD->change')",$db);
        if (!$result) {
            die('Неверный запрос: ' . mysql_error());
        }
        else {
        echo "<br>данные по курсам валют обновлены !</br>";
        }
    }
    else {
        echo "<br>обновление не произошло !</br>";
    }
 

AnrDaemon

Продвинутый новичок
Таблицу опишите правильно. Не будет добавлять новые.
 

AnrDaemon

Продвинутый новичок
И почему вообще у вас XML каждый раз импортиреутся в БД? Что, провайдер не предоставляет If-Modified-Since ?
 

dasser

Новичок
а причем сдесь провайдер, курс обновляеться в любое время, сегодня на завтра, может быть сегодня на сегодня, без конкретно заданого времени. если и так то "If-Modified-Since" есть но узать его мне не приходилось.
 

AnrDaemon

Продвинутый новичок
…Ключевое слово не "в любое время" а "обновляется".
И, да, в гугл.
 

dasser

Новичок
ну я так понял из всего этого: нужно юзать оператор NOT EXISTS, и в его подзапрос бросать всю конструкцию проверки наличия данных ?
 

AnrDaemon

Продвинутый новичок
Не нужно. Нужно
1. правильно построить таблицу, чтобы лишние данные в принципе нельзя было добавить, и
2. нужно по возможности просто не добавлять лишние данные, например, не получая их вообще.
 

dasser

Новичок
так да не так )) чем дальше в форум тем больше дров. как не добавлять лишние данные если существующие нужно с чем то проверять, не получая новых вообще ? сама таблица вида:
PHP:
[id] - ID
[date] - дата
[code] - код валюты
[char3] обозначение валюты
[size] колическво сравниваемой единицы
[name] - название валюты
[rate] - значение
[change] - разница изменений
 

AnrDaemon

Продвинутый новичок
Простите, когда вам читали курс построения баз данных, вы такие понятия как "индексация", "составной [уникальный] ключ" проходили?
А аксиому, что всё, что БД может сделать за вас, она должна делать за вас, вам давали?
 

AnrDaemon

Продвинутый новичок
бред

[date] - дата
[`code] - код валюты
Окей…

[`char3] обозначение валюты
Бред. Учим НФ1.

[`size] колическво сравниваемой единицы
Чо?…

[`name] - название валюты
НФ1

[`rate] - значение
ок

[`change] - разница изменений
Нууу… может быть. Но только для ускорения вывода. Я бы не стал вообще ЭТО добавлять в лог.
 

dasser

Новичок
Простите, когда вам читали курс построения баз данных, вы такие понятия как "индексация", "составной [уникальный] ключ" проходили?
А аксиому, что всё, что БД может сделать за вас, она должна делать за вас, вам давали?
кого-то учат, а кто-то сам с 0-ей пытаться вникать. по делу будет? а как на счет даты обновления 4 курсов, забыл? каждый день сливается 4 курса с одной и той же датой. т.е. уникальность ключа будет нарушена.
 
Сверху