wat doe ik verkeerd?
// Number of users logged in and guests
$def5 = 0;
$def6 = 0;
$prev_user_id = 0;
$abc = array();
$prev_user_ip = $prev_session_ip = '';
$query = "SELECT * FROM phpbb_sessions
WHERE session_time >= ".( time() - 300 );
$abc = mysql_fetch_array($query);
$numrows = mysql_num_rows($abc);
while( $numrows > 0 )
{
// Skip multiple sessions for users
if ( $abc['session_user_id'] = $prev_user_id || $row['session_user_id'] = -1 )
{
$def5 = $def5;
}
else
{
$def5++;
}
// Skip multiple sessions for guests
if ( $abc['session_user_id'] = -1 || $abc['session_logged_in'] != 1)
{
if ( $abc['session_ip'] = $prev_user_ip )
{
$def6 = $def6;
}
else
{
$def6++;
}
$prev_user_id = $abc['session_ip'];
}
$numrows = $numrows-1;
}//end while
De uitkomst van $def5 en $def6 blijven allebei uitkomen op 0 terwijl er wel degelijk users online zijn en gasten aanwezig op mijn phpbb forum.
Waarom gaat dit niet zoals ik het wil?
$def5 moet het aantal online gebruikers weergeven en $def6 het aantal gasten.
Wie weet raad?
Code (php)
Het if-deel heeft totaal geen effect, dus is het logischer om zo te doen:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
if ( $abc['session_user_id'] != $prev_user_id && $row['session_user_id']! = -1 )
{
$def5++;
}
?>
if ( $abc['session_user_id'] != $prev_user_id && $row['session_user_id']! = -1 )
{
$def5++;
}
?>
Let er wel op dat je binnen if () statements een dubbele = moet gebruiken "==", anders ken je een waarde toe, en heb je altijd 'true' als resultaat, wat in jouw geval betekend dat je op 0 blijft staan.
Gewijzigd op 29/01/2006 21:55:00 door EdwinG
dank je wel voor de zeer snelle reactie, ik ga het proberen op deze manier.
Gewijzigd op 30/01/2006 08:03:00 door Willem vp
== is gelijk aan
!= is niet gelijk aan
> is groter dan
< is kleiner dan
>= is groter dan of gelijk aan
<= is kleiner dan of gelijk aan
Dank je willem en lissy, die tekens kende ik al wel, maar was er niet op verdacht dat bij vergelijkingen == gebruikt moet worden.