Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322

    [php] risultati di una ricerca su piu pagine

    salve
    ho questa situazione. premetto che sto usando per le prime volte il php.
    Ho una pagina nella quale metto come risultato di una query una lista di oggetti (un imagine con un paio di campi di testo). Poiche la lista è lunga, dovrei fare piu pagine, diciamo in modo che ogni pagina contenga una decina di risultati della query.

    io nella mia pagina ho messo una semplice query sml che trova gli oggetti nel database e con un ciclo while me li stampa sulla pagina. Come faccio pero a fare cio su piu pagine?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    niente??

  3. #3
    <?php

    $connection = mysql_connect($cfg['path_db'], $cfg['user'], $cfg['pw_user']) or die(mysql_error());
    $db = mysql_select_db($cfg['database'], $connection) or die(mysql_error());

    (isset($_GET['inizio']) && ereg("^[0-9]",$_GET['inizio']))? $inizio = $_GET['inizio'] : $inizio = 0;

    $sql = "SELECT * FROM ".$database."";
    $sql_tot = mysql_query($sql, $connection);
    $n_tot = mysql_numrows($sql_tot);
    $num_page = ceil($n_tot/$per_pagina);
    $page_corr = ceil(($inizio/$per_pagina)+1);


    $sql = "SELECT * FROM ".$database." WHERE online IS true ORDER BY name DESC LIMIT ".$inizio.",".$per_pagina."";
    $sql_result = mysql_query($sql, $connection) or die(mysql_error());

    if ($num_page > 1){

    echo "\n\n<div class=\"pager\">\n";
    echo "<a href=\"".$_SERVER['PHP_SELF']."?inizio=0\" title=\"vai alla prima pagina\">&laquo;</a>\n";
    for($pagina = 1; $pagina <= $num_page; $pagina++) {
    $next_page = (($pagina - 1)*$per_pagina);
    ?>
    <a <?php if($page_corr == $pagina){echo "id=\"page_now\"";}; ?> href="<?php echo $_SERVER['PHP_SELF']; ?>?inizio=<?php echo $next_page; ?>" title="vai a pagina <?php echo $pagina; ?>"><?php echo $pagina; ?></a>

    <?php
    }
    echo "<a href=\"".$_SERVER['PHP_SELF']."?inizio=".($next_page)."\" title=\"vai all'ultima pagina\">&raquo;</a>\n";
    echo "</div>\n";
    }



    è un po da riadattare...

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    grazie..proverò..

  5. #5
    $sql = "SELECT * FROM ".$database."

    in realtà $database è la tabella

  6. #6

    Commenti

    scusate la totale niubbagine...
    @ robbi_gallo a scopo didattico, visto che io vorrei capirci ma ci capisco poco... potresti commentare lo script grazie

  7. #7
    <?php

    //$cfg['db'] è il database che usi
    //$cfg['user'] utente col quale ti connetti al db
    //$cfg['pw_user'] password dell'utente che si connette al db

    $connection = mysql_connect($cfg['db'], $cfg['user'], $cfg['pw_user']) or die(mysql_error());
    $db = mysql_select_db($cfg['database'], $connection) or die(mysql_error());

    (isset($_GET['inizio']) && ereg("^[0-9]",$_GET['inizio']))? $inizio = $_GET['inizio'] : $inizio = 0;
    //se $_GET['inizio'] è settata e contiene numeri (il caso in cui selexiona una pagina diversa dalla prima) $inizio è = a $_GET['inizio'] altrimenti $inizio = 0 (cioè la prima pagina)


    $sql = "SELECT * FROM ".$database."";
    $sql_tot = mysql_query($sql, $connection);
    $n_tot = mysql_numrows($sql_tot); //per sapere quanti elementi ci sono nel db
    $num_page = ceil($n_tot/$per_pagina); //approssima per eccesso elementi che sono nel db diviso quanti vuoi vederne per pagina

    $page_corr = ceil(($inizio/$per_pagina)+1);

    //desc ordian in ordine discendente
    // LIMIT $a, $b il primo elemento da visualizzare e i successivi $b (questi variano in base alla pagina che vi va a cliccare dal pager < 1 2 3 4 >)
    $sql = "SELECT * FROM ".$database." WHERE ORDER BY name DESC LIMIT ".$inizio.",".$per_pagina."";
    $sql_result = @mysql_query($sql, $connection) or die(mysql_error());


    if ($num_page > 1){ //se c'è più di una pagina allora....

    echo "\n\n<div class=\"pager\">\n";
    echo "<a href=\"".$_SERVER['PHP_SELF']."?inizio=0\" title=\"vai alla prima pagina\">«</a>\n";
    for($pagina = 1; $pagina <= $num_page; $pagina++) {
    $next_page = (($pagina - 1)*$per_pagina);
    ?>
    <a <?php if($page_corr == $pagina){echo "id=\"page_now\"";}; ?> href="<?php echo $_SERVER['PHP_SELF']; ?>?inizio=<?php echo $next_page; ?>" title="vai a pagina <?php echo $pagina; ?>"><?php echo $pagina; ?></a>

    <?php
    }
    echo "<a href=\"".$_SERVER['PHP_SELF']."?inizio=".($next_page)."\" title=\"vai all'ultima pagina\">»</a>\n";
    echo "</div>\n";
    }

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.