Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    302

    Paginare dati estratti da una query con condizione WHERE 1

    buongiorno,
    vorrei paginare i dati estratti da questa query per poter visualizzare 10 righe alla volta, mi dareste una mano

    codice:
    // INCLUDO IL FILE PER LA CONNESSIONE AL DATABASE
    include ("connessione.php");
    
    if (trim($_POST['cliente']) == '' && trim($_POST['targa']) == '' && trim($_POST['data']) == '' && trim($_POST['veicolo']) == '' && trim($_POST['pagamento']) == '' && trim($_POST['allegato']) == '' && trim($_POST['n_tecnico']) == '')
    {
        //REINDIRIZZO L'UTENTE AL MESSAGGIO DI ERRORE ATTENZIONE COMPILA ALMENO UN CAMPO
        echo "<center><h3><font color=\"red\">Attenzione non hai inserito nessun valore di ricerca</h3><a href=\"ricerca.php\"></br>Torna alla ricerca</a></center></br></br>";
    }
    
    else
       
    {
    $cliente = $_POST['cliente'];
    $targa = $_POST['targa'];
    $veicolo = $_POST['veicolo'];
    $data = $_POST['data'];
    $pagamento = $_POST['pagamento'];
    $allegato = $_POST['allegato'];
    $n_tecnico = $_POST['n_tecnico'];
    
    $query = "SELECT *, DATE_FORMAT(CommesseOfficina.data,'%d/%m/%Y') as data_it FROM CommesseOfficina WHERE 1";
    
    if (!empty($cliente)) {
        $query .= " AND `cliente` LIKE '%$cliente%'";
    }
    if (!empty($targa)) {
        $query .= " AND `targa` LIKE '%$targa%'";
    }
    
    if (!empty($veicolo)) {
        $query .= " AND `veicolo` LIKE '%$veicolo%'";
    }
    
    if (!empty($data)) {
        $query .= " AND `data` = STR_TO_DATE('$data', '%d/%m/%Y') ";
    }
    
    if (!empty($pagamento)) {
        $query .= " AND `pagamento` = '$pagamento'";
    }
    
    if (!empty($n_tecnico)) {
        $query .= " AND `n_tecnico` = '$n_tecnico'";
    }
    
        $query .= " ORDER BY id DESC";
    }
    
    // ESEGUO LA QUERY
    $cerca = mysql_query($query);
    
    // STAMPO LA QUERY PER IL DEBUG
    // echo $query;
    
    echo "
        <center><table>
        <tr><th colspan='9'>RISULTATI RICERCA</th><th colspan='6'>OPERAZIONI</tr>
        <tr><th>Id<th>Targa<th>Cliente<th>Vettura<th>Data Intervento<th>Km<th>Importo<th>Stato Pagamento<th>Allegato<th>Nuova<th>Visualizza<th>Modifica<th>Pdf<th>Elimina</tr>
    </center>";
    
    while ($riga = mysql_fetch_assoc($cerca)){
    echo "<tr><td>$riga[id]<td>$riga[targa]<td>$riga[cliente]<td>$riga[veicolo]<td>$riga[data_it]<td>$riga[km]<td>$riga[totale]</td><td>$riga[pagamento]<td>$riga[allegato]</td><td><center><a href=\"duplicacommessa.php?id=$riga[id]\"><img src= \"img/duplica_32_32.png\"></a></center></td><td><center><a href=\"visualizza.php?id=$riga[id]\"><img src= \"img/visualizza_32_32.png\"></a></center></td><td><center><a href=\"modifica.php?id=$riga[id]\"><img src= \"img/modifica_32_32.png\"></a></center></td><td><center><a href=\"pstampa.php?id=$riga[id]\" \" target=\"_blank\"><img src= \"img/stampa_32_32.png\"></a></center></td><td><center><a href=\"elimina.php?id=$riga[id]\" onclick=\"return confirm('Cancellare definitivamente?')\"><img src=\"img/elimina_32_32.png\"></a></center></td></tr>";
    }
    
    echo "</table>";
    
    // E chiudiamo la connessione a MySQL
    mysql_close();
    Grazie
    Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, sostanzialmente che cia sia un where 1 o altre condizioni (if piu' sotto ) non cambia nulla.
    Semplicemente dovresti aggiungere un LIMIT e OFFSET alla query per prendere N risultati a partire dal record X.
    Quindi passando allo script il numero di pagina voluto (ad esempio pagina 2) potresti fare:
    codice:
    $perPage = 10;
    $page = ($_POST["page"]) ? ($_POST["page"]) : 1; //pagina richiesta
    $offset = ($perPage * $page) - $perPage;//da dove partire
    
    
    SELECT ....... LIMIT $offset, $perPage
    Coi controlli ovviamente sul valore della pagina passata o quant'altro per assicurarti della validità dei dati passati

  3. #3

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 © 2024 vBulletin Solutions, Inc. All rights reserved.