Pagina 1 di 2

Collegare pagina personalizzata al database

Inviato: 20/05/2016, 22:14
da frank
Prendendo spunto da questo articolo ho creato varie pagine personali nel forum (vedi Articoli nella sez. Personal) http://wiki.phpbbitalia.net/Creare_una_ ... onalizzata

Io vorrei collegare le pagine al database nel quale poi ci creo una tabella. Come posso fare?

Re: Collegare pagina personalizzata al database

Inviato: 22/05/2016, 20:23
da brunino
Nella wiki c'è un articolo al riguardo.

Re: Collegare pagina personalizzata al database

Inviato: 22/05/2016, 20:33
da frank
Proprio adesso, sto tentando di applicare questo, ma mi da errore
https://wiki.phpbb.com/Dbal.sql_connect ... Connection

Se invece vado "alla vecchia" funziona, ma preferirei usare un include

Codice: Seleziona tutto

$link = mysql_connect('localhost', 'root', 'root');
if (!$link) {
	die ("Non riesco a connettermi:" . mysql_error());
}
$db_selected = mysql_select_db('benessereforum', $link);
if (!$db_selected) {
	die ("Errore nella selezione del database:" . mysql_error());
}

Re: Collegare pagina personalizzata al database

Inviato: 22/05/2016, 23:29
da frank
RISOLTO

Codice: Seleziona tutto

// Questo metodo permette di collegarsi direttamente ai parametri del file config.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);

$link = mysql_connect($dbhost, $dbuser, $dbpasswd);
if (!$link) {
	die ("Non posso connettermi:" . mysql_error());
}
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
	die ("Errore nella selezione del database:" . mysql_error());
}
...

Re: Collegare pagina personalizzata al database

Inviato: 23/05/2016, 11:10
da Micogian
Si ma questa è la connessione al database di phpbb, se poi devi collegarti ad una tabella personalizzata devi aggiungerla nella lista delle tabelle in includes/constants.php.
E' comunque una modifica al codice originale e non so se una tabella personalizzata crea problemi negli aggiornamenti.
Per connettermi a una tabella personalizzata io uso questo sistema.
In una cartella "include" ci metto un file connect_db.php con questo contenuto:

Codice: Seleziona tutto

<?php
//    Database Settings
global $glb_name;
global $glb_host;
global $glb_user;
global $glb_password;

$glb_name     = "nome_database";
$glb_host     = "localhost";    
$glb_user     = "nome_user";
$glb_password = "********";
?>
Poi, per la connessione uso:

Codice: Seleziona tutto

// CONNESSIONE AL DATABASE
require_once('./include/connect_db.php');

global $glb_name;
global $glb_host;
global $glb_user;
global $glb_password;
if (!@mysql_connect($glb_host, $glb_user,$glb_password)) exit('<p>Impossibile connettersi al server del database xxx in questo momento.</p>');
 

Re: Collegare pagina personalizzata al database

Inviato: 23/05/2016, 11:13
da frank
Io la tabella l'ho creata direttamente nel database e funziona

Re: Collegare pagina personalizzata al database

Inviato: 23/05/2016, 11:24
da Micogian
frank ha scritto:Io la tabella l'ho creata direttamente nel database e funziona
Questo è evidente, il problema sta negli aggiornamenti. Perchè Carlo aveva creato una funzione che controllava se nel DB ci sono tabelle o campi non previsti da phpbb?
L'aggiornamento non avviene se non togli le tabelle o i campi personalizzati, questo almeno nel passaggio da 3.0 a 3.1. Non so perchè non ho mai provato se il problema si pone anche con aggiornamenti tra versioni di 3.1.
Il mio codice crea una connessione di un database o tabella diversi da quello di phpbb. Nel mio sito usiamo 4 database diversi oltre a quello di phpbb.

Re: Collegare pagina personalizzata al database

Inviato: 23/05/2016, 11:34
da frank
Ok, c'è però una cosa che non funziona, entrando nel mio forum, sez. Personal, in fondo ad ogni articolo c'è il contatore rosso che funziona, Letto...volte

Più sotto in Potrebbe interessarti anche:, anche lì ho messo lo stesso richiamo, ma non richiama.

Variabile-echo della query

Codice: Seleziona tutto

...
$template->assign_vars(array(
    'conta_visite1' => $visite['visite'],  
)); 
Sia nella pagina dell'articolo che in Potrebbe interessarti anche: c'è il richiamo (per ogni pagina cambia il numero)

Codice: Seleziona tutto

{conta_visite1}

<!-- INCLUDE Articoli/social/fbgoogle.html -->
Come dicevo, sotto non richiama il counter

Re: Collegare pagina personalizzata al database

Inviato: 23/05/2016, 11:39
da brunino
Prova a dare un nome in maiuscolo, anche se dovrebbe essere indifferente. Bisogna vedere se $visite['visite'] contenga effettivamente qualcosa

Re: Collegare pagina personalizzata al database

Inviato: 23/05/2016, 11:47
da Micogian
Con la versione 3.1. è cambiato il "template->assign_vars", dovrebbe essere

Codice: Seleziona tutto

$this->template->assign_vars(array(