Checken of hij in de database zit.
Ik heb een website die aan een game is gekoppelt.
Als je ingame bent geweest word er wat in de database gezet met je ingame naam, en of je online bent (0 = offline, 1 = online).
En op men website heb ik een berichtenbalk, en nou wil ik dus de status van de speler met een kleurtje laten weergeven.
Maar soms posten mensen wat in de berichten balk als ze nog niet ingame zijn geweest, dus als er nog niks in de database staan met hun naam en hun status.
En dan gaat het script buggen.
Dus is er een mogelijk heid om te checken of het wel in de database zit?
Ik heb al wat geprobeerd maar dat werkte niet echt.
Het ging om deze kleuren:
Rood(red) = offline
Groen(Green) = Online
Orangje(Orange) = Nog niet ingame geweest.
En ik probeerde het met dit script:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// data ophalen via querys
$berichten = mysql_query("SELECT * FROM berichtenbalk ORDER BY id DESC LIMIT 10");
while($secondary = mysql_fetch_object($berichten))
{
$checkonline = mysql_query('SELECT * FROM users_online WHERE name = '.$secondary->minecraftnaam.' LIMIT 1');
$checkonline_fetch = mysql_fetch_array($checkonline);
$online = '';
if($checkonline_fetch['online']==0)
{$online = 'red';}
elseif($checkonline_fetch['online'] >=1)
{$online = 'green';}
if($online == ''){
$online = 'orange';
}
echo'<a href="toevoegen.php"><img src="../images/toevoegen.png"/></a> ['.$secondary->naam.' <i>(<font color='.$online.'>'.$secondary->minecraftnaam.'</font>)</i>]: <b>'.ubb_code($secondary->bericht).'</b> - ';
}
?>
// data ophalen via querys
$berichten = mysql_query("SELECT * FROM berichtenbalk ORDER BY id DESC LIMIT 10");
while($secondary = mysql_fetch_object($berichten))
{
$checkonline = mysql_query('SELECT * FROM users_online WHERE name = '.$secondary->minecraftnaam.' LIMIT 1');
$checkonline_fetch = mysql_fetch_array($checkonline);
$online = '';
if($checkonline_fetch['online']==0)
{$online = 'red';}
elseif($checkonline_fetch['online'] >=1)
{$online = 'green';}
if($online == ''){
$online = 'orange';
}
echo'<a href="toevoegen.php"><img src="../images/toevoegen.png"/></a> ['.$secondary->naam.' <i>(<font color='.$online.'>'.$secondary->minecraftnaam.'</font>)</i>]: <b>'.ubb_code($secondary->bericht).'</b> - ';
}
?>
Alvast bedankt :D
Tips ofzo altijd welkom, ben nog niet echt goed in scripten etc :s.
Gebruik mysql_num_rows
Nee, want als er niks in de database zit dan geeft hij een error dat er niks inzit.
Met mysql_num_rows kun je het aantal rijen in je database zien... Dus als je daar een if statement van maakt als er meer dan 1 rij is dat die dan het laat zien en als die 0 returned dat die een melding geeft dat er geen gebruikers zijn ofzo.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$berichten_query = mysql_query('SELECT * FROM berichtenbalk ORDER BY id DESC LIMIT 10');
while ($berichten_row = mysql_fetch_array($berichten_query)){
$checkonline_query = mysql_query('SELECT * FROM users_online WHERE name = '.$berichten_row['minecraftnaam'].' LIMIT 1');
if(mysql_num_rows($checkonline_query) == 0){
$online = 'orange';
}else{
$checkonline_row = mysql_fetch_array($checkonline_query);
if($checkonline_row['online'] == '1'){
$online = 'green';
}else{
$online = 'red';
}
}
echo'<a href="toevoegen.php"><img src="../images/toevoegen.png"/></a> ['.$berichten_row['naam'].' <i>(<font color='.$online.'>'.$berichten_row['minecraftnaam'].'</font>)</i>]: <b>'.ubb_code($berichten_row['bericht']).'</b> - ';
}
?>
$berichten_query = mysql_query('SELECT * FROM berichtenbalk ORDER BY id DESC LIMIT 10');
while ($berichten_row = mysql_fetch_array($berichten_query)){
$checkonline_query = mysql_query('SELECT * FROM users_online WHERE name = '.$berichten_row['minecraftnaam'].' LIMIT 1');
if(mysql_num_rows($checkonline_query) == 0){
$online = 'orange';
}else{
$checkonline_row = mysql_fetch_array($checkonline_query);
if($checkonline_row['online'] == '1'){
$online = 'green';
}else{
$online = 'red';
}
}
echo'<a href="toevoegen.php"><img src="../images/toevoegen.png"/></a> ['.$berichten_row['naam'].' <i>(<font color='.$online.'>'.$berichten_row['minecraftnaam'].'</font>)</i>]: <b>'.ubb_code($berichten_row['bericht']).'</b> - ';
}
?>
dan komt er deze error:
<b>Warning</b>: mysql_num_rows() expects parameter 1 to be resource, boolean given in
Gewijzigd op 25/05/2011 21:05:04 door Wouter Lolz
Foutafhandeling ontbreekt.
En hoe maak ik dat :(?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$berichten_query = mysql_query('SELECT * FROM berichtenbalk ORDER BY id DESC LIMIT 10');
while ($berichten_row = mysql_fetch_array($berichten_query)){
if (($checkonline_query = mysql_query('SELECT * FROM users_online WHERE name = '.$berichten_row['minecraftnaam'].' LIMIT 1')) === false)
{
$online = 'orange';
}
else
{
$checkonline_row = mysql_fetch_array($checkonline_query);
if($checkonline_row['online'] == '1'){
$online = 'green';
}else{
$online = 'red';
}
}
echo'<a href="toevoegen.php"><img src="../images/toevoegen.png"/></a> ['.$berichten_row['naam'].' <i>(<font color='.$online.'>'.$berichten_row['minecraftnaam'].'</font>)</i>]: <b>'.ubb_code($berichten_row['bericht']).'</b> - ';
}
?>
$berichten_query = mysql_query('SELECT * FROM berichtenbalk ORDER BY id DESC LIMIT 10');
while ($berichten_row = mysql_fetch_array($berichten_query)){
if (($checkonline_query = mysql_query('SELECT * FROM users_online WHERE name = '.$berichten_row['minecraftnaam'].' LIMIT 1')) === false)
{
$online = 'orange';
}
else
{
$checkonline_row = mysql_fetch_array($checkonline_query);
if($checkonline_row['online'] == '1'){
$online = 'green';
}else{
$online = 'red';
}
}
echo'<a href="toevoegen.php"><img src="../images/toevoegen.png"/></a> ['.$berichten_row['naam'].' <i>(<font color='.$online.'>'.$berichten_row['minecraftnaam'].'</font>)</i>]: <b>'.ubb_code($berichten_row['bericht']).'</b> - ';
}
?>
Aleen nu geef die altijd orange aan?
- SanThe - op 25/05/2011 21:21:33:
Foutafhandeling ontbreekt.
Bedankt.