Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993

    Contare le pagine... non funziona.!!!!

    Ciao ragazzi vorrei sapere perchè questo script se la query è questa:

    $sql = " SELECT * FROM TABELLA order by id LIMIT 0, 10";


    // esecuzione prima query
    $count = mysql_query("SELECT COUNT(id) FROM TABELLA order by id");
    $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['page']) ? 1 : (int)$_GET['page'];

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

    echo "<div align=\"center\">\n<table border=0 cellspacing=1 width=80% bgcolor=#f4f4f4 style=border-collapse:collapse bordercolor=#000000>\n";

    // esecuzione seconda query con LIMIT
    $query_limit = mysql_query("SELECT * FROM TABELLA LIMIT $primo, $per_page");


    FUNZIONA PERFETTAMENTE e visualizzo le altre pagine senza problema.

    Ma se la uso cosi:

    // SQL ricerca
    $sql = " SELECT * FROM TABELLA";
    $sql = $sql . " where " ;
    $sql = $sql . " prezzo_massimo <= '".$prezzo_massimo. "' ";
    $sql = $sql . " and " ;
    $sql = $sql . " tipo = '".$tipo."' ";
    $sql = $sql . " and " ;
    $sql = $sql . " camere = '".$camere."' ";
    $sql = $sql . " and " ;
    $sql = $sql . " dove = '".$dove."' " ;
    $sql = $sql . " and " ;
    $sql = $sql . " scelta = '".$scelta."' ";
    $sql = $sql . " order by id LIMIT 0, 5" ;

    // esecuzione prima query
    $count = mysql_query("SELECT COUNT(id) FROM TABELLA where prezzo_massimo <= '" . $prezzo_massimo . "' and tipo = '" . $tipo ."' and camere = '" . $camere . "' and dove = '" . $dove . "' and scelta = '" . $scelta . "' order by id");
    $res_count = mysql_fetch_row($count);

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


    Mi MOSTRA SOLO I PRIMI 5 RECORD e quando clicco sul link delle pagine a fondo pagina, non mi mostra piu NIENTE!!!!!!!!

    PERCHE''''''!!!!!!!!!!!!????????????


    chi mi fa capire dove sbaglio!!!!???
    GRAZIE a tutti voi!!!!
    ¿Hasta la pasta?

  2. #2
    $sql = $sql . " order by id LIMIT 0, 5" ;


    fa quello che gli chiedi tu .....



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    te lo eri pure segnato..
    Codice PHP:
     // risultati per pagina(secondo parametro di LIMIT)
    $per_page 10
    .
    .
     
    // primo parametro di LIMIT
    $primo = ($current_page 1) * $per_page;
    .
    .
    .
     
    $sql $sql " order by id LIMIT $primo$per_page
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  4. #4
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993

    non capisco...

    non capisco l'errore.

    La query dovrebbe riportarmi piu di 5 record, e perchè non lo fa nelle pagine successive.

    questo è lo script per le pagine successive
    <?php

    $paginazione = "Pagine totali: " . $tot_pages . "
    [";
    for($i = 1; $i <= $tot_pages; $i++) {
    if($i == $current_page) {
    $paginazione .= $i . "_";
    } else {
    $paginazione .= "<a href=\"?page=$i\" title=\"Vai alla pagina $i\">$i</a>_";
    }
    }
    $paginazione .= "]";

    ?>

    Ma non mi funziona!!!! mi viusualizza il link PAGINA:2 ma se clicco è completamente vuota la pagina!!!!

    HELP!!!!
    PLEASE!!!!!
    ¿Hasta la pasta?

  5. #5
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442

    Re: Contare le pagine... non funziona.!!!!

    Lo vuoi un consiglio, cambia questo codice
    Originariamente inviato da polinet
    // esecuzione prima query
    $count = mysql_query("SELECT COUNT(id) FROM TABELLA order by id");
    $res_count = mysql_fetch_row($count);
    con
    codice:
    $count = mysql_query("SELECT COUNT(id) FROM TABELLA");
    $totale = mysql_result ($count, 0, 0);
    tanto la query restituisce sempre e cmq un solo risultato, meno codice => meno errori possibili.
    Inoltre lo order by in una query così non ha effetto, è solo una perdita di tempo per il DBMS.

    Per quanto riguarda il tuo errore, così non ti si può dire molto, ma sicuramente se salvi la query in una variabile e la stampi subito prima di eseguirla troverai l'errore.

  6. #6
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993

    fatto ma non funziona

    ho cambiato il codice che mi dicevi, ho stampato la query:

    SELECT * FROM euro where prezzo_massimo <= '6000' and tipo = 'appartamento' and camere = '2' and dove = 'hadaba' and scelta = 'affittare' order by id LIMIT 0,5


    Ma non mi funziona



    Se ti posto tutto il codice?
    hai voglia di dargli una occhiata?

    GRAZIE
    ¿Hasta la pasta?

  7. #7
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Ma questo è la query eseguita sulla pagina 2?? allora è sbagliata dovrebbe avere limit 5, 5.
    Cmq lascia l'echo $query finchè non risolvi, così vedi sempre quali query vengono eseguite.

    Manda qualcosa e vedrò se posso esserti utile, cmq hai provato la query stampata con un front-end? Che risultati da?

  8. #8
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993

    ti mando lo script

    GRAZIE....

    <?
    require( "../connessione.php" );

    // selezione del DB
    mysql_select_db("eurosharm") or die("Selezione del DB fallita !");

    //$sql= "SELECT * FROM euro LIMIT 0, 5" ;

    // SQL ricerca
    $sql = " SELECT * FROM euro";
    $sql = $sql . " where " ;
    $sql = $sql . " prezzo_massimo <= '".$prezzo_massimo. "' ";
    $sql = $sql . " and " ;
    $sql = $sql . " tipo = '".$tipo."' ";
    $sql = $sql . " and " ;
    $sql = $sql . " camere = '".$camere."' ";
    $sql = $sql . " and " ;
    $sql = $sql . " dove = '".$dove."' " ;
    $sql = $sql . " and " ;
    $sql = $sql . " scelta = '".$scelta."' ";
    $sql = $sql . " order by id LIMIT 0, 2" ;

    // esecuzione prima query
    $count = mysql_query("SELECT COUNT(id) FROM euro where prezzo_massimo <= '" . $prezzo_massimo . "' and tipo = '" . $tipo ."' and camere = '" . $camere . "' and dove = '" . $dove . "' and scelta = '" . $scelta . "' order by id");
    $res_count = mysql_fetch_row($count);

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

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

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

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

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

    echo "<div align=\"center\">\n<table border=0 cellspacing=1 width=80% bgcolor=#f4f4f4 style=border-collapse:collapse bordercolor=#000000>\n";

    // esecuzione seconda query con LIMIT
    $query_limit = mysql_query("SELECT * FROM euro where prezzo_massimo <= '" . $prezzo_massimo . "' and tipo = '" . $tipo ."' and camere = '" . $camere . "' and dove = '" . $dove . "' and scelta = '" . $scelta . "' LIMIT $primo, $per_page");


    echo ("<tr>");
    echo ("<td width=100%>");



    while($results = mysql_fetch_array($query_limit))
    {
    echo ("<table width=80% border=0 bordercolor=#666666 style=border-collapse:collapse>");
    echo ("<tr>");
    echo ("<td width=100% align=left>");
    echo ("<font face=verdana size=1 color=black>Riferimento</font>");
    echo ("<font face=verdana size=2 color=purple>" . $results['rif'] . "</font>");
    echo ("</td></tr>");
    echo ("</table>");


    echo ("<table width=80% border=1 bordercolor=#666666 style=border-collapse:collapse>");
    echo ("<tr>");
    echo ("<td rowspan=5>");

    echo ("<table width=120 style=width:120 border=0 bordercolor=#666666 style=border-collapse:collapse>");
    echo (" <tr>");
    echo ("<td>");
    echo ("<div align=center><img src=../img/" . $results["foto"] . " border=1></div>");
    echo ("</td>");
    echo ("</tr></table>");

    echo ("</td>");


    echo "<td width=20% align=left><font face=verdana size=1 color=black>Tipologia:</font></td> ";
    echo "<td width=60% align=left><font face=verdana size=1 color=black>" . $results['tipo'] . "</font></td></tr>";

    echo ("<tr>");

    echo "<td width=20% align=left><font face=verdana size=1 color=black>Prezzo:</font></td> ";
    echo "<td width=60% align=left><font face=verdana size=1 color=black>" . $results['prezzo_massimo'] . "</font></td></tr>";

    echo ("<tr>");

    echo "<td width=20% align=left><font face=verdana size=1 color=black>Camere:</font></td> ";
    echo "<td width=60% align=left><font face=verdana size=1 color=black>" . $results['camere'] . "</font></td></tr>";

    echo ("<tr>");

    echo "<td width=20% align=left><font face=verdana size=1 color=black>Locazione:</font></td> ";
    echo "<td width=60% align=left><font face=verdana size=1 color=black>" . $results['dove'] . "</font></td></tr>";



    echo("<tr><td colspan=3 bgcolor=#E4F0F3 align=center><img src=../img/livello_sup.gif border=0 title=Scheda Dettagliata></div></td></tr>");


    }

    // includiamo uno dei files contenenti la paginazione, commentate l'altro ovviamente
    //include("paginazione_1.php");
    include("paginazione_2.php");

    echo ("</td></tr></table>");

    // in questa cella inseriamo la paginazione
    echo "<table width=80%>";
    echo " <tr>\n <td colspan=\"3\" valign=\"bottom\" align=\"center\"\">$paginazione</td>\n";
    echo " </tr>\n</table>\n</div>";
    mysql_close();

    //echo ("$sql");
    ?>


    Ti ringrazio.... ci sto perdendo la testa!!!!!
    ¿Hasta la pasta?

  9. #9
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Prova questo script e verifica se i risultati sono quelli aspettati, ai link di paging ci pensi dopo

    codice:
    <?php
    require( "../connessione.php" );
    
    // selezione del DB
    mysql_select_db("eurosharm") or die("Selezione del DB fallita !");
    
    $where = " WHERE "." prezzo_massimo <= '".$prezzo_massimo. "' AND tipo = '"
             .$tipo."' AND camere = '".$camere."' AND dove = '".$dove."' AND "
             ."scelta = '".$scelta."' ";
    
    $countQuery = "SELECT COUNT(id) FROM euro ".$where;
    
    // esecuzione prima query
    $count = mysql_query($countQuery);
    $tot_records = mysql_result($count, 0, 0);
    
    // risultati per pagina(secondo parametro di LIMIT)
    define('PER_PAGE', 2);
    
    // numero totale di pagine
    $tot_pages = ceil($tot_records / PER_PAGE);
    
    // pagina corrente
    $current_page = (is_int($_GET['page'])) ? $_GET['page'] : 1;
    
    // primo parametro di LIMIT
    $primo = ($current_page - 1) * PER_PAGE;
    
    $limitQuery = "SELECT * FROM euro ".$where." LIMIT ".$primo.",".PER_PAGE;
    // esecuzione seconda query con LIMIT
    $query_limit = mysql_query($limitQuery);
    
    echo "<pre>";
    echo "Query eseguite: \n";
    echo $countQuery."\n";
    echo $limitQuery."\n";
    echo "Totale record".$tot_records."\n";
    echo "Totale pagine".$tot_pages."\n";
    
    while($row = mysql_fetch_array($query_limit)) {
      var_dump($row)
    }
    echo "</pre>";
    
    mysql_close();
    ?>
    Ovviamente per provarlo passagli i parametri in qualche modo tipo getstring.

  10. #10
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993

    si!!!!!

    SELECT COUNT(id) FROM euro WHERE prezzo_massimo <= '6000' AND tipo = 'appartamento' AND camere = '2' AND dove = 'hadaba' AND scelta = 'affittare'
    SELECT * FROM euro WHERE prezzo_massimo <= '6000' AND tipo = 'appartamento' AND camere = '2' AND dove = 'hadaba' AND scelta = 'affittare' LIMIT 0,2
    // mi stampa esattamente quelli che sono i record!!!!!!!!!!
    //ci proviamo?!!!
    //GRAZIE!!!!!!

    Totale record7
    Totale pagine4
    array(30) {

    [0]=>
    string(1) "1"
    ["id"]=>
    string(1) "1"
    [1]=>
    string(6) "PP 001"
    ["rif"]=>
    string(6) "PP 001"
    [2]=>


    Grazie... ancora....!!!!!
    ¿Hasta la pasta?

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.