phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Contare numero di argomenti di un determinato forum

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
Avatar utente
slash
Utente
Utente
Messaggi: 67
Iscritto il: 30/08/2011, 19:40
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.3.10
Database: MySQL 5.5.13-enterprise-commercial-advan
Contatta:

Contare numero di argomenti di un determinato forum

Messaggio da slash » 24/03/2012, 17:22

Ciao ragazzi, spero che micogian o qualche altro guru del php mi dia una mano.

Quello che ho bisogno di fare è di contare il numero totale di argomenti, di determinati forum. poniamo ad esempio i forum con ID 1 2 e 3 per capirci.

e riportare il tutto in una pagina esterna.

Sapete aiutarmi? Grazie!
Immagine
Immagine

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Contare numero di argomenti di un determinato forum

Messaggio da Micogian » 24/03/2012, 18:19

Bisogna vedere se la pagina di cui parli è una Custom Page o se è una pagina php.
Per ottenere i dati del database bisogna avere una connessione, la Custom Page ce l'ha, altrimenti bisogna crearla in altro modo.

Avatar utente
slash
Utente
Utente
Messaggi: 67
Iscritto il: 30/08/2011, 19:40
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.3.10
Database: MySQL 5.5.13-enterprise-commercial-advan
Contatta:

Re: Contare numero di argomenti di un determinato forum

Messaggio da slash » 24/03/2012, 18:28

Ciao mico grazie per l interessamento. Si il tutto va fatto in una custom page

portal.php:

Codice: Seleziona tutto

<?php


define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();


page_header($config['sitename']);




$template->set_filenames(array(
    'body' => 'portal.html',
));

//avatar functions
$template->assign_vars(array(    
    'S_LOGIN_ACTION'    => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login'),
    'USER_AVATAR'       => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
    'USERNAME'          => get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour']),
)); 

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>
credo la connessione sia presente altrimenti non mi mostrerebbe l avatr e il nome utente colorato.

dico bene?
Immagine
Immagine

Avatar utente
Barrnet
Leader Moderatori
Leader Moderatori
Messaggi: 3124
Iscritto il: 04/07/2010, 23:31
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.3.10
Database: MySQL 5.1.61-community-log
Contatta:

Re: Contare numero di argomenti di un determinato forum

Messaggio da Barrnet » 24/03/2012, 18:41

Esatto.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Contare numero di argomenti di un determinato forum

Messaggio da Micogian » 24/03/2012, 18:53

Si, la connessione c'è.
Cosa ti serve? Il totale dei topics di alcuni Forum ma con valori separati o complessivi ?

E' un dato che si può ricavare dalla tabella forums che contiene già il numero degli argomenti oppure facendo un calcolo dei topics di un Forum.
Quest'ultimo si può fare così:

Codice: Seleziona tutto

// Conteggio del numero dei Topics del forum_id=5
$topics=mysql_query("SELECT COUNT(topic_id) AS totale FROM " . TOPICS_TABLE WHERE forum_id = '5') or die(mysql_error());
$row=mysql_fetch_assoc($topics);
$tot_topics =  $row['totale'];

Avatar utente
slash
Utente
Utente
Messaggi: 67
Iscritto il: 30/08/2011, 19:40
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.3.10
Database: MySQL 5.5.13-enterprise-commercial-advan
Contatta:

Re: Contare numero di argomenti di un determinato forum

Messaggio da slash » 24/03/2012, 21:10

in pratica, devo fare 5 div in cui in ognuno devo mettere il totale degli argomenti di un determinato forum.

quindi mi servono i valori separati del totale degli argomenti per ciascun forum.

come richiamo poi il tutto nell' html?

GRAZIE!
Immagine
Immagine

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Contare numero di argomenti di un determinato forum

Messaggio da Micogian » 24/03/2012, 22:52

Devi dirmi quali sono i forum_id che ti servono e quali dati vuoi visualizzare. Ti serve anche il nome del Forum ?

Avatar utente
slash
Utente
Utente
Messaggi: 67
Iscritto il: 30/08/2011, 19:40
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.3.10
Database: MySQL 5.5.13-enterprise-commercial-advan
Contatta:

