Все добрый вечер, пишу скрипт "ранк/голосование"... Появился вопрос, как написать, чтобы после голосования и записи IP & DATE в БД, ссылка голосования убиралась на 24 часа? Я только учусь, не пинайте мну)
Дату в каком типе храните? В общем надо сравнивать по таймштампам if (time() >= (mktime($DATE) + 24*3600)) { //Показываем счетчик } Это все можно сделать лучше, просто сейчас уже не в состоянии (там через функцию прибавлять 25 часов).
файл голосования: PHP: $user_ip = $REMOTE_ADDR; $date = date("Y-m-d H:i:s"); $q = mysql_query("UPDATE ips SET hits=hits+1 WHERE id='$id'", $dbcon); if ($user_ip) { mysql_query("INSERT INTO users (id,user_ip,date) VALUES ('', '$user_ip', '$date')", $dbcon); } else { mysql_query("UPDATE users SET date='$date' WHERE user_ip='$user_ip'", $dbcon); } Главный файл: PHP: <? include 'cfg.php'; $sql = "SELECT id,ip,port,name,map,current,max,ping,secure,hits FROM address GROUP BY name ORDER BY hits DESC"; $result = @mysql_query($sql,$dbcon) or die ("Невозможно выполнить запрос"); ?> <table style='width: 100%; border-collapse: collapse'> <? while ($row = mysql_fetch_array($result)) { $id = $row['id']; $hits = $row['hits']; $ip = $row['ip']; $port = $row['port']; $name = $row['name']; $map = $row['map']; $current = $row['current']; $max = $row['max']; $ping = $row['ping']; $secure = $row['secure']; echo "<tr> <td style='width: 75px'> <a href='/vote.php?id=$id' target=_blank><img src='up.PNG' border=0></a> $hits</span></td> <td style='width: 175px'><p align=center>$ip:$port</p></td> <td>$name</td> <td style='width: 150px'>$map</td> <td style='width: 75px'><p align=center>$current/$max</p></td> <td style='width: 50px'><p align=center>$ping</p></td> </tr>"; } ?> </table> Напишите пожалуйста, как должно быть, я просто не разу с этим не сталкивался и не понимаю куда, чего... Уже несколько дней сижу на этом месте, даже методом тыка не помогает 8( Понимаю, что Вы скажете: Не занимайся програмированием Но...
Вообще, я бы посоветовал метки времени хранить в формате UNIX TIMESTAMP, ибо с ними удобнее оперировать. Тем более, что у вас действительно временные метки между голосованиями (это я так, к слову). Хранить в столбце с типом int Чтобы вывести дату в человекоподобную, то можно прямо в запросе к базе указывать FROM_UNIXTIME(`date`, "%d %m %Y") Тогда все становится гораздо проще: PHP: <?php echo "<tr> <td style='width: 75px'>"; if (time() >= ($date + 24*3600)) { echo "<a href='/vote.php?id=$id' target=_blank><img src='up.PNG' border=0></a>"; } echo $hits[b]"</span>(Откуда??)[/b]</td> <td style='width: 175px'><p align=center>$ip:$port</p></td> <td>$name</td> <td style='width: 150px'>$map</td> <td style='width: 75px'><p align=center>$current/$max</p></td> <td style='width: 50px'><p align=center>$ping</p></td> </tr>"; ?> Что-то в этом роде, только не забудьте создать новый столбец с базой, переправить скрипт, и в запросе выбирать и дату! Кстати - переименование переменных - это Вы зря...
Да пока что все равно на это, главное как написать что бы просто по IP проверялось из БД) Пытаюсь так: PHP: $q = "SELECT * FROM users"; $query = mysql_query($q); $user_ip = $REMOTE_ADDR; while ($row1 = mysql_fetch_assoc($query)) { $user_ips = $row1['user_ip']; if ($user_ips = $user_ip) { echo "<a href='/vote.php?id=$id' target=_blank><img src='up.PNG' border=0></a> $hits</span></td>"; } else { echo "$hits"; } } Не работает)
Сменил) А кто поможет мне вопрос решить с проверкой IP?) Я оооочень прошу, уже просто сил нету, уже все методы испробывал!
PHP: $user_ip = $REMOTE_ADDR; if (mysql_num_rows(mysql_query("SELECT id FROM users WHERE user_ip='$user_ip' AND date=NOW()"))) { echo "$hits"; } else { echo "<a href='/vote.php?id=$id' target=_blank><img src='up.PNG' border=0></a> $hits</span></td>"; } Что то типа этого... только этот не работает (как всегда)
Тааакс)))) С этим я разобрался!!!!!!! Ура)))) Теперь вопрос в другом, как обновить страницу, после нажатия на ссылку?
Ыыы.. жжошь, товарисч. Подозреваю, что PHP: header("Location: [url=http://localhost]http://localhost[/url]");
Эм... а куда ее пихать?) PHP: echo "<a href='javascript:winop();'><img src='up.PNG' border=0></a> $hits"; } else { echo "$hits"; }