Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    43

    paginazione e risultato ricerca

    Salve scusate se posto un argomento che già è presente sul forum ma dalle risposte degli altri post non ho trovato al soluzione.

    da un form di ricerca devo visualizzare i risultati e suddividerli per pagine.
    (Premetto che la paginazione funziona su un altro script che mi visualizza dei record del database, ma non funziona con il comando search.)

    Praticamente effettua la ricerca la stampa a video con il LIMIT giuto, però la paginazione ha i seguenti errori:

    il numero delle pagine non corrisponde con il risultato della ricerca, praticamente legge tutti i record del database a prescindere dei risultati visualizzati( spero di essermi spiegato).

    facendo click sulle pagine visualizzate mi apre le pagine ma con risultato 0 come se effettuasse un'altra ricerca senza trovare nessun risultato.


    Posto il codice:

    pagina search.php:



    <?php

    session_start();
    $_SESSION['chiave'];
    $chiave=$_POST['chiave'];

    $testo = explode (",", $chiave);
    $query = "";
    reset ($testo);
    while (list(,$parola) = each ($testo))
    { $parola = trim($parola);
    if ($parola != ""){
    $count = mysql_query("SELECT COUNT(*) FROM immagini WHERE ( keywords LIKE '%$parola%' OR nomeimmagine LIKE '%$parola%' OR descrizione LIKE '%$parola%' OR 0) AND conta='1'");
    $res_count = mysql_fetch_row($count);

    // numero totale di records
    $tot_records = $res_count[0];

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

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

    // pagina corrente
    $current_page = (!$_GET['parola']) ? 1 : (int)$_GET['parola'];

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

    $query .= "SELECT * FROM immagini WHERE (keywords LIKE '%$parola%' OR nomeimmagine LIKE '%$parola%' OR descrizione LIKE '%$parola%' OR 0) AND conta='1' LIMIT $primo, $per_page ";
    }

    if(empty($_POST['chiave'] )){

    echo "<div id='cont_result' style='height:400px'><div id='result' >Nessun risultato per i tuoi termini di ricerca</div></div>
    ";

    }else {

    $result = mysql_query($query, $connessione);
    while ($row = mysql_fetch_array($result)){

    echo "<div id='cont_result'><img src=images/".$row['urlimmagine']."><div id='result'><h4>". $row['nomeimmagine']."</h4> <h6>|". $row['data']."|".$row['keywords']."|".$row['urlsite']."</h6>


    ".$row['descrizione']."</p></div></div>
    ";

    }
    }
    }
    ?>


    paginazione_result.php


    <?php

    $count = mysql_query("SELECT COUNT(*) FROM immagini WHERE (keywords LIKE '%$parola%' OR nomeimmagine LIKE '%$parola%' OR descrizione LIKE '%$parola%' OR 0) AND conta='1'");
    $res_count = mysql_fetch_row($count);

    // numero totale di records
    $tot_records = $res_count[0];

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

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

    // pagina corrente
    $current_page = (!$_GET['chiave']) ? 1 : (int)$_GET['chiave'];

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


    $chiave=$_POST['chiave'];


    if($current_page == 1) { // se siamo nella prima pagina
    $precedente = "<< prev ";
    } else { // altrimenti

    $previous_page = ($current_page - 1);

    $precedente = "<a href=\"?chiave=$chiave\" title=\"Vai alla pagina precedente\"><< prev</a>";
    }

    if($current_page == $tot_pages) { // se siamo nell'ultima pagina
    $successiva = "next >>";
    } else { // altrimenti


    $next_page = ($current_page + 1);

    $successiva = "<a href=\"?chiave=$chiave\" title=\"Vai alla pagina successiva\">next >></a>";
    }

    for($i = 1; $i <= $tot_pages; $i++) {
    if($i == $current_page) {
    $paginazione .= $i . " ";
    } else {
    $paginazione .= "<a href=\"?parola=$i\" title=\"Vai alla pagina $i\">$i</a> ";
    }
    }


    echo '<div id="num"><span>'.$precedente.'</span>'.$paginazione.'<span>'.$successiva.'</span></div>';

    ?>



    Spero che qualcuno possa aiutarmi grazie mille in anticipo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    43
    Una cosa l'ho risolta, rimane il fatto che quando clicko sulle altre pagine invece di visualizzare gli altri record trovati, mi da risultato 0, come se non ci fosse nulla.
    Quindi le pagine le suddivide e la paginazione è corretta ma i risultati si vedono solo alla prima pagina le altre vuote.

    posto il codice:


    <?php include('config.php');
    include ('connect.php');
    ?>
    <body>
    <?php





    $testo = explode (",", $chiave);
    $testo = explode (" ", $chiave);
    $query = "";




    while (list(,$parola) = each ($testo))
    { $parola = trim($parola);
    if ($parola != ""){
    $count = mysql_query("SELECT COUNT(id) urlsite, data, urlimmagine, keywords, nomeimmagine, descrizione FROM immagini WHERE (keywords LIKE '%$parola%' OR nomeimmagine LIKE '%$parola%' OR descrizione LIKE '%$parola%' OR 0) AND conta='1' ");
    while ($res_count=mysql_fetch_array($count)){


    // numero totale di records
    $tot_records = $res_count[0];

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

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

    // pagina corrente
    $current_page = (!$_GET['chiave']) ? 1 : (int)$_GET['chiave'];

    // primo parametro di LIMIT
    $primo = ($current_page - 1) * $per_page;
    $query .= "SELECT urlsite, data, urlimmagine, keywords, nomeimmagine, descrizione FROM immagini WHERE (keywords LIKE '%$parola%' OR nomeimmagine LIKE '%$parola%' OR descrizione LIKE '%$parola%' OR urlsite LIKE '%$parola%' OR 0) AND conta='1' LIMIT $primo, $per_page ";
    }

    if(empty($_POST['chiave'] )){

    echo "<div id='cont_result' style='height:400px'><div id='result' >Nessun risultato per i tuoi termini di ricerca</div></div>
    ";

    }else {

    $result = mysql_query($query, $connessione);
    while ($row = mysql_fetch_array($result)){

    echo "<div id='cont_result'><img src=images/".$row['urlimmagine']."><div id='result'><h4>". $row['nomeimmagine']."</h4> <h6>|". $row['data']."|".$row['keywords']."|".$row['urlsite']."</h6>


    ".$row['descrizione'].$tot_records."</p></div></div>
    ";
    }

    }
    }
    }

    if($current_page == 1) { // se siamo nella prima pagina
    $precedente = "<< prev ";
    } else { // altrimenti


    $previous_page = ($current_page - 1);

    $precedente = "<a href=\"?chiave=$chiave&$previous_page\" title=\"Vai alla pagina precedente\"><< prev</a>";
    }

    if($current_page == $tot_pages) { // se siamo nell'ultima pagina
    $successiva = "next >>";
    } else { // altrimenti


    $next_page = ($current_page + 1);

    $successiva = "<a href=\"?chiave=$chiave&$next_page\" title=\"Vai alla pagina successiva\">next >></a>";
    }

    for($i = 1; $i <= $tot_pages; $i++) {
    if($i == $current_page) {
    $paginazione .= $i . " ";
    } else {


    $paginazione .= "<a href=\"?chiave=$chiave&$i\" title=\"Vai alla pagina $i\">$i</a> ";
    }
    }


    echo '<div id="num"><span>'.$precedente.'</span>'.$paginazione.'<span>'.$successiva.'</span></div>';






    ?>


    Che qualcuno mi aiuti

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.