Re: Contare numero di argomenti di un determinato forum

Messaggio da slash » 24/03/2012, 22:57

gli id sono:

5 9 16 46 82 tombola!!! :D

no no mi serve solo il numero totale di argomenti per ciascuno di questi forum.

Grazie!
Ultima modifica di slash il 24/03/2012, 23:01, modificato 1 volta in totale.
Immagine
Immagine

Avatar utente
Tiger
phpBB Expert
phpBB Expert
Messaggi: 1998
Iscritto il: 24/05/2011, 12:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.28
Database: MySQL(i) 5.5.35-cll
Località: Roma
Contatta:

Re: Contare numero di argomenti di un determinato forum

Messaggio da Tiger » 24/03/2012, 23:00

Scusate se mi metto in mezzo ma voglio imparare ,tanto serve per una causa comune questo topic:
Io micogian ho fatto una query del genere ma non va mi puoi dire dove ho sbagliato?
Grazie:

Codice: Seleziona tutto

$sql = "SELECT COUNT(topic_id) AS totale FROM " . TOPICS_TABLE WHERE forum_id = '5') or die(mysql_error());
$row=mysql_fetch_assoc($topics);
$tot_topics =  $row['totale'];
WHERE forum_id = '5') or die(mysql_error());
$row=mysql_fetch_assoc($topics);
$tot_topics =  $row['totale'];

$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
	{
     $template->assign_block_vars('lista_topics',array(
    'TOT_TOPICS'      => $row['totale'], 
	
	 
	 
	 
	 
<!-- BEGIN Topic_totali -->
{topic_totali_TOT_TOPICS}
<!-- END Topic_totali -->

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Contare numero di argomenti di un determinato forum

Messaggio da Micogian » 24/03/2012, 23:56

Tiger, ci sono alcuni errori nel codice:
TOPICS_TABLE va scritta tra i punti . e spezzando la stringa,
Se la variabile è $sql non puoi richiamare $topics,
Se la query elabora un solo dato (il totale del Forum 5) non serve il ciclo while.
Per lo stesso motivo non serve un assign_block_vars se il risultato è uno solo e non serve il BEGIN.

Codice: Seleziona tutto

$sql = "SELECT COUNT(topic_id) AS totale FROM " . TOPICS_TABLE . " WHERE forum_id = '5') or die(mysql_error());
$row=mysql_fetch_assoc($sql);
$tot_topics =  $row['totale'];

     $template->assign_var('TOT_TOPICS'', $row['totale']);
  
   
{TOT_TOPICS}
>
La query corretta si può fare nella tabella forums che contiene già il totale dei topics.
Ammesso che i Forums da controllare siano 1,2,3,4 questo è il modo che crea una lista in ordine di numero dei Topics:

Codice: Seleziona tutto

$sql = "SELECT forum_id, forum_name, forum_topics
    FROM " . FORUMS_TABLE . "
    WHERE forum_id IN(1,2,3,4)
    ORDER BY forum_topics DESC";
$result = $db->sql_query($sql);
    $x = 0;
    while ($row = $db->sql_fetchrow($result))
    {
	$forum_id[$x] 		= $row['forum_id'] ; 
	$forum_name[$x] 	= $row['forum_name'] ; 
	$forum_topics[$x] 	= $row['forum_topics'] ; 
	++$x;
	}
	for ($i=0; $i < $x; ++$i)
	{
	$template->assign_block_vars('tot_topics',array(
		'FORUM_ID'		=> $forum_id[$i],
		'FORUM_NAME'	=> $forum_name[$i],
		'FORUM_TOPICS'	=> $forum_topics[$i]
	));
	}
Nel template si usa il BEGIN perchè le variabili sono più di una

Codice: Seleziona tutto

<!-- BEGIN tot_topics -->
	<div>{tot_topics.FORUM_TOPICS} topics nel Forum {tot_topics.FORUM_ID} = {tot_topics.FORUM_NAME}</div>
<!-- END tot_topics -->

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 40 ospiti