Richiamare pagine PHP da variabile

minatore

Utente Attivo
25 Set 2007
410
0
0
Sera a tutti,
penso di aver azzeccato il titolo

nel db ho una tabella, dove ho scritto
alcune cose es. home,pagina1,pagina2 ecc

visto che sto studiando ho cercato di creare tipo un menu dinamico
quindi ho prelevato i dati e li ho stampati a video
però poi mi sono accorto che per richiamare le pagine di cui sopra
avevo un solo href
quindi ho pensato di richiamarle tramite variabile
la verità!
ci sto perdendo la testa, ma non ne esco
potete darmi almeno uno spunto per partire?

ciao e grazie
 
sarebbe bene che indicassi come è organizzata la tabella:)

la tabella, è composta
Codice:
nome tabella=categorie
id_categ | descrizione |
questi sono i 2 campi che compongino la tabella

per stamparli ho fatto
PHP:
<?php
     		//richiamo il file di configurazione
			require 'Config.php';
			//richiamo il file di connessione
			require 'Connect.php';
			
			//creo la SELECT
			$query="SELECT * FROM Categorie";
			//eseguo la query
			$risultato=mysql_query($query)or die("errore nella query;".mysql_error());

//chiudo la connessione
			mysql_close();	

$num_ris = mysql_num_rows($risultato);
for($x=0; $x<$num_ris; $x++)
		{
			print"
				<tr>";
				print"
					<td><p class='b01'>
						<img src='images/e02.gif' width='6' height='5' border='0' align='absmiddle'>&nbsp;&nbsp;
						<a href=''>".mysql_result($risultato,$x,'descrizione')."</a></p>
						<div align='center'><img src='images/hr01.gif' width='137' height='3' border='0'></div>
					</td>";
			print"
				</tr>";
		}
?>

con questo passaggio ottengo dei dei link cioè quello che ho in tabella nel campo descrizione e sono | pippo | topolino | pluto |
adesso vorrei (almeno spero) che quando clicco su di un link
mi si aprissero le pagine quali
pippo.php
topolino.php
pluto.php
 
io, ma non sono espertissimo (a prescindere dai nomi di variabile che indico), farei così e, se non ho capito male, descrizione contiene nome_pagina.php (o htm..), ma non il titolo(nome) della pagina

nome tabella=categorie
id_categ | descrizione | nome| (dove nome es. contatti)


PHP:
<?php

$item="SELECT * FROM categorie";
$query=msql_query($item);
$vai_a_pag=array();
$con_nome=array();
$conta=0;
//echo "<table>";
…….
while($riga=mysql_fetch_array($query)){
//echo vari <tr> e <td> necessari
echo “<a href=\"".$vai_a_pag[$conta]."\">". $con_nome[$conta]."</a>";
//echo vari <\tr> e <\td> necessari
$conta++;

}//fine while

mysql_close();
……..

?>

Dovrebbe venirti (a parte la grafica da sistemare con i css) una roba del genere

HOME
SECONDA
…..
CONTATTI
……




:byebye:
 
Ultima modifica:
Beh se ho capito bene il problema modificherei la parte del codice dopo la mysql_close() così

PHP:
while ($dati = mysql_fetch_object($risultato))
{
  echo "<tr>";
  echo "<td><p class='b01'> 
          <img src='images/e02.gif' width='6' height='5' border='0' align='absmiddle'>&nbsp;&nbsp; 
          <a href=\"$dati->descrizione".".php"."\">$dati->descrizione</a></p>
          <div align='center'><img src='images/hr01.gif' width='137' height='3' border='0'></div> 
          </td>";
  echo "</tr>";
}

Salvo errori sulle virgolette dell'href il codice non fa altro che creare un link che punta al nome della categoria (o meglio alla sua descrizione) e concatenare un .php in modo da riferirsi poi quando lo si clicca ad una pagina php.
 
Ultima modifica:
ciao a tutti, beh niente da fare
vi prego di aiutarmi
non vorrei mollare su sto fatto
altrimenti devo creare un menu statico
in modo da avere tanti href
ognuno per pagina, ma questo mi darebbe una delusione
in quanto sto facendo x adesso un percorso
didattico

ciao e grazie
 
scusa io ho fatto un errore di DIMENTICANZA:dormo:

appena sotto il while
devi inserire

$vai_a_pag[$conta]=$riga['descrizione'];
$con_nome[$conta]=$riga['nome'];

inoltre sono apparsi dei caratteri tipo & # che io non avevo scritto:confused:

scusa
 
PHP:
echo "<td><p class='b01'> 
          <img src='images/e02.gif' width='6' height='5' border='0' align='absmiddle'>&nbsp;&nbsp; 
          <a href=\"" . $dati->descrizione . ".php\">" . $dati->descrizione . "</a></p>
          <div align='center'><img src='images/hr01.gif' width='137' height='3' border='0'></div> 
          </td>";
Una piccola sistemata alle concatenazioni :)
 
PHP:
echo "<td><p class='b01'> 
          <img src='images/e02.gif' width='6' height='5' border='0' align='absmiddle'>&nbsp;&nbsp; 
          <a href=\"" . $dati->descrizione . ".php\">" . $dati->descrizione . "</a></p>
          <div align='center'><img src='images/hr01.gif' width='137' height='3' border='0'></div> 
          </td>";
Una piccola sistemata alle concatenazioni :)

ciao, quando si verifica una cosa del genere
Codice:
Notice: Undefined property: descrizione in c:\programmi\easyphp1-8\www\web_site\index.php on line 104
cosa vuol dire che sopra la pagina
devo scrivere
PHP:
$descrizione=isser($_GET['descrizione']);

grazie
 
PHP:
echo "<td><p class='b01'> 
          <img src='images/e02.gif' width='6' height='5' border='0' align='absmiddle'>&nbsp;&nbsp; 
          <a href=\"" . $dati->descrizione . ".php\">" . $dati->descrizione . "</a></p>
          <div align='center'><img src='images/hr01.gif' width='137' height='3' border='0'></div> 
          </td>";
Una piccola sistemata alle concatenazioni :)

Già hai ragionissima... L'ho scritto un po' in fretta senza controllarlo meglio!! Grazie! :)
 
Se ti dice "undefined propriety" vuol dire che la proprietà richiesta (in questo caso descrizione) non esiste nell'oggetto sulla quale è richiesta.

Forse è il caso di spiegare un attimo... :)

La funzione mysql_fetch_object restituisce un oggetto (spero tu abbia un minimo di conoscenza della programmazione ad oggetti) che ha un numero di proprietà pari al numero di colonne della tabella sulla quale esegui la SELECT sql... (ad essere più precisi e rigorosi ha un numero pari di proprietà ai campi menzionati nella select). Queste proprietà contengono il valore dei vari campi e sono raggiungibili attraverso il loro nome o il nome dichiarato nella select. Usandola come guardia del while ci si assicura che si iterano tutti i record di una certa tabella...

Ipotizzando di avere una tabella di questo tipo:

| id | nome | cognome | indirizzo |

e di fare come query

Codice:
SELECT * FROM tabella

e fare
PHP:
 $dati = mysql_fetch_object($query);

(dove $query è stata inizializzata con il risultato di una mysql_query)

otterrai una variabile $dati con 4 proprietà raggiungibili così:

PHP:
$dati->id
$dati->nome
$dati->cognome
$dati->indirizzo

Se la query fosse "SELECT cognome,indirizzo AS residenza FROM tabella", avresti su dati

PHP:
$dati->cognome
$dati->residenza

Dunque se c'è una undefined vuol dire che "descrizione" che ho scritto io non esiste nella tabella. Devi sostituirlo col nome del campo corretto :)

Spero di essere stato chiaro ;)
 
cmq, potresti fare che nel menu, si visualizza una riga per ogni riga della tabella con un link ad una pagina dinamica che può essere per esempio: vedinodo.php

il link includerà una variabile che sarà proprio l'id del nodo (cioè della pagina che vuoi visualizzare):

PHP:
echo "<a href=\"vedinodo.php?nodo_id=".$row['id']."\">".$row['nome']."</a>";

la pagina vedinodo.php in base al $_GET['nodo_id'] ricercherà nel DB il nodo corretto e ne stamperà a schermo i contenuti...

era questo il problema o sono completamente fuori strada? :D
 
era questo il problema o sono completamente fuori strada? :D

ci sei dentro tutto, il problema era proprio quello
io creo il menu, ricavandomi ciò che ho in tabella
il fatto era che mi trovavo un solo href e quindi non sapevo come fare

grazie
 

Discussioni simili