php passaggio parametro link con variabile

La discussione sul CMS Made Simple in italiano.

Moderator: magallo

gabryels
Forum Members
Forum Members
Posts: 42
Joined: Sun Mar 02, 2008 9:36 am

php passaggio parametro link con variabile

Post by gabryels »

Ciao a tutti,

sto riscontrando un problema enorme con l'inserimento di un parametro in un link all'interno di codice php. La classica sintassi purtroppo non funziona correttamente, e al posto di restituirmi il valore della variabile mi viene restituito il nome della variabile stessa sotto forma di stringa. Premetto che sono un novellino con il cms... Di seguito riporto il codice che ho inserito:

{php}   
include 'connessioneDB.php';   
$ris = mysql_db_query('gabriele','SELECT * FROM cms_module_news');
echo 'Titolo NewsDettaglioData riascio';
while($row = mysql_fetch_array($ris))  {
$var_id = $row['news_id'];
        $var_title = $row['news_title'];
$var_data = $row['news_data'];
$var_date = $row['news_date'];
echo ''.$var_title.''.$var_data.''.$var_date.'';   
}
echo '';
{/php}

il problema è che $var_id non passa come valore. Qualcuno ha una soluzione?
Grazie in anticipo.

Gabry
User avatar
blast2007
Power Poster
Power Poster
Posts: 508
Joined: Wed Aug 01, 2007 5:36 pm

Re: php passaggio parametro link con variabile

Post by blast2007 »

gabryels wrote: Ciao a tutti,

sto riscontrando un problema enorme con l'inserimento di un parametro in un link all'interno di codice php. La classica sintassi purtroppo non funziona correttamente, e al posto di restituirmi il valore della variabile mi viene restituito il nome della variabile stessa sotto forma di stringa. Premetto che sono un novellino con il cms... Di seguito riporto il codice che ho inserito:
...
Ciao Gabry,
innanzitutto vorrei sapere se hai un motivo specifico nell'usare codice PHP autoprodotto per visualizzare le news.
Potresti semplicemente personalizzare il template delle news per ottenere il risultato voluto senza andare a complicarti la vita e aprire possibili falle nel sistema.
In secondo luogo, usa (nel limite del possibile) gli UDT e non abusare dei tag {php}{/php} quando non richiesto. Usando un UDT avresti già  l'accesso al database già pronto. Ad esempio

UDT {exec_personal_query}

Code: Select all

global $gCms;
$db =& $gCms->GetDb();
$query = 'SELECT  * FROM tua_tabella';
$r= &$db->Execute($query);
while ($r && !$r->EOF) {
....
}

A presto
ciao
blast
gabryels
Forum Members
Forum Members
Posts: 42
Joined: Sun Mar 02, 2008 9:36 am

Re: php passaggio parametro link con variabile

Post by gabryels »

Ciao Blast,

innanzitutto ti ringrazio per la tua pronta risposta!! :-D
In seconda battuta, come già detto sono un novellino con il cms... In che modo posso personalizzare il template delle news per eseguire le modifiche sulle notizie direttamente da frontend?! L'utilizzo degli UDT mi sembra invece abbastanza chiaro, ma preferirei provare prima con il template.
Non vorrei abusare della tua pazienza e gentilezza e scusa la mia ignoranza... ti ringrazio di nuovo per la risposta.


Gabry
User avatar
blast2007
Power Poster
Power Poster
Posts: 508
Joined: Wed Aug 01, 2007 5:36 pm

Re: php passaggio parametro link con variabile

Post by blast2007 »

gabryels wrote: innanzitutto ti ringrazio per la tua pronta risposta!! :-D
In seconda battuta, come già detto sono un novellino con il cms... In che modo posso personalizzare il template delle news per eseguire le modifiche sulle notizie direttamente da frontend?! L'utilizzo degli UDT mi sembra invece abbastanza chiaro, ma preferirei provare prima con il template.
Io sapevo che dal frontend è possibile solamente inserire nuove news in una determinata categoria. Non è prevista al momento la possibilità di effettuare modifiche ai post.
Quindi presumo che direttamente con i template non si possa fare nulla.
Mi sa' che bisognerà procedere con un UDT personalizzato, utilizzando anche i moduli FEU e CC.
Ma da qui a dire che è una operazione immediatamente realizzabile ce ne passa...
gabryels wrote: ...scusa la mia ignoranza...
...c'e' sempre qualcosa di imparare...
gabryels
Forum Members
Forum Members
Posts: 42
Joined: Sun Mar 02, 2008 9:36 am

