Visualizzazione dei risultati da 1 a 9 su 9

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    Prova

    Codice PHP:
    list($righe)=mysqli_fetch_array($num_record); 
    Per LIMIT.
    La clausola WHERE non deve contenere alcun riferimento ad un idD. Non stai lavorando con degli id ma con dei record.
    Non ho il tempo (per adesso) di fare un programmino.

    LIMIT ha 2 parametri : il numero (indice) del record nel l'insieme dei record estratti e il numero dei record da prendere a partire dal primo parametro. Nell'assoluto il primo record estratto ha sempre il numero 0.

    Nel tuo caso. Se hai 38 record : hai 38/9 = 4,2222 quindi 5 pagine. 4 complete + 1 parziale.

    Per la prima pagina : select blablabla from tabella limit 0, 9
    Per la seonda pagina : select blablabla from tabella limit 9, 9
    Per la terza pagina : select blablabla from tabella limit 18, 9
    Per la quarta pagina : select blablabla from tabella limit 27, 9
    Per la quinta pagina : select blablabla from tabella limit 36, 9

    Si può ridurre in :
    select blablabla from tabella limit (($numero_pagina -1)*9), 9

    $numero_pagina inizia da 1.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2016
    residenza
    Italy
    Messaggi
    139
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Prova

    Codice PHP:
    list($righe)=mysqli_fetch_array($num_record); 
    Per LIMIT.
    La clausola WHERE non deve contenere alcun riferimento ad un idD. Non stai lavorando con degli id ma con dei record.
    Non ho il tempo (per adesso) di fare un programmino.

    LIMIT ha 2 parametri : il numero (indice) del record nel l'insieme dei record estratti e il numero dei record da prendere a partire dal primo parametro. Nell'assoluto il primo record estratto ha sempre il numero 0.

    Nel tuo caso. Se hai 38 record : hai 38/9 = 4,2222 quindi 5 pagine. 4 complete + 1 parziale.

    Per la prima pagina : select blablabla from tabella limit 0, 9
    Per la seonda pagina : select blablabla from tabella limit 9, 9
    Per la terza pagina : select blablabla from tabella limit 18, 9
    Per la quarta pagina : select blablabla from tabella limit 27, 9
    Per la quinta pagina : select blablabla from tabella limit 36, 9

    Si può ridurre in :
    select blablabla from tabella limit (($numero_pagina -1)*9), 9

    $numero_pagina inizia da 1.
    Ciao Badaze,

    allora provando il codice che mi hai detto per contare il numero di righe, ho ancora errore, quindi per testare il funzionamento sono tornato al codice che ho usato nel primo messaggio.
    Adesso riesco anche ad estrarre le mie dispense così come voglio, ma sorge un nuovo problema, appena caricata la pagina index.php, ho le notizie volute, e se clicco sul selettore di pagina, correttamente mi fa scorrere tra 3 pagine, e selezionando la pagina, mi mostra in output le dispense corrette.
    Però adesso come inizio a navigare tra le 3 pagine, dal menù a tendina che uso per selezionare la pagina voluta, mi scompaiono le pagine, e mi resta solo una pagina, la 1 e non riesco a navigare più tra le pagine.
    Infine nel primo caricamento di index.php, cioè quando non ho selezionato alcuna pagina mi da errore sulla linea 44, questo perchè giustamente $_GET['pages'] è ancora senza valore, come posso eliminare questo errore??
    Il codice attuale della pagina è:
    codice:
    <html>
       <head>
             <img class="logosito" src="Logo.jpg" alt="Logo sito">
             <?php include "..\www.Test1.it\crea.php";
                   include "..\www.Test1.it\crea-tabelle.php";
                   //serve per aprire la connessione al database
                   include "..\www.Test1.it\Connetti.php";
                   include_once('C:\xampp\htdocs\www.Test1.it\FStile.css');
                   //include ('navbar.php');
             ?>
          <ul>
             <li><a class="active" href="..\index.php">Home</a></li>   
             <li><a href="..\Dispense.php">Dispense</a></li> 
             <li><a href="..\Esercizi.php">Esercizi</a></li> 
             <li><a href="..\Videolezioni.php">Videolezioni</a></li> 
             <li><a href="..\Tutorial.php">Tutorial</a></li>
         </ul>
       </head>
       <body>
           <div>
             <p class="large">Benvenuto su TuttoIngegneria.it, il portale dedicato agli studenti delle facoltà scientifiche.<br>
             Qui troverai tutto il materiale necessario allo studio, e non solo, sono presenti dispense, eserciziari, videolezioni,
             tutorial e molto altro.<br>
             La home contiene qui di seguito i caricamenti più recenti, che siano dispense, tutorial o contributi video.
             <br>Buona Navigazione!! Non dimenticare di seguirici anche su youtube.</p>
           </div>
             
             <?php
             
                //indica i limiti di selezione delle dispense
                $m=0;
                
                $query="SELECT * FROM dispensa WHERE idT='1'";
                $r=mysqli_query($conn,$query);
                $righe=mysqli_num_rows($r);
                
                if(($righe% 9)==0)
                {
                   $pag=$righe/9;
                }else {
                   $pag=floor($righe/9)+1;
                }
                
                if($_GET['pages'])
                {
                   $pag=$_GET['pages'];
                   $m=($pag-1)*9;
                }
                
                $query2="SELECT * FROM dispensa WHERE idT='1' ORDER BY idD DESC LIMIT ".$m.", 9 ";
                $risultato2=mysqli_query($conn,$query2);
               /* $query="SELECT COUNT 'idD' FROM dispensa ";
                $r=mysqli_query($conn,$query);
                $query1="SELECT * FROM dispensa WHERE idT='1' ORDER BY idD DESC LIMIT 9";
                $r1=mysqli_query($conn,$query1);*/
                
                if(mysqli_num_rows($risultato2)>0)
                {
                   $c=0;
                   //mandiamo i dati in output
                   while($row=mysqli_fetch_assoc($risultato2))
                   {
                      if($c==0)
                      {
                         echo "<ul class=\"result\">";
                         echo "<li class=\"result\"><a href=".$row['file']."><img src=".$row['immagine']."></a></li>";
                         $c++;
                      }else if($c==1)
                      {
                         echo "<li class=\"result\"><a href=".$row['file']."><img src=".$row['immagine']."></a></li>";
                         $c++;
                      }else if($c==2)
                      {
                         echo "<li class=\"result\"><a href=".$row['file']."><img src=".$row['immagine']."></a></li><br>";
                         $c=0;
                         echo "</ul>";
                      }
                   }
     
                }  
                
                
                echo "<form id=\"form-id\" method=\"get\" action=\"index.php\">";
                echo "<select name=\"pages\" onchange=\"this.form.submit()\">";
                $x=0;
                for($i=0; $i<$pag; $i++)
                {
                   $x=$i+1;
                   if($_GET['pages']==$x){
                   echo "<option value='$x' selected='selected'>$x</option>";
                   } else {
                   echo "<option value='$x'>$x</option>";
                   }
                }
                echo "</select>";
                echo "</form>";
             ?>
             
       </body>
    </html>
    Grazie ancora per l'aiuto!!

Tag per questa discussione

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 © 2026 vBulletin Solutions, Inc. All rights reserved.