Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Kasowanie po pewnym czasie
tumeks
post 21.05.2004, 22:13:16
Post #1





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 10.11.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam!
Mam pytanie jak zrobic żeby dane ktore wysyłamam do mysql zostawały usuwane po 2 minutach gdzie usuwa te dane ktore sa przypisane z danego adresu IP, acha i ejsszce w mysql czy musze dać timestamp czy varchar??

Npsiałęm taki kod ale nie działa:(
[php:1:6f31040dd7]<?php
$ip = $REMOTE_ADDR;
$klik = mysql_query("INSERT INTO klik VALUES ('".$ip."', '')");

// pole czas_aktywnosci to te wczesniejsze time()+120
mysql_query("delete from klik where czas < ".time()+120);
?>[/php:1:6f31040dd7]

Pozdrawiam
Tomek
Go to the top of the page
+Quote Post
djpeterek
post 22.05.2004, 07:03:21
Post #2





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 10.10.2003

Ostrzeżenie: (0%)
-----


sproboj tak[php:1:347e0ff8e7]mysql_query("DELETE FROM klik WHERE czas<'".(time()-120)."'");[/php:1:347e0ff8e7]i jeszcze drobna uwaga przy usuwaniu rekordow ma byc - a nie plus bo on ma sobie odejmowac czas i go porownac a nie dodac do niego


--------------------
Warsztat: Apache: 1.3.29 | MySQL: 3.23.58 | PHP: 4.3.4 | phpMyAdmin: 2.5.4
Narzędzia: Notatnik 0.1 - Photoshop 7.0
Go to the top of the page
+Quote Post
party
post 22.05.2004, 10:32:59
Post #3





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 19.08.2003
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


W MySQL wartości liczbowych nie pisze się w ''...

Cytat
czy musze dać timestamp czy varchar??

Daj int(10) a wypełniaj w ten sposób:
[php:1:b431fee825]<?php
mysql_query( 'INSERT INTO klik VALUES('tutaj_ip', UNIX_TIMESTAMP())' );
?>[/php:1:b431fee825]
A usuwaj w ten sposób:
[php:1:b431fee825]<?php
mysql_query( 'DELETE FROM klik WHERE czas < '. time() + 120 .' AND ip = '. $_SERVER['REMOTE_ADDR'] .'' );
?>[/php:1:b431fee825]


--------------------
Go to the top of the page
+Quote Post
djpeterek
post 22.05.2004, 12:03:05
Post #4





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 10.10.2003

Ostrzeżenie: (0%)
-----


partyzant a czemu on ma sprawdzac po IP skoro usuwa po pewnym czasie questionmark.gif


--------------------
Warsztat: Apache: 1.3.29 | MySQL: 3.23.58 | PHP: 4.3.4 | phpMyAdmin: 2.5.4
Narzędzia: Notatnik 0.1 - Photoshop 7.0
Go to the top of the page
+Quote Post
tumeks
post 22.05.2004, 14:39:41
Post #5





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 10.11.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


No partyzant nic sie nie usuwa z mysql sad.gif w mysql pisze cos takiego
192.168.1.2 1085233007
192.168.1.2 1085232972
192.168.1.2 1085232971 itp. smile.gif
i po 2 minutach nic nie usuwa :/
Go to the top of the page
+Quote Post
Ludvik
post 22.05.2004, 16:34:16
Post #6





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


[sql:1:0fa32fbea1]...WHERE czas < '. time() + 120 .'...[/sql:1:0fa32fbea1]

Hmm...ja tu czegoś nie rozumiem. Ten warunek chyba jest prawdziwy w momencie dodania wpisu... Np. dodajesz wpis o czasie powiedzmy 1000 (żeby było prosciej). I w momencie dodania masz taką sytuację:
1000 < 1000+120. Jak dla mnie to powinno być czas < time() - 120. Wtedy po dwóch minutach warunek jest nieprawdziwy:
1000 < 1120 - 120, bo 1000 = 1120 - 120. A dlaczego nie znika? Przy tym warunku powinno wszystko działać. Jak chcesz sprawdzić czy usuwa, najlepiej usuń (weź ją w komentarz) na chwilę linię dodającą wpis.


--------------------
Go to the top of the page
+Quote Post
tumeks
post 22.05.2004, 18:29:57
Post #7





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 10.11.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


no patrz mam taki kod:
[php:1:ba24927a01]<?php
$dburl = "localhost";
$dblogin = "login";
$dbpasswd= "haslo";
$dbname = "nazwa";

mySQL_connect($dburl, $dblogin, $dbpasswd);
mySQL_select_db($dbname);

$strona = $_GET['strona'];
echo "1 punkt zaliczony dla $strona <br><br>";
$ip = $REMOTE_ADDR;
mysql_query( 'INSERT INTO klik VALUES("'.$ip.'", UNIX_TIMESTAMP())' );

mysql_query( 'DELETE FROM klik WHERE czas < '. time() - 120 .' AND ip = '. $_SERVER['REMOTE_ADDR'] .'' );



echo "Strony bior&sup1;ce udzia&sup3; w konkursie www:<br>";
$querykonkurswww = "select * from strony ORDER by ID DESC ";
$resultkonkurswww = mySQL_query($querykonkurswww);
while($rowkonkurswww = mysql_fetch_array($resultkonkurswww))
{
echo "<a href=".$rowkonkurswww['adres'].">".$rowkonkurswww['adres']."</a><br>";
}
?>[/php:1:ba24927a01]

No i jakoś nie działa ;/
Go to the top of the page
+Quote Post
party
post 22.05.2004, 19:04:25
Post #8





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 19.08.2003
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Ludvik masz rację - powinien być '-'...

A co do skryptu to daj time() - 120 do zmiennej a potem w zapytaniu nazwe zmiennej...


--------------------
Go to the top of the page
+Quote Post
tumeks
post 22.05.2004, 19:28:41
Post #9





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 10.11.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Nie działa(nic nie usuwa z mysql sad.gif) oto kod sad.gif

[php:1:cc61e9b0ac]<?php
$dburl = "localhost";
$dblogin = "";
$dbpasswd= "";
$dbname = "";

mySQL_connect($dburl, $dblogin, $dbpasswd);
mySQL_select_db($dbname);

$strona = $_GET['strona'];
echo "1 punkt zaliczony dla $strona <br><br>";
$ip = $REMOTE_ADDR;
mysql_query( 'INSERT INTO klik VALUES("'.$ip.'", UNIX_TIMESTAMP())' );


$konkurstime = time() - 120;
mysql_query( 'DELETE FROM klik WHERE czas < '. $konkurstime .' AND ip = '. $_SERVER['REMOTE_ADDR'] .'' );

echo "Strony bior&sup1;ce udzia&sup3; w konkursie www:<br>";
$querykonkurswww = "select * from strony ORDER by ID DESC ";
$resultkonkurswww = mySQL_query($querykonkurswww);
while($rowkonkurswww = mysql_fetch_array($resultkonkurswww))
{
echo "<a href=".$rowkonkurswww['adres'].">".$rowkonkurswww['adres']."</a><br>";
}
?>[/php:1:cc61e9b0ac]
Go to the top of the page
+Quote Post
pearl1985
post 23.05.2004, 02:40:22
Post #10





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 5.05.2004
Skąd: Starachowice

Ostrzeżenie: (0%)
-----


[php:1:0de01a5b24]<?php
$dburl = "localhost";
$dblogin = "";
$dbpasswd= "";
$dbname = "";

mySQL_connect($dburl, $dblogin, $dbpasswd);
mySQL_select_db($dbname);

$strona = $_GET['strona'];
echo "1 punkt zaliczony dla $strona <br><br>";
// tytaj pole które masz jako czas zdefiniuj je na datetime i w pole default daj now ()
mysql_query("INSERT INTO klik (ip, czas) VALUES('$_SERVER[REMOTE_ADDR]', now() )");

// tutaj wyliczam czas w połączeniu komend mktime i date
$konkurstime = date ("Y-m-d H:i:s", mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y") ) );

mysql_query("DELETE FROM klik WHERE czas<'$konkurstime'");

echo "Strony bior&sup1;ce udzia&sup3; w konkursie www:<br>";
$querykonkurswww = "select * from strony ORDER by ID DESC ";
$resultkonkurswww = mySQL_query($querykonkurswww);
while($rowkonkurswww = mysql_fetch_array($resultkonkurswww))
{
echo "<a href=".$rowkonkurswww['adres'].">".$rowkonkurswww['adres']."</a><br>";
}
?>
[/php:1:0de01a5b24]

Pamiętaj tumeks o tym, że ten kod napisałem do bazy mysql która w twojej tabelce ma pole czas o typie datetime i defaultowo wpisane now()

Jeśli nie zadziała nadal to pisz do mnie na priv to Ci pomogę.
Go to the top of the page
+Quote Post
rze-X-nik
post 25.05.2004, 08:30:47
Post #11





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 20.03.2004
Skąd: Szczebrzeszyn

Ostrzeżenie: (10%)
X----


Propozycja: ustal odpowiedni timelimit i ignoreuserabort na 1 i sleepem manipuluj.


--------------------
while(!$wakacje){ czekaj();
}
if($wakacje){ yuppie();
} exit;
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 10:15