Re: php passaggio parametro link con variabile

Post by gabryels »

ok,
grazie tante per il supporto. Proverò a fare come mi hai suggerito.


Ciaooo
gabryels
Forum Members
Forum Members
Posts: 42
Joined: Sun Mar 02, 2008 9:36 am

Re: php passaggio parametro link con variabile

Post by gabryels »

Ciao Blast,

purtroppo non sono riuscito a trovare un via d'uscita...
Non sono riuscito a capire come e dove inserire l'UDT per estrapolare le informazione dal DB...
User avatar
blast2007
Power Poster
Power Poster
Posts: 508
Joined: Wed Aug 01, 2007 5:36 pm

Re: php passaggio parametro link con variabile

Post by blast2007 »

gabryels wrote: Ciao Blast,
purtroppo non sono riuscito a trovare un via d'uscita...
Non sono riuscito a capire come e dove inserire l'UDT per estrapolare le informazione dal DB...
Allora, andiamo con ordine.
Innanzitutto crea l'UDT dentro al menu' admin sotto Estensioni->Tag definiti dall'utente
Crea un nuovo UDT dagli il nome che vuoi e salva (ad esempio chiamalo db_retrive)

Per richiamarlo crea una pagina a tua scelta e richiama il tuo UDT semplicemente con il suo nome
{db_retrive}.
Per passare i dati ad un'altra pagina puoi memorizzare i risultati nelle variabili di smarty.

Ciao e a presto
blast
gabryels
Forum Members
Forum Members
Posts: 42
Joined: Sun Mar 02, 2008 9:36 am

Re: php passaggio parametro link con variabile

Post by gabryels »

Ciao Blast,
sto prendendo mano con gli UDT, solo che il codice che mi hai postato per la connessione al Db non mi funziona. Sono stressante lo so... quello che vorrei realizzare è una pagina di visualizzazone delle news presente nel cms con la possibilità di avere un link per modificare ogni singola news. La soluzione che mi è venuta in mente è l'utilizzo di una tabella dove ogni riga presenta il titolo di ogni news e il relativo link per modificarla. Il problema non è in fase di visualizzazione, ma nella fase di passaggio dell'id nel tag .Se riuscissi a collegarmi al Db con la sintassi che mi hai scritto tu, come riesco poi ad utilizzare il parametro per andare a prelevare le informazioni che mi servono? Se riuscissi a farmi un esempio te ne sarei grato...

Grazie ancora per la tua gentilezza.

Gabriele
User avatar
blast2007
Power Poster
Power Poster
Posts: 508
Joined: Wed Aug 01, 2007 5:36 pm

Re: php passaggio parametro link con variabile

Post by blast2007 »

gabryels wrote: sto prendendo mano con gli UDT, solo che il codice che mi hai postato per la connessione al Db non mi funziona. Sono stressante lo so...
In che senso non funziona?
Ovviamente era una bozza di codice. Solo con quelle istruzioni non ci fai niente.

Eccoi un esempio di UDT che permette di effettuare una query sul db.

Code: Select all

global $gCms;
$db =& $gCms->GetDb();

$query = 'SELECT * from MYTABLE';
$r= &$db->Execute($query);
$results = array();
$i=0;
while ($r && !$r->EOF)
{
       $tmp = array('campo1' =>$r->fields['campo1'],  'campo2'=>$r->fields['campo2'], 'campo3'=>$r->fields['campo3']' );     
        $results[$i++] = $tmp; 
        $r->MoveNext();
}
$smarty->assign('results', $results); 
}
Poi dentro un template o dentro una pagina visualizzii tuoi campi.

Code: Select all

{section name=elenco loop=$results}
     {$results[elenco].campo1} {$results[elenco].campo2} {$results[elenco].campo3}  
{/section}
Ho preso spunto da un UDT tutt'ora in funzione che ho scritto in passato, cambiando solo il nome delle variabili.
Spero di non aver fatto errori di sintassi.

Ciao
blast
gabryels
Forum Members
Forum Members
Posts: 42
Joined: Sun Mar 02, 2008 9:36 am

Re: php passaggio parametro link con variabile

Post by gabryels »

Grazie Blast,
mi hai risolto il problema  ;D

Gabriele
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: php passaggio parametro link con variabile

Post by protempore »

