Online leden weergeven
Pagina: « vorige 1 2 3 volgende »
Jordi kroon op 31/01/2011 08:46:29:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$select = 'SELECT id FROM user_table WHERE online = 1 ';
$query = mysql_query($select);
$rows = mysql_num_rows($query);
Echo 'online leden:'.$rows;
?>
$select = 'SELECT id FROM user_table WHERE online = 1 ';
$query = mysql_query($select);
$rows = mysql_num_rows($query);
Echo 'online leden:'.$rows;
?>
Stel ik zou deze wel willen gebruiken,
wat moet ik hier aan veranderen dan want ik heb geen table ofzoiets in de database met online
Dan maak je die table toch aan?
dus als ik het goed begrijp moet ik de table online maken waar ik alle leden heb staan (dus bij mij users)
tabel gebruikers_attributen: id - gebruiker_id - attr_naam - attr_waarde
Klaar :-)
Gewijzigd op 31/01/2011 12:56:53 door Chris -
kan ik niet gewoon de table online aanmaken in mn bestaande table users?
Wat is nu precies het verschil wanneer je alles in 1 tabel zet in plaats van in 2?
ik heb dit in mn database users...
--
-- Tabelstructuur voor tabel `users`
--
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` varchar(32) NOT NULL DEFAULT '',
`pass` varchar(32) NOT NULL DEFAULT '',
`level` varchar(4) NOT NULL DEFAULT '1',
`email` varchar(40) NOT NULL,
`emailactief` varchar(3) NOT NULL DEFAULT 'nee',
`mail` varchar(3) NOT NULL DEFAULT 'ja',
`vip` varchar(3) NOT NULL DEFAULT 'nee',
`viprest` date NOT NULL,
`kliks` decimal(10,1) NOT NULL DEFAULT '0.0',
`fans` decimal(10,1) NOT NULL DEFAULT '0.0',
`ip` varchar(15) NOT NULL DEFAULT '',
`referral` varchar(32) NOT NULL DEFAULT '',
`betaald` int(10) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `kliks` (`kliks`),
KEY `email` (`email`),
KEY `user` (`user`),
KEY `vip` (`vip`),
KEY `referral` (`referral`),
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` varchar(32) NOT NULL DEFAULT '',
`pass` varchar(32) NOT NULL DEFAULT '',
`level` varchar(4) NOT NULL DEFAULT '1',
`email` varchar(40) NOT NULL,
`emailactief` varchar(3) NOT NULL DEFAULT 'nee',
`mail` varchar(3) NOT NULL DEFAULT 'ja',
`vip` varchar(3) NOT NULL DEFAULT 'nee',
`viprest` date NOT NULL,
`kliks` decimal(10,1) NOT NULL DEFAULT '0.0',
`fans` decimal(10,1) NOT NULL DEFAULT '0.0',
`ip` varchar(15) NOT NULL DEFAULT '',
`referral` varchar(32) NOT NULL DEFAULT '',
`betaald` int(10) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `kliks` (`kliks`),
KEY `email` (`email`),
KEY `user` (`user`),
KEY `vip` (`vip`),
KEY `referral` (`referral`),
Online_user
Met daarin:
- UserID
- Page (waar diegene op de site aanwezig is...)
- Datum/tijd
nu moet ik dus het stukje code aanpassen in dit toch?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?
$select = 'SELECT userid FROM online_user WHERE pagina = 1 ';
$query = mysql_query($select);
$rows = mysql_num_rows($query);
Echo 'online leden:'.$rows;
?>
$select = 'SELECT userid FROM online_user WHERE pagina = 1 ';
$query = mysql_query($select);
$rows = mysql_num_rows($query);
Echo 'online leden:'.$rows;
?>
klopt niet denk ik maar hoe meot ik die zetten dan?
Gewijzigd op 31/01/2011 13:32:53 door Robbert de Brock
Waarom WHERE pagina = 1?
Toevoeging op 31/01/2011 13:41:46:
of moet ik die gewoon op online laten?
en hoe zet die er nou dingen in dan moet ik nog een INSERT maken ofzoiets?
Quote:
Quote
ja weet ik niet hahha nee weet niet hoe die wel moet staan dan
ja weet ik niet hahha nee weet niet hoe die wel moet staan dan
Als je niet weet wat je doet, is het niet handiger dan om eerst wat kennis op te doen?
En ja, je moet een INSERT of een UPDATE doen, ligt eraan of de lid al 'actief' is en in de lijst staat, of juist niet ;-).
Gewijzigd op 31/01/2011 13:52:34 door - Ariën -
Ozzie PHP op 31/01/2011 13:11:36:
@Chris: attr_naam - attr_waarde kan zijn een tel.nr. of mailadres ofzo?
Wat is nu precies het verschil wanneer je alles in 1 tabel zet in plaats van in 2?
Wat is nu precies het verschil wanneer je alles in 1 tabel zet in plaats van in 2?
Omdat je nu bij attr_naam kan zetten "telefoon", en in attr_waarde "06123456789". En je kan er nog een toevoegen genaamd "adres", en nog een "vip", of nog een "speciaal". Als je alles in 1 tabel zet, zit je gelimiteerd aan de velden die je op geeft in die tabel. Door gebruik te maken van deze tabel, kun je ongelimiteerd velden toevoegen :-) Dat is normaliseren..
Je bedoelt dat die 2e tabel echt alleen deze velden heeft:
id - gebruiker_id - attr_naam - attr_waarde
...en als je dan iemands tel.nr. en mailadres wil opslaan dan worden dat dus 2 afzonderlijke entries in tabel 2. Correct?
Maar is dat niet onhandig? Want dan weet op voorhand nooit welke atributen een user heeft toch? En misschien heb je dan in je database wel 20 rijen staan om 1 user op te slaan. Is dat echt handiger dan alle gegevens in 1 rij te zetten?
@Ozzie: Hou je gewoon aan de 3e normaalvorm. Je komt dan nooit in de performance problemen met je database en de query's zijn da per definitie korter.
Gewijzigd op 31/01/2011 14:47:34 door John D
@Chris: dank voor je reactie. Kun je me misschien (kort) uitleggen wat de 3e normaalvorm inhoudt? (ik heb geen IT opleiding gevolgd...)
in de inlog pagina bij het stukje code als je succesvol bent ingelogd en dat ie je doorlinkt naar de ledenpagina daar heb ik dit ingeplaatst:
Code (php)
1
mysql_query("UPDATE users SET online = online + 1 WHERE user = '".mysql_real_escape_string($_POST['user'])."'");
dus dan staat online op 1
en als ik bij uitloggen.php - 1 doe dan taat ie weer op 0 en is ie dus offline
weet neit of dit werkt hoor maar zal proberen :P
Toevoeging op 31/01/2011 14:59:47:
oh nee dat gaat niet werken... want dan sta je alleen offline als je op uitloggen klikt, ik weet het niet meer
@Ozzie: Wat Chris doet is geen 3e normaalvorm. In de 3e normaalvorm kan je attributen die een gebruiker maar 1x bezit in dezelfde tabel zetten en Chris zet vrijwel alles in de user_attributen tabel en dat neigt meer naar de 4e normaalvorm en is niet altijd even handig bij query's, performance issues etc. De normaalvormen worden vrij goed uitgelegd op internet, google hier maar eens op. Meest gebruikelijk is de 3e normaalvorm.
Robbert de Brock op 31/01/2011 14:54:56:
Hbe al een idee als het gaat lukken..
in de inlog pagina bij het stukje code als je succesvol bent ingelogd en dat ie je doorlinkt naar de ledenpagina daar heb ik dit ingeplaatst:
dus dan staat online op 1
en als ik bij uitloggen.php - 1 doe dan taat ie weer op 0 en is ie dus offline
weet neit of dit werkt hoor maar zal proberen :P
in de inlog pagina bij het stukje code als je succesvol bent ingelogd en dat ie je doorlinkt naar de ledenpagina daar heb ik dit ingeplaatst:
Code (php)
1
mysql_query("UPDATE users SET online = online + 1 WHERE user = '".mysql_real_escape_string($_POST['user'])."'");
dus dan staat online op 1
en als ik bij uitloggen.php - 1 doe dan taat ie weer op 0 en is ie dus offline
weet neit of dit werkt hoor maar zal proberen :P
Lees je het topic niet ofzo?
Je hoeft niks bij inloggen te doen, je moet kijken of iemand actief is. Niet iedereen logt zich altijd uit op een site als hij die verlaat....
Gewijzigd op 31/01/2011 15:16:36 door - Ariën -