Newsgroup: it.comp.www.php
Titolo: Primi passi con PHP, aiutatemi.

Ho creato una pagina php e un file di testo contenente del codice html.
La pagina php carica questo file di testo con
$admin=join("",file($adminfile))
poi faccio echo $admin e mi appare una pagina secondo l html contenuto in
$adminfile. In questo file però esiste questa linea:
<tr><td>~~nome~~</td></tr>
Ora vorrei che la pagina php, effettuata una query su un DB :
$query = "SELECT * from DB;";
        $result = mysql_db_query($dbutenti, $query);
       $riga = mysql_fetch_array($result);
sostituisca a ~~nome~~ i valori di volta in volta trovati e contenuto in
$riga['Nome']
in modo da ottenere una tabella con tutti i nomi contenuti nel DB, una cosa
del tipo:
<tr><td>Giovanni</td></tr>
<tr><td>Simona</td></tr>
<tr><td>Andrea</td></tr>
...
Non riesco proprio a saltarci fuori. Ottengo solo la stampa del primo nome
(nell'esempio Giovanni).
Grazie a chi vorrà aiutarmi.

 $riga['Nome']
Bisognerebbe conoscere un po' meglio la struttura di $admin per poter
fare una buona regexp.
Comunque, in linea di massima, questa dovrebbe aiutarti un po' (occhio,
la sto facendo a mente senza testarla...):
$pattern = "$riga['Nome'].html";  #  ===> adattalo al tuo input
$sostituzione = "pagina di $riga['Nome']"; # ===> adattalo al tuo output
$lista = preg_replace("/$pattern/", "$sostituzione", $admin);
ciao
-- 
Marco Bernardini - bernama chiocciola libero it
Per farvi strada nella vita non approfittate mai delle cariche che
vi sono state assegnate, a meno che non siate un minatore.


quando genery $riga, crea un ciclo per visualizzarlo:
while ( $riga = mysql_fetch_array($result) {
echo "<tr><td>".$riga[Nome]."</td></tr>";
}
Spero di aver capito cosa intendevi...
Cristiano


$adminfile è un file chiamato admin.tpl con questo contenuto:
<html>
<body>
<table>
<tr><td>~~nome~~</td></tr>
</table>
</body>
</html>
usando questo file do la possibilità a chi fa html di modificarlo a suo
piacere purchè metta ~~nome~~ dove vuole appaioano i risultati della query a
mysql.
se la query restituisce 5 tuple voglio una tabella con 5 righe coi nomi
trovati nel db, se ne restituisce 25 devono esserci 25 righe.
Ma admin.tpl deve restare sempre uguale. Vorrei che la pagina venisse
generata dinamicamente di volta in volta in base al risultato della query.
in perl potevo fare u while sulla query del tipo:
Finchè trovi qualcosa sostituisci ~~nome~~ con quel che trovi.


Grazie

 ha scritto nel messaggio
news:pan.2003.01.16.09...@libero.it...

Grazie

 qualcosa sostituisci ~~nome~~ con quel che trovi.
Beh, il while lo puoi fare anche in PHP.
puoi modificare il suggerimento di Cristiano in questo modo:
$HTMLnome = "";
while ( $riga = mysql_fetch_array($result) { 
    $HTMLnome .= "<tr><td>".$riga[Nome]."</td></tr>";
}
$HTMLpagina = join("", file("admin.tpl");
$HTMLpagina = str_replace("~~nome~~", $HTMLnome, $HTMLpagina);
echo $HTMLpagina;
Avere un echo solo potrebbe darti un filino di ritardo nella
visualizzazione della pagina se la tabella fosse enorme, ma in questo
modo il browser non fa fare "salti" alla pagina adattando la tabella ai
dati man mano che arrivano, visto che ha tutto in una volta sola.
ciao
Marco
-- 
bernama chiocciola libero it
Io non soffro di amnesie.
Se soffrissi di amnesie me ne ricorderei.