Visualizzazione risultati 1 fino 3 di 3

Discussione: Problema visualizzazione dati da database

  1. #1
    Guest

    Predefinito Problema visualizzazione dati da database

    Salve a tutti!
    Scrivo questo post perchè da poco ho cominciato a studiare php, finora me l'ero cavata ma ora son fermo su questo problema da qualche giorno.
    Il problema riguarda la visualizzazione dei post di un blog sulla home del sito.

    Io ho una pagina index.php così:

    Codice PHP:
    <?php
    include ('header.php')
    ?>

    <div id="pre-footer_cont">
    <div id="pre-footer">
    <?php
    include ('post_data.php')
    ?>

    </div>
    </div>
    <div class="clear"></div>

    <?php
    include ('footer.php')
    ?>
    E la pagina post_data.php così:
    Codice PHP:
    <?php
    // inclusione del file di classe
    include "funzioni_mysql.php";
    // istanza della classe
    $data = new MysqlClass();
    // chiamata alla funzione di connessione
    $data->connetti();
    // query per l'estrazione dei record
    $post_sql = $data->query("SELECT * FROM post ORDER BY id_post DESC");
    // controllo sul numero di record presenti in tabella
    if(mysql_num_rows($post_sql) > 0){
    // estrazione dei record tramite ciclo
    while($post_obj = $data->estrai($post_sql)){
    $id_post = $post_obj->id_post;
    $titolo_post = stripslashes($post_obj->titolo_post);
    $testo_post = stripslashes($post_obj->testo_post);
    $autore_post = stripslashes($post_obj->autore_post);
    $data_post = $post_obj->data_post;
    ?>

    <?php
    // visualizzazione dei post
    echo "<div class=\"pr_post\">";
    echo
    "<div class=\"intestazione\">";
    echo
    "<div>";
    echo
    "<div class=\"pr_autore\">";
    echo
    "Autore: <b>". $autore_post . "</b><br />\n";
    echo
    "</div>";
    echo
    "<div class=\"pr_data\">";
    echo
    $data->format_data($data_post);
    echo
    "</div>";
    echo
    "<div class=\"clear_b\"></div>";
    echo
    "</div>";
    echo
    "<div class=\"pr_titolo\">";
    echo
    "<a href=\"post.php?id_post=$id_post\">".$titolo_post."</a>\n";
    echo
    "</div>";
    echo
    "</div>";
    echo
    "<div class=\"pr_testo\">";
    // anteprima
    echo "<p>".$data->preview($testo_post, 50)."</p>\n";
    echo
    "</div>";
    echo
    "<div class=\"action\">";
    echo
    "<div class=\"leggi\">";
    // link al testo completo del post
    echo $leggi_tutto = "<a href=\"post.php?id_post=$id_post\">Leggi tutto...</a>\n";
    echo
    "</div>";
    echo
    "<div class=\"commenti\">";
    // parte relativa al conteggio dei commenti
    echo "Commenti: " . $data->conta_commenti("id_commento", "commenti", "id_post", $id_post, "approvato",'1');
    echo
    "</div>";
    echo
    "<div class=\"clear_b\"></div>";
    echo
    "</div>";
    echo
    "</div>";


    echo
    "</div><br />";
    }
    }else{
    echo
    "Per il momento non sono disponibili post.";
    }
    $data->disconnetti();
    ?>
    Ora, il mio problema è il seguente: il post più nuovo sta dentro al div "pre-footer" mentre tutti gli altri stanno fuori sia al div "pre-footer" sia a "pre-footer_cont" e sia al div "contenitore" che apro sempre dopo il tag body e chiudo prima di chiudere il tag body. Praticamente tutti gli altri post sono scritti sul body per conto loro.

    Vi allego uno screen della struttura con firebug.

    https://imageshack.com/i/gvmwk9j

    Spero che qualcuno riuscirà ad aiutarmi, grazie per l'attenzione!

  2. #2
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Perchè ad ogni ciclo chiudi un tag div, devi rimuovere echo "</div><br />";
    Pagina post_data.php:
    Codice PHP:
    <?php
    // inclusione del file di classe
    include "funzioni_mysql.php";
    // istanza della classe
    $data = new MysqlClass();
    // chiamata alla funzione di connessione
    $data->connetti();
    // query per l'estrazione dei record
    $post_sql = $data->query("SELECT * FROM post ORDER BY id_post DESC");
    // controllo sul numero di record presenti in tabella
    if(mysql_num_rows($post_sql) > 0){
    // estrazione dei record tramite ciclo
    while($post_obj = $data->estrai($post_sql)){
    $id_post = $post_obj->id_post;
    $titolo_post = stripslashes($post_obj->titolo_post);
    $testo_post = stripslashes($post_obj->testo_post);
    $autore_post = stripslashes($post_obj->autore_post);
    $data_post = $post_obj->data_post;
    ?>

    <?php
    // visualizzazione dei post
    echo "<div class=\"pr_post\">";
    echo
    "<div class=\"intestazione\">";
    echo
    "<div>";
    echo
    "<div class=\"pr_autore\">";
    echo
    "Autore: <b>". $autore_post . "</b><br />\n";
    echo
    "</div>";
    echo
    "<div class=\"pr_data\">";
    echo
    $data->format_data($data_post);
    echo
    "</div>";
    echo
    "<div class=\"clear_b\"></div>";
    echo
    "</div>";
    echo
    "<div class=\"pr_titolo\">";
    echo
    "<a href=\"post.php?id_post=$id_post\">".$titolo_post."</a>\n";
    echo
    "</div>";
    echo
    "</div>";
    echo
    "<div class=\"pr_testo\">";
    // anteprima
    echo "<p>".$data->preview($testo_post, 50)."</p>\n";
    echo
    "</div>";
    echo
    "<div class=\"action\">";
    echo
    "<div class=\"leggi\">";
    // link al testo completo del post
    echo $leggi_tutto = "<a href=\"post.php?id_post=$id_post\">Leggi tutto...</a>\n";
    echo
    "</div>";
    echo
    "<div class=\"commenti\">";
    // parte relativa al conteggio dei commenti
    echo "Commenti: " . $data->conta_commenti("id_commento", "commenti", "id_post", $id_post, "approvato",'1');
    echo
    "</div>";
    echo
    "<div class=\"clear_b\"></div>";
    echo
    "</div>";
    echo
    "</div>";



    }
    }else{
    echo
    "Per il momento non sono disponibili post.";
    }
    $data->disconnetti();
    ?>

  3. #3
    Guest

    Predefinito

    Ah ecco non lo sapevo! Grazie mille per la riposta, problema risolto!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •