Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problema paginazione messaggi privati

    Ciao Ragazzi! ho un problema con la paginazione dei miei messaggi privati.. Sarà sicuramente una stupidaggine ma sto impazzendo..

    Allora partiamo con lo spiegare cosa deve fare la mia pagina,all'apertura mi deve contare i messaggi e paginarmeli,tenendo presente che quelli che sono stati messi in evidenza(che hanno un campo impostato a 1) devono uscire per primi indipendentemente da quanti messaggi ho impostato che devono comparire in una pagina...ovvero:

    imposto che ogni pagina deve contenere al max 5 messaggi ma io ho messo in evidenza 3 messaggi quindi uscirà fuori una cosa del tipo

    -->Pagina1
    mess evidenz
    mess evidenz
    mess evidenz
    mess1
    mess2
    mess3
    mess4
    mess5


    -->Pagina2
    mess6
    mess7


    Allora io ho pensato di fare in questo modo:

    all'inizio di tutto ho messo questo:

    Codice PHP:
    //conto i messaggi
    $count mysql_query("SELECT 1, COUNT(*)
                          FROM messaggio_privato
                          WHERE esiste IN(1,3)
                          AND id_utente_ric=
    $id_utente
                          AND iniziale = 1
                          AND evidenza = 0
                          UNION
                          SELECT 2, COUNT(*)
                          FROM messaggio_privato
                          WHERE esiste IN(1,2)
                          AND id_utente_sender=
    $id_utente
                          AND iniziale = 1
                          AND evidenza = 0
                          "
    );
    while(
    $row mysql_fetch_row($count)) {
       
    $num[] = $row[1];
    }

    $tot_records array_sum($num);
    //messaggi totali

    // risultati per pagina(secondo parametro di LIMIT)
    $per_page 3;

    // numero totale di pagine
    $tot_pages ceil($tot_records $per_page);

    $current_page = (!isset($_GET['page'])) ? $pag $pag $_GET['page'];
     if(!
    is_numeric($pag)) {
     echo 
    "Messaggio di errore";
     exit; 
    // blocchi l'esecuzione del resto dello script
     
    }

    // primo parametro di LIMIT
    $primo = ($current_page 1) * $per_page;

    echo 
    "<div align=\"center\" width=\"650\">\n<table>\n"


    Ok a questo punto ho fatto questo,ho prima fatto una query per estrarmi tutti i messaggi che hanno il campo evidenza a 1 in questo modo


    Codice PHP:

    $query_limit 
    mysql_query("SELECT * FROM messaggio_privato WHERE iniziale= 1 AND evidenza= 1 AND (id_utente_ric=$id_utente OR id_utente_sender=$id_utente) ORDER BY last_update DESC LIMIT $primo$per_page ");
    while(
    $results mysql_fetch_array($query_limit)) 
     {  
    // apro parentesi del while iniziale che mi estrae tutti i messaggi ricevuti
      //.........................................estraggo  dati 
    Poi dopo ho fatto una seconda query che mi estrae tutti i messaggi che non hanno il campo evidenza ad 1 e poi includo la paginazione

    Codice PHP:

    $query_limit 
    mysql_query("SELECT * FROM messaggio_privato WHERE evidenza= 0 AND iniziale= 1 AND(id_utente_ric=$id_utente OR id_utente_sender=$id_utente)  ORDER BY last_update DESC LIMIT $primo$per_page");
    while(
    $results mysql_fetch_array($query_limit)) 
     {  
    // apro parentesi del while iniziale che mi estrae tutti i messaggi ricevuti
         //.........................................estraggo  dati 
    A fine di queste estrazione includo la paginazione in questo modo

    Codice PHP:

    <table width="650" border="1" bordercolor="#0066CC">
                <tr>
                    
    <?php     
    // includiamo uno dei files contenenti la paginazione
    include("paginazione_1.php");
    echo 
    " <td align=\"center\">$paginazione</td>";
    echo 
    " </table>";
    Ora...Dove sta il problema?? Se io clicco sul pulsantino per mettere in evidenza uno dei messaggi nella prima pagina,ovviamente dovrebbe ricalcolare il numero dei messaggi(e lo fa) e delle pagine (e lo fa) e quindi spostarmi il messaggio in alto perchè è in evidenza,ma portarne uno nella pagina per farli diventare nuovamente 5,ma non lo fa!! anzi se io ne metto troppi in evidenza spariscono e non si estraggono più..Sicuramente avro fatto qualche casino coi limit...
    Potete aiutarmi per cortesia? E grazie anticipatamente per la pazienza!

  2. #2
    ..Ho provato a cambiare i parametri di LIMIT nella prima query ma non va...Eppure mi funzionava fino a poco tempo fa.. non li mettevo proprio,non li voglio paginare...

  3. #3
    ..non mettendo la limit sulla sezione con i messaggi in evidenza il problema è che me li riestrae ad ogni pagina!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.