Als online.id overeenkomt met leden.id kan dat een verklaring zijn waarom online.id niet auto-increment is; dat zou dan zelfs ongewenst zijn. Je zou je dan wel af kunnen vragen of je die tabel dan niet beter kunt mergen met de leden-tabel.
Ja klopt, die l.userid was een foutje. En de noodzaak voor twee verschillende tabellen ontgaat me hier ook enigszins ;-)
Ja klopt, die l.userid was een foutje. En de noodzaak voor twee verschillende tabellen ontgaat me hier ook enigszins ;-)
nouw die zijn wel nodig(volgens mij), want de gasten worden ook geregistreerd in de online tabel, maar jan, hoe kan ik jouw voorbeeld verwerken, heb al iets gepost hierboven..
is het misschien niet eenvoudiger om in je leden-tabel uit te breiden met een veldje 'online' of 'actief' int(1) of set (als boolean)?
Int -> Integer (n) --> Een getal met n als maximaal aantal tekens,
Bool -> Boolean --> is een (Y/N). Een boolean bestaat als type niet in MySQL, dan kan je een Set gebruiken met 1 en 0 en 0 als default.
Het lijkt me nog eenvoudiger om je leden tabel uit te breiden met een kolom waarin je opslaat wanneer een lid voor het laatst actief was. Op die manier kun je bepalen of een lid in de laatste 5 minuten bijvoorbeeld nog actief en dus online was.
Het nadeel namelijk van het neerzetten of een gebruiker online is of niet, is het bepalen van het feit of een gebruiker online is of niet. Gebruiker zullen namelijk 9 van de 10 keer niet uitloggen alsze je website verlaten, dus hoe weet jij dan welke gebruiker nog online is en welke niet...
Jim, ik dacht precies hetzelfde, was al bezig ;)
waar ik eerst keek of ze al online waren, en dit update, zet ik het nu ook in de leden tabel!
alleen moet ik nu nog iets maken, dat als je langer dan 10 minuten bijv niet actief bent, dit weer op 0 wordt gezet
Aanvulling: let er op dat je dus niet alleen je tabel update wanneer men inlogt. Elke keer als een user een pagina opvraagt moet je tabel geupdate worden!
precies:P ik had jullie reacties al gecombineerd:P tis idd nogal onzin om aan te geven of iemand online of niet is, als je de laatst actieve tijd toch opslaat:P nu elke keer als een gebruiker een pagina opent, gebeurd er dit:
$sql = "UPDATE leden SET online=1, lastactive=NOW() WHERE id=".$_SESSION['je_id']."'";
$sql = "UPDATE leden SET online=0 WHERE NOW()-lastactive > 600";
en niet te vergeten, op mijn ledenlijst pagina:
if(!empty($row['online']))
{
$image = "images/design/online.gif";
}
else
{
$image = "images/design/offline.gif";
}