da apprendista stregone ho provato a scopiazzare i suggerimenti di Blast per interagire con 4 tabelle che ho creato ex-novo nel DB per raccogliere i dati relativi a dei convegni... lo scopo era creare un mio UDT che restituisse i risultati di query su quelle tabelle...

ho creato... o meglio, tentato di creare... questo UDT:

Code: Select all

$symposium_year = $params['symposium_year'];

global $gCms;
$db =& $gCms->GetDb();

$query = 'SELECT dbsymp_symposium.year, dbsymp_symposium.date, dbsymp_symposium.venue, dbsymp_symposium.nation, dbsymp_symposium.title_symposium FROM dbsymp_symposium WHERE dbsymp_symposium.year='.$symposium_year;

$r= & $db->Execute($query);
$results = array();
$i=0;
while ($r && !$r->EOF) {
    $tmp = array('year'=>$r->fields['year'],  'date'=>$r->fields['date'], 'venue'=>$r->fields['venue'], 'nation'=>$r->fields['nation'], 'title_symposium'=>$r->fields['title_symposium']' );     
    $results[$i++] = $tmp; 
    $r->MoveNext();
};
$smarty->assign('results', $results); 
...solo che CMSMS... mi ha sputato in un occhio... qualche anima buona sa spiegarmi il perché?

grazie
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
User avatar
blast2007
Power Poster
Power Poster
Posts: 508
Joined: Wed Aug 01, 2007 5:36 pm

Re: php passaggio parametro link con variabile

Post by blast2007 »

protempore wrote: ...solo che CMSMS... mi ha sputato in un occhio... qualche anima buona sa spiegarmi il perché?
Posta l'errore restituito da CMS (debug) o dal log di apache (error.log) che controlliamo...

ciao
blast

P.S. la tua tabella dbsymp_symposium è dentro al db di CMSMS? Si chiama quindi cms_dbsymp_symposium o qualcosa del genere?
Last edited by blast2007 on Fri Jul 25, 2008 10:26 pm, edited 1 time in total.
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: php passaggio parametro link con variabile

Post by protempore »

blast2007 wrote:
protempore wrote: ...solo che CMSMS... mi ha sputato in un occhio... qualche anima buona sa spiegarmi il perché?
Posta l'errore restituito da CMS (debug) o dal log di apache (error.log) che controlliamo...

ciao
blast

P.S. la tua tabella dbsymp_symposium è dentro al db di CMSMS? Si chiama quindi cms_dbsymp_symposium o qualcosa del genere?
aia... non ha il prefisso "cms_"... devo metterglielo?
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: php passaggio parametro link con variabile

Post by protempore »

ho rinominato le tabelle con il prefisso "cms_"... non è cambiata la situazione, però....

questo il codice UDT inserito:

Code: Select all

$symposium_year = $params['symposium_year'];

global $gCms;
$db =& $gCms->GetDb();

$query = 'SELECT cms_dbsymp_symposium.year, cms_dbsymp_symposium.date, cms_dbsymp_symposium.venue, cms_dbsymp_symposium.nation, cms_dbsymp_symposium.title_symposium FROM cms_dbsymp_symposium WHERE cms_dbsymp_symposium.year='.$symposium_year;

$r =& $db->Execute($query);
$results = array();
$i=0;
while ($r && !$r->EOF) {
    $tmp = array('year'=>$r->fields['year'],  'date'=>$r->fields['date'], 'venue'=>$r->fields['venue'], 'nation'=>$r->fields['nation'], 'title_symposium'=>$r->fields['title_symposium']');     
    $results[$i++] = $tmp; 
    $r->MoveNext();
}
$smarty->assign('results', $results); 
questo il messaggio di errore restituito:

Code: Select all

Codice inserito non valido.
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /home/admin/domains/e-serv.it/public_html/udms/cms/admin/edituserplugin.php(102) : eval()'d code on line 16
l'errore sembrerebbe in questa parte di codice, perché se tolgo questa parte e solo questa parte... mi passa la registrazione dell'UDT:

Code: Select all

    $tmp = array('year'=>$r->fields['year'],  'date'=>$r->fields['date'], 'venue'=>$r->fields['venue'], 'nation'=>$r->fields['nation'], 'title_symposium'=>$r->fields['title_symposium']');     
    $results[$i++] = $tmp; 
    $r->MoveNext();
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: php passaggio parametro link con variabile

Post by protempore »

porca paletta...

c'era un "apicino" del cavolo di troppo...

....elds['title_symposium']'); 
;D ;D

adesso funzia...
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
Post Reply

Return to “Italian - Italiano”