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

problemi pagina personalizzata

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.
BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

problemi pagina personalizzata

Messaggio da BMercer » 01/03/2010, 20:08

In una pagina personalizzata pinco.php ho il seguente codice aggiunto dopo quello presente nella guida qui che spiega come creare pagine personalizzate:

Codice: Seleziona tutto

    function clan_menu() {
    
        global $db;
        
            // impostiamo la query che ricava le infomazioni
            $sql = "SELECT * FROM phpbb_groups
                WHERE group_colour = '0099ff'    
                ORDER BY group_name ASC";
            $result = $db->sql_query($sql);

            // ora impostiamo un ciclo while per mostrare tutti i risultati ...
            while($table = $db->sql_freeresult($result)) {
            echo '<option value="'. $table['group_name'] .'">'. $table['group_name'] .'</option>';
            }

    }
 
Poi associata al template così:

Codice: Seleziona tutto

$template->assign_vars(array(
    'CLAN_MENU'    => clan_menu()
));
 
e richiamata nel template così:
{CLAN_MENU}

Codice: Seleziona tutto

                                <form action="#" method="post">
                <select name="add_name" >
                <optgroup label="Clans">
                {CLAN_MENU}
                </optgroup>
                </select><br/>
                </form>
 
Ma non mi viene fuori nulla (menu a tendina vuoto).
Cosa ho sbagliato?

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: problemi pagina personalizzata

Messaggio da Carlo » 01/03/2010, 20:34

Problema:

Codice: Seleziona tutto

            while($table = $db->sql_freeresult($result)) {
La funzione da utilizzare, non è $db->sql_freeresult, ma bensì $db->sql_fetchrow.

Alcuni suggerimenti:
- Nella query, sostituire phpbb_groups con la costante GROUPS_TABLE, in questo modo:
  • Codice: Seleziona tutto

                $sql = "SELECT * FROM " . GROUPS_TABLE . "
                    WHERE group_colour = '0099ff'    
                    ORDER BY group_name ASC";
- Dopo il ciclo while, possiamo utilizzare la funzione $db->sql_freeresult().
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: problemi pagina personalizzata

Messaggio da BMercer » 02/03/2010, 6:31

Ho sostituito a sql_freeresult "sql_fetchrow", ma continua a non mostrarmi i risultati... :(

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: problemi pagina personalizzata

Messaggio da Carlo » 02/03/2010, 7:10

Hai provato a eseguire la query direttamente sul database?
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

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: problemi pagina personalizzata

Messaggio da Micogian » 02/03/2010, 7:27

Io proverei a escludere il template e controllare il risultato che dà il file php.
In questo modo sai se il problema è legato al php o al template.

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: problemi pagina personalizzata

Messaggio da BMercer » 02/03/2010, 14:58

In locale avevo fatto la prova con un fiel esterno a phpbb con il seguente codice e mi aveva funzionato alla grande

Codice: Seleziona tutto

    function clan_menu() {
    
        include('common.php');
        
            // impostiamo la query che ricava le infomazioni
            $sql = "SELECT * FROM phpbb_groups
            WHERE group_colour = '0099ff'    
            ORDER BY group_name ASC";
            $result = mysql_query($sql, $connessione) or die('<div id="error">Errore nell eseguzione della query</div>');

            // ora impostiamo un ciclo while per mostrare tutti i risultati ...
            while($table = mysql_fetch_assoc($result)) {
            echo '<option value="'. $table['group_name'] .'">'. $table['group_name'] .'</option>';
            }
    }
 
Il file common contiene i dati per la connessione al database.

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: problemi pagina personalizzata

Messaggio da Carlo » 02/03/2010, 15:06

Prova ad abilitare il debug in phpBB, così puoi notare eventuali errori.

Per farlo, nel file config.php, togli i due slash dalla riga (o qualcosa del genere):

Codice: Seleziona tutto

// @define('DEBUG', true);
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

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: problemi pagina personalizzata

Messaggio da Micogian » 02/03/2010, 15:36

Forse non è un "template -->assign_vars(array(..." che devi usare ma un semplice "template -->assign_var('CLAN_MENU'....

Vedi http://wiki.phpbb.com/Template.assign_var

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: problemi pagina personalizzata

Messaggio da Carlo » 02/03/2010, 15:39

@bingo: E' la stessa cosa, ma con il metodo assign_vars() è possibile assegnare al template più variabili in una sola volta.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

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: problemi pagina personalizzata

Messaggio da Micogian » 02/03/2010, 17:12

Infatti la mia era solo un'ipotesi, come quella di assegnare un nome all'array

Codice: Seleziona tutto

$template->assign_vars('clanmenu', array(     
    'CLAN_MENU'    => clan_menu()
   ));
e poi richiamarlo nel template con
{clanmenu.CLAN_MENU}, ma anche questo può essere la stessa cosa.

Resto dell'idea che di fronte a un problema del genere avrei tolto il collegamento al template e avrei controllato il risultato del file php.

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 92 ospiti