query binnen een query?
de tabel heeft deze rijen:
userid, ip, lastactive
userid: id van de bezoeker
ip: ip van de bezoeker
lastactive: tijd waarop deze het laatst actief was
als de bezoeker een lid is, heeft deze zijn eigen id, anders is het id 0
nu wil ik kunnen weergeven wie online is, aan de hand van een naam, dus als het id bijv 10 is, wil ik bijv Piet laten zijn (de naam van de gebruiker met id 10) als het id 0 is wil ik laten zien gast
het probleem zit hem er nu in dat ik de namen van de leden er niet bij krijg, omdat ik dan een query in een query heb zeg maar
hoe kan ik dit oplossen? (dit kan niet door alles in 1 tabel te doen, ivm de gasten)
dit is mijn code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
function get_username($userid)
{
global $mysqli;
$query = "SELECT username FROM members WHERE id = '".$userid."' LIMIT 1";
if(!$result = $mysqli->query($query))
{
report_error("fout in de query : ".$query."<br /><br />Deze fout is : ".$mysqli->error."<br /><br />Op pagina: ".$_SERVER['PHP_SELF']);
}
else
{
if($result->num_rows == 1)
{
$row = $result->fetch_assoc();
return $row['username'];
}
}
}
$query = "SELECT * FROM online";
if(!$result = $mysqli->query($query))
{
report_error("fout in de query : ".$query."<br /><br />Deze fout is : ".$mysqli->error."<br /><br />Op pagina: ".$_SERVER['PHP_SELF']);
}
else
{
$guests = 0;
if($result->num_rows != 0)
{
while($row = $result->fetch_assoc())
{
if($row['userid'] != 0)
{
echo get_username($row['userid']); // hier gaat het dus fout!
}
else
{
$guests++;
}
}
echo $guests;
}
}
?>
function get_username($userid)
{
global $mysqli;
$query = "SELECT username FROM members WHERE id = '".$userid."' LIMIT 1";
if(!$result = $mysqli->query($query))
{
report_error("fout in de query : ".$query."<br /><br />Deze fout is : ".$mysqli->error."<br /><br />Op pagina: ".$_SERVER['PHP_SELF']);
}
else
{
if($result->num_rows == 1)
{
$row = $result->fetch_assoc();
return $row['username'];
}
}
}
$query = "SELECT * FROM online";
if(!$result = $mysqli->query($query))
{
report_error("fout in de query : ".$query."<br /><br />Deze fout is : ".$mysqli->error."<br /><br />Op pagina: ".$_SERVER['PHP_SELF']);
}
else
{
$guests = 0;
if($result->num_rows != 0)
{
while($row = $result->fetch_assoc())
{
if($row['userid'] != 0)
{
echo get_username($row['userid']); // hier gaat het dus fout!
}
else
{
$guests++;
}
}
echo $guests;
}
}
?>
bij gewone mysql functies lukt het me wel
@Ron, bewerk je bericht ipv te bumpen :)
als het model goed is kan je de tabellen joinen
en mysql wijkt niet af van mysqli dus snap ik je probleem ook niet
Gewijzigd op 01/01/1970 01:00:00 door Noppes
joinen heb ik ook geprobeerd, dit lukt me echter ook niet, heb dit ook nog nooit gedaan
Zou je niet eens googlen dan?
mysqli->query / mysqli_query
enkel en alleen dat het eerst object georienteerd is en de 2de niet ?!
"bij mysqli werkt alles adhv de variabele $mysqli, bij mysql functies kun je "
telkens een nieuwe variabele aanmaken, dit lukt me bij mysqli niet"
Zullen we dan maar beoordelen als niet geschreven.
- id
- name
online
- user_id
@rest, bedankt voor suggesties, ik ben nog nieuw op het object gebied, en snap er nog niet zoveel van, maar begin het al steeds wat beter te leren