Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2012
    Messaggi
    95

    Problema risultati per pagina (impaginazione)

    Buongiorno,
    stò realizzando alcune pagine per degli annuni di lavoro, questo il codice:

    Codice PHP:
    <?php
    // Ultimi annunci inseriti...
    include("admin/include/function.paging.php");
    $nomeTabellaLavoro $tbl_prefix."lavoro";
    $where "";

    isset(
    $_REQUEST['cosa'])    ? $tipoLavoro mysql_real_escape_string($_REQUEST['cosa']) : $tipoLavoro "";
    isset(
    $_REQUEST['cat'])    ? $settoreLavoro mysql_real_escape_string($_REQUEST['cat']) : $settoreLavoro "";
    isset(
    $_REQUEST['luogo'])    ? $luogoLavoro mysql_real_escape_string($_REQUEST['luogo']) : $luogoLavoro "";
    if (!isset(
    $cercaTrova))
        isset(
    $_REQUEST['cercaTrova'])    ? $cercaTrova mysql_real_escape_string($_REQUEST['cercaTrova']) : $cercaTrova "offro";

    // Categoria --- regione --- provincia...
    if ((isset($nomeCat)) AND (strlen($nomeCat)>0))
    {
        
    $keyCatLav ucfirst(stripslashes($datiCat['key_catl']));
        
    $settoreLavoro $keyCatLav;
    }

    if ((isset(
    $nomeProv)) AND (strlen($nomeProv)>0))
        
    $luogoLavoro str_replace("a ","",$nomeProv);

    // Luogo
    if (strlen($luogoLavoro)>0)
    {
        echo(
    "Luogo di lavoro cercato: [b]".$luogoLavoro."[/b]
    "
    );
        
    $where " WHERE provincia_azienda = '$luogoLavoro'";
    }

    // Settore...
    if (strlen($settoreLavoro)>0)
    {
        if ((isset(
    $nomeCat)) AND (strlen($nomeCat)>0))
            echo(
    "Settore di lavoro cercato: [b]".$nomeCat."[/b]
    "
    );
        else
            echo(
    "Settore di lavoro cercato: [b]".$settoreLavoro."[/b]
    "
    );

        
    // Se non e' numerico devo cercare la chiave associata...
        
    if (!is_numeric($settoreLavoro))
        {
            
    $nomeTabellaSettore $tbl_prefix."categorie_lavoro";
            
    $queryCatLavoro "SELECT * FROM $nomeTabellaSettore WHERE nome = '$settoreLavoro'";
            
    $sqlCatLavoro = @mysql_query($queryCatLavoro);
            if ((
    $sqlCatLavoro) AND (mysql_num_rows($sqlCatLavoro)>0))
            {
                
    $datiSettore mysql_fetch_array($sqlCatLavoro);
                
    $keySettore $datiSettore['key_catl'];
                if (
    strlen($where) == 0)
                    
    $where " WHERE settore_azienda = '$keySettore'";
                else
                    
    $where .= " AND settore_azienda  = '$keySettore'";
            }
        }
        else
        {
            if (
    strlen($where) == 0)
                
    $where " WHERE settore_azienda = '$settoreLavoro'";
            else
                
    $where .= " AND settore_azienda  = '$settoreLavoro'";
        }
    }

    // Testo...
    if (strlen($tipoLavoro)>0)
    {
        echo(
    "Chiave di ricerca usata: [b]".$tipoLavoro."[/b]
    "
    );
        if (
    strlen($where) == 0)
            
    $where " WHERE titolo_annuncio LIKE '%$tipoLavoro%' OR descrizione_lavoro LIKE '%$tipoLavoro%'";
        else
            
    $where .= " AND (titolo_annuncio LIKE '%$tipoLavoro%' OR descrizione_lavoro LIKE '%$tipoLavoro%')";
    }

    // Regione ...
    if ((isset($nomeReg)) AND (strlen($nomeReg)>0))
        if (
    strlen($where) == 0)
            
    $where " WHERE regione_azienda LIKE '%$nomeReg%'";
        else
            
    $where .= " AND (regione_azienda LIKE '%$nomeReg%')";

    // Solo annunci attivi...
    if (strlen($where) == 0)
        
    $where " WHERE attivo = '1'";
    else
        
    $where .= " AND (attivo = '1')";

    echo(
    "
    "
    );

    if (isset(
    $cercaTrova))
    {
        if (
    strlen($where) == 0)
            
    $where " WHERE cerco_offro = '".$cercaTrova."'";
        else
            
    $where .= " AND (cerco_offro = '".$cercaTrova."')";
    }

    $queryOfferteLavoro "SELECT * FROM $nomeTabellaLavoro";
    $queryOfferteLavoro .= $where;
    $sqlLavoro = @mysql_query($queryOfferteLavoro);
    if ((
    $sqlLavoro) AND (mysql_num_rows($sqlLavoro)>0))
    {
        
    $numElementiLavoro mysql_num_rows($sqlLavoro);
        
    $rpp     8;
        
    $sortby    "data_ins";
        
    $order    "DESC";
        
        
    $res paging($queryOfferteLavoro,$rpp,$sortby,$order); 

        echo(
    '<table border="0" cellpadding="0" cellspacing="0" width="100%">');
        
    // echo ("<tr><td>[b]Annunci[/b]</td><td>[b]Provincia[/b]</td><td>[b]Inserimento[/b]</td></tr>");
        
    while($datiLavoro mysql_fetch_array($res[0]))
        {
            
    $keyLavoro        stripslashes($datiLavoro['key_lav']);
            
    $keyAzienda     stripslashes($datiLavoro['key_az']);
            
    $cercaTrova        stripslashes($datiLavoro['cerco_offro']);
            
    $titoloAnnuncio stripslashes($datiLavoro['titolo_annuncio']);
            
    $urlAnnuncio    stripslashes($datiLavoro['url_annuncio']);
            
    $descLavoro        stripslashes($datiLavoro['descrizione_lavoro']);
            
    $provinciaAzienda stripslashes($datiLavoro['provincia_azienda']);
            
    $regioneAzienda    stripslashes($datiLavoro['regione_azienda']);
            
    $telAzienda        stripslashes($datiLavoro['tel_azienda']);
            
    $emailAzienda    stripslashes($datiLavoro['email_azienda']);
            
    $settoreAzienda    stripslashes($datiLavoro['settore_azienda']);
            
    $descAzienda    stripslashes($datiLavoro['descrizione_azienda']);
            
    $oraIns            stripslashes($datiLavoro['ora_ins']);
            
    $dataIns        stripslashes($datiLavoro['data_ins']);

            
    $arrayData explode("-",$dataIns);
            
    $dataIns $arrayData['2']."-".$arrayData['1']."-".$arrayData['0'];

            if (
    strlen($cercaTrova) == 0)
                
    $cercaTrova "OFFRO";
            
    // echo("<tr>");
    //        if (strtolower(substr($urlAnnuncio,-4)) != ".php")
    //            $urlAnnuncio .= ".php";
            //echo("<td><a class='lavoro' href='".$docRoot."lavoro/".$urlAnnuncio."'>[".strtoupper($cercaTrova)."] - ".$titoloAnnuncio."</td>");
            
    echo ("<tr>");
            echo(
    "<td><a class='lavoro' href='".$docRoot."tpl_lavoro.php?url=".$urlAnnuncio."'>[".strtoupper($cercaTrova)."] - ".$titoloAnnuncio."</td>");
            echo(
    "<td>".$provinciaAzienda."</td>");
            echo(
    "<td align='right'>".$dataIns."
    "
    .$oraIns."</td>");
            echo(
    "</tr>");
            echo(
    "<tr><td colspan='3'></td></tr>");
        }
        if (
    $numElementiLavoro $rpp)
            echo 
    "<tr><td colspan='3'><div align='right'>Offerte di lavoro presenti: [b]$numElementiLavoro[/b] |  Vai a pagina: ".$res[1]."</div></td></tr>
            
            </tr>"
    ;

        echo(
    "</table>");
    }
    else
        echo(
    "

    [b]Nessuna offerta presente.[/b]</p>
    "
    );
    ?>
    Cerco di spiegare il problema.
    In pratica ho un box, dove compaiono gli annunci inseriti.
    Il limite è 8 annunci per pagina, perchè lo spazio è poco.
    Con lo stesso codice però visualizzo anche i risultati della ricerca.
    Sopra al box ho un motore di ricerca per parola,categoria,cerco-offro e provincia.
    Il problema è quando faccio una ricerca esempio, se cerco le offerte di lavoro a Roma ed ho 15 annunci, si dovranno visualizzare in 2 pagine.
    Sotto all'elenco ho le frecce per scorrere la pagina 1 e 2 solo che si clicco sulla 2 pagina...vedo anche gli altri annunci presenti.
    Quindi non più solo quelli su Roma.
    Se volete per farvi capire meglio vi passo il link alla pagina in privato.

    Questo codice è un include..quindi la SESSION è sulla pagina principale

    Grazie

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, proabilmente la prima volta invii anche le parole chiave di ricerca che non hai sul click della paginazione. Devi far si che nella form se presenti i dati di ricerca vengano mantenuti (magari nascosti in campi hidden) per riusarli con la pagina seguente.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2012
    Messaggi
    95
    Chiedo troppo lo sò..ma un esempio?
    Grazie

  4. #4
    Utente di HTML.it L'avatar di gorn
    Registrato dal
    Jun 2010
    Messaggi
    91
    Non ho analizzato attentamente il codice (quindi magari lo sfrutti già) ma non ti conviene usare un LIMIT?

    la query eseguita sarà la stessa quando cambi pagina ma sposti il LIMIT per prendere i dati che non ci stavano nella prima pagina

    1° pagina: LIMIT 0,8
    2° pagina: LIMIT 9,15
    ecc....

    Magari sbaglio ma spero possa tornarti utile,
    Il problema non è la caduta, ma l'atterraggio (Cit.)

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2012
    Messaggi
    95
    Mm non ho ben capito cosa intendi.
    Cmq il box rimanse sempre lo stesso anche quando cambio pagina..quindi il limite deve stare a 8 annunci.

  6. #6
    Utente di HTML.it L'avatar di gorn
    Registrato dal
    Jun 2010
    Messaggi
    91
    Quando crei la query (da quello che ho potuto vedere dal codice postato lo fai creandola a pezzi) in fondo aggiungi un LIMIT 0,8

    e salvi il valore del LIMIT in una variabile (sessione o altro, decidi tu)

    Quando ti sposti alla pagina 2 (se fai tutto in php immagino che la pagina venga ricaricata) aggiorni il valore del LIMIT spostandolo a 9, 16 (esempio su 8 elementi per pagina)

    Spero di essermi spiegato,
    Il problema non è la caduta, ma l'atterraggio (Cit.)

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2012
    Messaggi
    95
    Grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2012
    Messaggi
    95
    Fatte varie prove ma niente

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.