SQL ---> Count

Installatie lukt niet? Plotseling een foutmelding. Of weet je niet hoe iets werkt. Problemen met phpBB2 kun je in dit archief opzoeken.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

SQL ---> Count

Bericht door LazyTiger » 29 mar 2004, 14:26

ik ben weer eens wat aan het fabriceren in phpbb..

ik heb dit stukje code:

Code: Selecteer alles

$sql = "SELECT count(*) AS total_posters 
			 FROM " . USERS_TABLE . "
			 WHERE user_posts = '0'"; 
			 
   if ( !($result = $db->sql_query($sql)) ) 
   { 
      message_die(GENERAL_ERROR, 'Error getting posts', '', __LINE__, __FILE__, $sql); 
   } 
	 if ( $total_posters = $db->sql_fetchrow($result) ) 
   {
	 $total_posters = $total_posters['total_posters'];
	 }
 $sql = "SELECT count(*) AS total_hidden 
			 FROM " . USERS_TABLE . "
			 WHERE user_allow_viewonline = '0'"; 
			 
   if ( !($result = $db->sql_query($sql)) ) 
   { 
      message_die(GENERAL_ERROR, 'Error getting hidden users', '', __LINE__, __FILE__, $sql); 
   } 
	 if ( $total_hidden = $db->sql_fetchrow($result) ) 
   {
	 $total_hidden = $total_hidden['total_hidden'];
	 }

Code: Selecteer alles

'ZERO_POSTS' => $total_posters,
	'HIDDEN' => $total_hidden,
ik vroeg me af of het ook korter kan.
dus dat ik die 2 keer dat hij telt gewoon in 1 keer kan ipv zo een bult code.
ik moet dit namelijk nog een paar keer meer doen.
is de code "inkortbaar"?

Gebruikersavatar
WebSiteNet
Berichten: 6524
Lid geworden op: 20 okt 2003, 16:56
Locatie: Wieringerwerf
Contacteer:

Bericht door WebSiteNet » 29 mar 2004, 16:40

Probeer eens zo. Dat is met maar 1 query.
Het is gewoon schoner gecoded.

Code: Selecteer alles

$sql = "SELECT * FROM " . USERS_TABLE; 
        
if ( !($result = $db->sql_query($sql)) ) 
{ 
   message_die(GENERAL_ERROR, 'Error getting posts', '', __LINE__, __FILE__, $sql); 
}
 
$rows = array();
$row = $db->sql_fetchrow($result);
while($rows[] = $db->sql_fetchrow($result)); 

$total_posters = 0;
$total_hidden = 0;

while(list( ,$v) = each($rows))
{ 
    $total_hidden  += ( !$v['user_allow_viewonline'] ) ? 1 : 0;
	$total_posters += ( !$v['user_posts'] )            ? 1 : 0;  
}

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 29 mar 2004, 18:00

ik zal het binnenkort eens controleren.
ik heb 5 keer of zo dat hij de counting moet doen.
(http://www.muziekforumonline.nl/FFO/statistics.php)

WebSiteNet schreef: Het is gewoon schoner gecoded.
daar gaat het mij dus ook om. :lol:

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 29 mar 2004, 18:38

nog ff een vraagje ivm dezelfde pagina.

dit stukje code heb ik gevonden.
$sql = 'SELECT user_id, username, user_posts
FROM ' . USERS_TABLE . '
WHERE (user_id <> ' . ANONYMOUS . ' ) AND (user_posts > 0)
ORDER BY user_posts DESC
LIMIT ' . $return_limit;
kan ik $return_limit ook gewoon door 5 vervangen?
en hoe moet dat er precies uitzien dan?
LIMIT ' . "5";
zoiets?

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 29 mar 2004, 19:06

Code: Selecteer alles

LIMIT 5';

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 29 mar 2004, 21:40

dankje...

Gesloten