• Moderatore

    di solito esce fuori quando manca qualche chiusura di parentesi 🙂


  • User

    E infatti avevo dimenticato di chiudere una }...comunque non funziona.
    Continuo a cercare da giorni su internet materiale su come paginare i risultati di una query...provo ad applicare i codici che trovo, adattandoli alle mie esigenze e non mi funziona nulla.....ora ho abbandonato il codice precedentemente postato e sto provando ad elaborarne un altro

    
    
    <?php 
    $db_host="..."; 
    $db_user="..."; 
    $db_password="..."; 
    $db_database="..."; 
    $connessione=mysql_connect($db_host,$db_user,$db_password) or die ("Errore nella connessione al Mysql:" . mysql_error()); 
    mysql_select_db($db_database,$connessione) or die ("Errore nella selezione del db:" . mysql_error()); 
    
    $numero_record = 3; 
    if(!isset($GET["inizio"])){ 
        $inizio = 0; 
    }else{ 
        $inizio = $GET["inizio"]; 
    }   
    $query_limit="SELECT AnnoRipresa, Id,  Foto FROM nome_tabella WHERE AnnoRipresa LIKE '%$_POST[AnnoRipresa]%' 
    order by Id desc limit $inizio, $numero_record" or die ("Errore :" . mysql_error());; 
    
    $query = mysql_query($query_limit); 
    
    $select = "SELECT AnnoRipresa, Id, FROM nome_tabella WHERE AnnoRipresa LIKE '%$_POST[AnnoRipresa]%'"; 
    
    $query2 = mysql_query($select); 
    
    $numero_record_totali = mysql_numrows($query2);   
    
    $numero_pagine = ceil($numero_record_totali/$numero_record);   
    $risultato=mysql_query($query_limit,$connessione) or die ("Errore nella query:" . mysql_error()); 
    while($riga=mysql_fetch_array($risultato)) 
    {?> 
    <tr> 
    <td height="22" width="20%"><h4><b>Anno Ripresa</b></td> 
    <td height="22" width="20%"><h4><b>Id</b></td> 
    </tr> 
    <tr> 
    <?php echo "<tr>"; 
    echo "<td>". $riga['AnnoRipresa'] . "</td>"; 
    echo "<td>" . $riga['Id'] . "</td>"; 
    echo "</tr>"; 
    } 
    if($numero_pagine > 1){ 
         for($pagina = 1; $pagina <= $numero_pagine; $pagina++){ 
              if($pagina == $pagina_corrente){ 
                   echo"<b>".$pagina."</b>"; 
              }else{ 
                   echo"<a href='default.php?inizio=".(($pagina - 1) * $numero_record)."'>".$pagina."</a>"; 
              } 
         } 
    } 
    ?> 
    
    

    Il risultato? Mi fa vedere i primi 3 risultati in una pagina...quando clicco sulla successiva mi compaiono i primi 3 records del DB e così per le altre.....pensavo di esserci riuscita...ma niente anche stavolta.
    Vi prego.....c'è qualcuno che può aiutarmi?


  • Moderatore

    $GET['inizio'] prova a scriverlo
    $_GET['inizio']

    :ciauz:


  • User

    Niente...è la stessa cosa


  • User Attivo

    domanda idiota, ma hai provato a stampare il contenuto di $_GET['inizio']?


  • User

    Non è una domanda stupida, visto che non ci avevo provato...risultato? non mi visualizza nulla, cioè compare la stessa pagina con i risultati e i link ma echo $_GET['inizio'] non mi fa veder niente di nuovo è come se non l'avessi inserito


  • User Attivo

    ok... allora, in questo caso e' ovvio che ti faccia sempre vedere i primi tre...
    dunque, hai verificato il codice html generato che il link sia scritto giusto con
    default.php?inizio=1, default.php?inizio=2, ecc ecc?
    se e' scritto giusto, prova ad usare $_REQUEST['inizio'] invece di $_GET['inizio']
    Per ultimo, un suggerimento, l'echo che fai del <a href...ecc> non mettere gli apici singoli nell'url, ma i doppi... puoi metterli come ",
    echo"<a href="default.php?inizio=".(($pagina - 1) * $numero_record)."">".$pagina."</a>";

    oppure trasformando la stringa in:

    echo '<a href="default.php?inizio='.(($pagina - 1) * $numero_record).'">'.$pagina.'</a>';


  • User

    io la query che tu hai scritto

    [php]$query=mysql_query("SELECT AnnoRipresa, Regione FROM fotoaereeverticali WHERE AnnoRipresa LIKE '%$_POST[AnnoRipresa]%'AND Regione LIKE '%$_POST[Regione]%'");[/php]
    la trasformerei così

    [php]$query=mysql_query("SELECT AnnoRipresa, Regione FROM fotoaereeverticali WHERE AnnoRipresa LIKE". $_POST[AnnoRipresa]." AND Regione LIKE " .$_POST[Regione]);
    [/php]
    vedi se funziona, magari cambiarei anche il like con = quindi verrebbe

    [php]$query=mysql_query("SELECT AnnoRipresa, Regione FROM fotoaereeverticali WHERE AnnoRipresa =". $_POST[AnnoRipresa]." AND Regione =" .$_POST[Regione]);
    [/php]

    così non esiste motivo per il quale non debba funzionare almeno credo...


  • User

    Allora, ho verificato che il codice html generato e i link sono giusti:
    nella prima pagina ho default.php, poi default.php?inizio=3, default.php?inizio=6 ma , tranne che la prima, le altre mi visualizzano records del DB che non corrispondono ai criteri di ricerca. Ho corretto $_GET['inizio'] con $_REQUEST['inizio'], ma niente....a questo punto mi viene un dubbio saranno errate le query...eppure sembrano funzionare perchè i risultati nella prima pagina sono esatti così come il numero delle pagine corrispondenti da cliccare (1,2,3,4,...)
    Non so più cosa fare !!!!!


  • User Attivo

    uhm... non capisco... io a questo punto mi farei stampare le varie query che genero e le proverei direttamente sul db da phpMyAdmin per vedere che ritornino i dati che mi interessano... dopodiche passerei a cercare e usare qualche classe gia' fatta di paginazione su db! :S


  • User

    Ho finalmente risolto il problema......posto la pagina, forse a qualcuno potrebbe servire.
    Comunque grazie a tutti per i consigli

    <?php 
    $db_host="..........";
    $db_user=".........";
    $db_password="...........";
    $db_database="...........";
    
    $connessione=mysql_connect($db_host,$db_user,$db_password) or die ("Errore nella connessione al Mysql:" . mysql_error());
    mysql_select_db($db_database,$connessione) or die ("Errore nella selezione del db:" . mysql_error());
    
    $numero_record = 3; 
    if(!isset($_GET["inizio"])){ 
        $inizio = 0; 
    }else{ 
        $inizio = $_GET["inizio"]; 
    }  
    $Foto = (isset($_POST["Foto"]) ? $_POST["Foto"] : base64_decode($_GET["Foto"]));
    $AnnoRipresa = (isset($_POST["AnnoRipresa"]) ? $_POST["AnnoRipresa"] : base64_decode($_GET["AnnoRipresa"]));
    $Id = (isset($_POST["Id"]) ? $_POST["Id"] : base64_decode($_GET["Id"]));
    
    $query_limit="SELECT AnnoRipresa, Id, Foto 
    FROM nome_tabella 
    WHERE AnnoRipresa LIKE '%".addslashes($AnnoRipresa)."%'
    order by Id limit $inizio, $numero_record"; 
    
    $query = mysql_query($query_limit) or die(mysql_error());
    
    $select="SELECT count(*) FROM nome_tabella 
    WHERE AnnoRipresa LIKE '%".addslashes($AnnoRipresa)."%'"; 
    
    $query2 = mysql_query($select); 
    
    $numero_record_totali = mysql_fetch_row($query2);
    $numero_record_totali = $numero_record_totali[0];
    $numero_pagine = ceil($numero_record_totali/$numero_record);  
    
    $pagina_corrente = ceil(($inizio/$numero_record) + 1);
    
    $this_Foto = "";
    $this_AnnoRipresa = "";
    $this_Id = "";
    
    while($riga=mysql_fetch_array($query))
    {
    $this_Foto=$riga['Foto'];
    $this_AnnoRipresa=$riga['AnnoRipresa'];
    $this_Id=$riga['Id'];
    ?>
    <img src="ridimensiona.php?Foto=<?php print ("$this_Foto");?>">
    <?php 
    echo . $this_AnnoRipresa .;
    echo . $this_Id .;
    } 
    
     if($numero_pagine > 1){ 
         for($pagina = 1; $pagina <= $numero_pagine; $pagina++){ 
              if($pagina == $pagina_corrente){ ?>
                  <b><?echo $pagina;?></b> <br>
             <?php  }else{
    echo"<a href=\"pagina.php?inizio=".(($pagina - 1) * $numero_record)."&amp;AnnoRipresa=".base64_encode($AnnoRipresa).
    "&amp;Id=".base64_encode($Id).
    "&amp;Foto=".base64_encode($Foto)."\">".$pagina."</a>";
              
    } 
    } 
    } 
    
    ?>