• User Attivo

    creare pagine html con dati estratti da database

    Buonasera, ho bisogno di creare dinamicamente pagine con estensione html partendo dai dati estratti da un database.

    ho un modulo di inserimento dati in php per inserire un elenco di siti web in un database, tramite il modulo si inseriscono:

    • url del sito web
    • titolo del sito web
    • la descrizione del sito web

    tramite il codice che allego, estraggo i dati per ciascun sito inserito e li stampo a video, nella parte finale ho inserito un codice per la creazione automatica di pagine .html con i dati forniti.

    io voglio creare per ciascun sito web inserito una pagina .html (titolo_sito.html) e caricarla sul server, invece con questo codice mi crea una pagina soltanto con i dati dell'ultimo sito inserito.

    [PHP]

    <?/* dichiariamo alcune importanti variabili per collegarci al database /$DBhost = "localhost";$DBuser = "robertopaolucci";$DBpass = "";$DBName = "my_robertopaolucci";
    /
    specifichiamo il nome della nostra tabella /$table = "serp";
    /
    Connettiamoci al database /mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");@mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");
    /
    impostiamo la query e cerchiamo*/$sqlquery = "SELECT * FROM $table";$result = mysql_query($sqlquery);$number = mysql_num_rows($result);
    $i = 0;if ($number < 1) { print "<center><p>La ricerca non ha prodotto nessun risultato</p></center>";}else{ while ($number > $i) { $titolo_sito = mysql_result($result,$i,"titolo_sito"); $url_sito = mysql_result($result,$i,"url_sito"); $descrizione_sito = mysql_result($result,$i,"descrizione_sito"); $chiavi_sito = mysql_result($result,$i,"chiavi_sito"); echo "<p><b>Titolo:</b> $titolo_sito<br> <b>Url:</b> $url_sito<br> <b>Descrizione:</b> $descrizione_sito<br> <b>chiavi:</b> $chiavi_sito</p>
    "; $i++; }}?>
    <?php
    $file = "pagina.html"; $codice = " <html> <head> <title>Prova</title></head> <boby> vediamo </body> </html>
    "; $fo = fopen($file, "w"); fwrite($fo, $codice); fclose($fo);
    ?>

    [/PHP]

    come posso risolvere? impostando un ciclo?
    grazie :wink3:


  • User Attivo

    [PHP]$file = "pagina.html";[/PHP]

    Perchè il nome della pagina deve cambiare, altrimenti continua a sovrascrivere lo stesso file. Quindi trasformalo in variabile.

    [PHP]$file = $pagina;[/PHP]

    Naturalmente prima fai in modo che venga creato il file da un ciclo e poi lo fai aprire, scrivere.


  • User Attivo

    Ciao grazie per la risposta, ho modificato l'ultima parte di codice php in questo modo:
    $file = $titolo_sito.html;

    ma mi crea sempre una sola pagina con i dati dell'ultimo risultato estratto.
    Come posso risolvere? impostando un ciclo foreach? ma non mi da errore..

    vi lascio codice php del ciclo..dove sbaglio??

    <?php

    				   include 'database.php';
    				   $pdo = Database::connect();
    				   $sql = 'SELECT * FROM articoli ORDER BY id DESC';
     				   foreach ($pdo->query($sql) as $row) {
    					   		echo '$file = "pagina.html"; $codice = " <html> <head> <title>$titolo_sito</title></head> <boby> $descrizione_sito </body> </html> 
    

    "; $fo = fopen($file, "w"); fwrite($fo, $codice); fclose($fo); ';

    				   }
    				   Database::disconnect();
    				  ?>

  • User Attivo

    [HTML]$file = $titolo_sito.html; [/HTML]

    Questa variabile è sbagliata, bnel senso che è un errore di php.

    VA SCRITTA COSI
    [HTML]$file = $titolo_sito.'.html'; [/HTML]

    o sue varianti, in ogni caso la variabile contiene tutto quello che c'è dopo **$ **a meno che non lo "spezzi".

    Anche

    [HTML]$file = "pagina.html"[/HTML]

    non mi convince.. non è un variabile, il nome rimane sempre lo stesso.