Имеются две переменные: $dates и $ip ($dates = $info[dates]; $ip = $info[ip] В переменной $dates находится текущая дата, а в $ip - через пробел добавляются ip-адреса. Помогите пожалуйста сделать следующее: Если $dates не равно date("Y.m.d"); то $dates перезаписывается (в базе) на date("Y.m.d"); и полностью затираются данные в переменной $ip. После этого происходит проверка $ip на наличие в нём ip пользователя, обратившегося к странице - $_SERVER['REMOTE_ADDR']; (разумеется, его там не будет, т.к. всё затёрто). При отсутствии этого ip в переменной $ip, выполняется определённый {сценарий}, после чего в переменную $ip добавляется $_SERVER['REMOTE_ADDR']; Если $dates = date("Y.m.d"); то происходит проверка $ip на наличие в нём $_SERVER['REMOTE_ADDR']; Если таковой в нём имеется, то сценарий останавливаниется. Если НЕ имеется, то выполняется определённый {сценарий}, после чего в переменную $ip добавляется $_SERVER['REMOTE_ADDR']; В переменной $ip список ip-адресов записывается через пробел. Каждый новый добавляемый ip ставится в конец. Обновление базы данных: $update = "UPDATE `info` SET dates='{$dates}', ip='{$ip}', WHERE id='{$_POST['id']}'";
Всё просто: PHP: <? $dates = $info['dates']; $ip = $info['ip']; //Проверка переменной $dates if (strpos($dates, date("Y.m.d"))===FALSE) { //Перезапись в базе переменной $dates на date("Y.m.d") и перезапись переменной $ip на пустую, если $dates не равно date("Y.m.d") } //Проверка переменной $ip if (strpos($ip, $_SERVER['REMOTE_ADDR'])===FALSE) { //Сценарий + добавление $_SERVER['REMOTE_ADDR'] в конец текста переменной $ip } ?> Как теперь сделать перезапись переменных (замену даты и ip) ? Обновление одной переменной (увеличение числа на 1) : PHP: <? { $view = "SELECT * FROM `info` WHERE id='".mysql_real_escape_string($_GET['id'])."'"; $result = mysql_query($view); $info = mysql_fetch_array($result); //+1 скачивание $count = "UPDATE info SET download=download+1 WHERE id=$id"; mysql_query ($count); } ?>
Ещё кое-что сам придумал: PHP: <? //Перезапись даты $dates = date("Y.m.d"); $count = "UPDATE info SET dates=$dates WHERE id=$id"; mysql_query ($count); //Перезапись IP (полная) $ip = " "; $count = "UPDATE info SET ip=$ip WHERE id=$id"; mysql_query ($count); //Добавление ip (пробелы - в качестве разделителей) $ip.=$info[ip]; //Это все предыдущие ip из переменной $ip.=" "; $ip.=$_SERVER['REMOTE_ADDR']; $ip.=" "; $count = "UPDATE info SET ip=$ip WHERE id=$id"; mysql_query ($count); ?> Так будет действовать?
darkgod дабы не вычислять текстовые данные или не текстовые, int или float, отлично подходит mysql_real_escape_string для любых значений Если уж так хочется типизации, то нужно пользоваться MySQLi и stmt->prepare(), stmt->bind_param(), stmt->execute(), stmt->bind_result()