Hvis $time er sat et sekund før den har fundet $row1[loggetpaa], så er de jo ikke == hinanden - vel? Måske skulle den ha' lidt spillerum - hvis $time+-10sek. == $row1[loggetpaa] - så vil det måske virke bedre, eller what!?
Som mjl nævner skal der nok være en "grace period", men så får brugerne nok beskeden flere gange - For at undgå det, kunne du gemme hvem de lige har set logge på i en sessionvariabel. Det sidste har jeg ikke lavet, men jeg har lavet resten lidt om:
<?php
session_start(); include("db.php"); $grace_seconds = 1; $sql = " SELECT v.ven FROM venner AS v INNER JOIN brugere AS b ON v.ven = b.brugernavn WHERE b.loggetpaa > ( UNIX_TIMESTAMP() - " . $grace_seconds . ") "; $qh = mysql_query( $sql ) or die( "Fejl! " . mysql_error() ); while($row = mysql_fetch_assoc( $qh ) ) { // evt. vent med at skrive noget ud, og tilføj vennen til en sessionvariabel // og lad være med at skrive ham ud hvis brugeren har set beskeden før echo "Din ven $row[ven] er lige logget på"; }
Jeg havde nok selv lavet den omvendt, altså hvor den tjekkede det på den ven, der logger på. Dem, der så har denne user som ven og som er online, vil få sendt en besked med det samme - så slipper man for at den anden bruger skal tjekke de ting.
Men... det er jo så bare min måde, hvorpå at lave de ting :-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.