Ciao a tutti,
nel mio sito, ho in un database delle dispense, con chiave primaria idD che va da 1 a 24, aventi il campo idT=1.
Adesso, vorrei mostrare le mie dispense 9 alla volta da quella con idD maggiore(la più recente) a quella con idD minore(la meno recente).
Quindi in questo caso ho 3 pagine, dove nella prima mostro le dispense dalla 24 alla 16, nella pagina 2 dalla 15 alla 7 e nella pagina 3 dalla 6 alla 1.
Il codice che uso è il seguente:
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;
$M=9;
$query="SELECT idD FROM dispensa";
$risultato=mysqli_query($conn,$query);
$righe=mysqli_num_rows($risultato);
if(($righe% 9)==0)
{
$pag=$righe/9;
}else {
$pag=floor($righe/9)+1;
}
if($_GET['pages']!=NULL)
{
$arrivata=$_GET['pages'];
if($arrivata==1)
{
$m=0;
$M=9;
}else if($arrivata>1)
{
$m=0;
$M=9;
for($i=0;$i<=($arrivata-1);$i++)
{
$m=$m+9;
$M=$M+9;
}
}
}
$query2="SELECT * FROM dispensa WHERE idT='1' AND idD>".$m." AND idD<=".$M." ORDER BY idD DESC";
$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>
ho il problema, che le dispense vengono visualizzate non nella maniera che ho descritto, prima, infatti nella pagina 1 sono mostrate le dispense con idD che va da 9 ad 1, nella pagina 2 quelle con idD che va da 24 a 19, e la pagina 3 è vuota.
Non riesco a capire da dove derivi il problema, inoltre ho anche l'errore, appena caricata la pagina, ovvero prima di fare una qualsiasi delle pagine da visualizzare, sulla linea 45 del codice-> Undefined index: pages in C:\xampp\htdocs\www.Test1.it\index.php on line 45.
Grazie a tutti per l'aiuto!!