Pagina 1 van 1

SQL ---> Count

Geplaatst: 29 mar 2004, 14:26
door LazyTiger
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"?

Geplaatst: 29 mar 2004, 16:40
door WebSiteNet
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;  
}

Geplaatst: 29 mar 2004, 18:00
door LazyTiger
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:

Geplaatst: 29 mar 2004, 18:38
door LazyTiger
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?

Geplaatst: 29 mar 2004, 19:06
door mosymuis

Code: Selecteer alles

LIMIT 5';

Geplaatst: 29 mar 2004, 21:40
door LazyTiger
dankje...