herry Posted May 7, 2005 Report Share Posted May 7, 2005 taatad ideja taada - njemot paliigaa sho lapu, manuaali un savas smadzenes meegjinaaju uzcept koda gabalinju, kursh skaitiitu, cik ljautinju peeta lapu dotajaa briidii. Ideja bija taada, ka nochekojam lietotaaja IP, ja taadu pamana DB izmet ierakstu aaraa un iesviezh vietaa ierakstu, ar IP, jauno laiku un veel paaris datiem. Koda fragments, kas to dara $vaicajums = "DELETE FROM online WHERE ip LIKE '".$_SERVER['REMOTE_ADDR']."'"; $rezultats = mysql_query($vaicajums); $vaicajums = "INSERT INTO online SET id='".$id."', vards='".$vards."', time='".$tagad."', ip='".$_SERVER['REMOTE_ADDR']."'"; $rezultats = mysql_query($vaicajums); Lielaakoties straadaa OK, bet reizeem man nesaprotamu apstaaklju deelj dazhas IP adreses netiek atpaziitas un liidz ar to DB tiek regjistreetas vaitraakkaartiigi. Kur vareetu buut probleema? PS garaaks koda fragments sheit http://paste.php.lv/1933 Link to comment Share on other sites More sharing options...
bubu Posted May 7, 2005 Report Share Posted May 7, 2005 (edited) MySQL ir lielisks SQL vaicājums REPLACE, kas apvienu UPDATE ar INSERT: $vaicajums = "REPLACE online SET id='$id', vards='$vards', time='$tagad', ip='".$_SERVER['REMOTE_ADDR']."'"; $rezultats = mysql_query($vaicajums); Tev tikai jābūt tam ip kolonnai kā primārai vai unikālai atslēgai uzstādītai. Edited May 7, 2005 by bubu Link to comment Share on other sites More sharing options...
Lynx Posted May 7, 2005 Report Share Posted May 7, 2005 Nav ērtāk izmantot šādu variantu? Šeit mēs atlasam cik lietotāji un viesi ir pakustējušies pēdējās 15 minūtēs. list($lietotaji) = mysqli_fetch_row(query('SELECT COUNT(*) FROM apmekletaji WHERE NOW() < pedejadarbiba + INTERVAL 15 MINUTE ')); list($registreti) = mysqli_fetch_row(query('SELECT COUNT(*) FROM lietotaji WHERE NOW() < pedejadarbiba + INTERVAL 15 MINUTE ')); $viesi = $lietotaji - $registreti; $gal = $lietotaji ==1 ? 's' : 'i'; echo $lietotaji.' lietotāj'.$gal.' aktīv'.$gal.' pēdējās 15 minūtēs no tiem '.$viesi.' viesi<br/>'; Šo te darbību mēs izpildam uz katra apmeklētāja kustību: list($numrows) = mysqli_fetch_row(query("SELECT COUNT(*) FROM apmekletaji WHERE ip='$ip' AND NOW() < pedejadarbiba + INTERVAL 15 MINUTE ORDER BY id DESC LIMIT 1")); if ($numrows == 0) { query("INSERT INTO apmekletaji(pedejadarbiba, ip) VALUES (NOW(), '$ip')"); } else { query("UPDATE apmekletaji SET pedejadarbiba= NOW() WHERE ip='$ip' ORDER BY id DESC LIMIT 1"); } Ielogojušamies lietotājiem vienkārši updeitojam pēdējās kustības laiku ar katru kustību. Link to comment Share on other sites More sharing options...
herry Posted May 7, 2005 Author Report Share Posted May 7, 2005 Paldies par padomiem! Ar indeksaaciju probleema tika noveersta. Bet es joprojaam nesaprotu, kaadeelj netika izdzeesti tie ieraksti. Kaadeelj reizeem nenostraadaaja tas DELETE. Vieniigais, kaada ideja ir, ka tika izdariiti vairaaki pieprasiijumi praktiski vienlaiciigi no vienas IP. Link to comment Share on other sites More sharing options...
Recommended Posts