Richiamare dati sql campo profilo personalizzati

Area dedicata al phpBB 3.2.X
Rispondi
Avatar utente
fabiomaticus
Utente
Utente
Messaggi: 199
Iscritto il: 03/12/2016, 12:55
Link del Forum: www.500forum.it
Località: Taranto
Contatta:

Richiamare dati sql campo profilo personalizzati

Messaggio da fabiomaticus »

Ho creato un campo profilo personalizzato in cui gli utenti scelgono da un menù a tendina il veicolo posseduto.
Ho creato una pagina personalizzata in cui appaiono tutti i veicoli elencati nel menù a tendina, con accanto il totale degli utenti che hanno selezionato quel relativo veicolo.
il file php è il seguente:

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);

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

page_header('elenco province');

	// Elenco Modelli Fiat 500
$sql = "SELECT field_id, option_id, lang_value
     FROM " . PROFILE_FIELDS_LANG_TABLE . "
	 WHERE field_id=21 and lang_id=1
     ORDER BY option_id";

$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
     {
     $template->assign_block_vars('lista_modelli',array(
     'ID_MODELLO'   => $row['option_id'],
     'NOME_MODELLO' => $row['lang_value']
	 ));
     }
	 
	// Conteggio totale utenti per modello di 500
$sql="SELECT pf_modello, 
COUNT(*) AS totale 
FROM " . PROFILE_FIELDS_DATA_TABLE . "
GROUP BY pf_modello";

$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$template->assign_block_vars('totale_modelli',array(
   'MODELLO' => $row['pf_modello'],
   'TOTALE'    => $row['totale']
));
}


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

        make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
        page_footer();
?>
Ovviamente cè un errore di calcolo: anzititto 11421 sono gli utenti con valore in quel campo null
Ed inoltre gli altri indicati nella lista non hanno scelto quel veicolo: infati se l'utente demo sceglie come campo "Fiat 500 Abarth" appariaà 1 alla voce ""Fiat Nuova 500 D"; questo perchè il conteggio degli utenti per modello non riesce effettuato quando è 0
Avatar utente
Micogian
Globalmod
Globalmod
Messaggi: 599
Iscritto il: 17/03/2016, 17:53
Link del Forum: https://www.actaplantarum.org

Re: Richiamare dati sql campo profilo personalizzati

Messaggio da Micogian »

Prova così:

Codice: Seleziona tutto

$sql="SELECT pf_modello,
COUNT(*) AS totale
FROM " . PROFILE_FIELDS_DATA_TABLE . "
WHERE pf_modello <> ''
GROUP BY pf_modello";
che vuol dire "estrai tutti i record che nel campo pf_modello non siano NULL"
Rispondi