- Home
- Categorie
- Coding e Sistemistica
- Coding
- Impaginazione dei record.
-
Impaginazione dei record.
Salve a tutti, sto facendo a cazzotti con questo codice che permette di stamparmi 2 risultati della query a pag. (una normale impaginazione).
Il problema è che mi stampa i due risultati però tante volte (cioè mi stampa *r**isultato1-risultato2-risultato1-risultato2 *ecc.)
Credo che il problema stia nella parte che ho evidenziato in grassetto, ma non so come risolverlo.:?
<form action="contatta.php" method="post" name="cantattare">
<?php
$cn = mysql_connect("localhost", "root", ""); //Creo la connessione
mysql_select_db("personals", $cn); //seleziono il db// Controllo se esite gia il numero di pagina, altrimenti lo setto a 1
$pag = $_GET["pag"];
if (isset($pag) == false || is_numeric($pag) == false || $pag < 1)
{
$pag = 1;
}// Genero le variabili che stanno a rappresentare quali record da estrarre dal DB
$fine = 2;
$inizio = ($pag - 1) * $fine;// Creo la query con LIMIT
$cat = 'Articolisti';
$sql = "SELECT * FROM tab2 WHERE att10= '$cat' ORDER BY att1 DESC LIMIT " . $inizio . ", " . $fine;//Svolgo la mia query, e calcolo i record totali che mi ha ristituito
$query = mysql_query($sql, $cn);
$quanti = mysql_num_rows($query);if ($quanti == 0) { echo "Nessun record!"; } else {** for($x=0; $x<$quanti; $x++)**
** {
$result = $mysqli -> query($sql);**
** while($row = $result -> fetch_assoc()){**
** echo '<div id="contutto">';**
** echo '<div id="tit" class="ttt">'.$row[att1].' -- Di '.$row[att2].'</div>';**
** echo '<div id="tit">'.'<div class="paragrafo_ann">Descrizione:</div>'.$row[att5].'</div>';**
** echo '<div id="tit">'.'<div class="paragrafo_ann">Prezzo:</div>'.$row[att3].' euro</div>';**
** echo '<div id="tit">'.'<div class="paragrafo_ann">Durata:</div>'.$row[att4].'</div>';**
** echo '<br>'."<input type='radio' name='moreinfo' value='$row[att6]'>Info ".$row[att5]
**** echo '            ';**
** echo "<input type='radio' name='moreinfo' value='$row[att7]'>Contatta ".$row[att5];**
** echo '      ';**
** ?>**
** <input type="submit" value="Vai">**
** <?php**
** echo '</div>'.'<hr>';**
** }**
** }**
// Trovo il numero di tutti i record presenti nella tabella
$query = mysql_query("SELECT * FROM annunci", $cn);
$quanti = mysql_num_rows($query);$intero = $quanti / $fine; //Calcolo il numero di pagine totali?>
<p>Pagina <?php echo $pag;?> di <?php echo $intero;?></p> //dico in che pagina mi trovo
<p>
<?php
//Effettuo un for che mi scrive tutti i link alle relative pagine
for($x=1; $x<$intero+1; $x++)
{
if ($x == $pag)
{
?><b><?php echo $x;?></b> |
<?php
}
else
{
?><a href="art.php?pag=<?php echo $x;?>"><?php echo $x;?></a> |
<?php
}
}?>
</p>
<?php
mysql_close($cn); //chiudo la connessione
?></form>Grazie a tutti in anticipo
-
Scusa ma non si capisce una bega! Il codice va postato in maniera ordinata e utilizzando i tag messi a disposizione per renderlo leggibile da parte di tutti...
-
Condivido quanto detto da spidertruman. Ma così, ad occhio:
- manca il punto e virgola alla fine della riga echo '<br>'."<input type='radio' name='moreinfo' value='$row[att6]'>Info ".$row[att5];
- $mysqli chi è, cos'è e dov'è definita;
- i record contenuti in una query è preferibile che vengano scorsi da un while($record = mysql_fetch_*($query)) piuttosto che da un for;
- perché memorizzi due volte il contenuto della query, una volta in $query ed una volta in $result?