• User

    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 '&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp ';**
    ** echo "<input type='radio' name='moreinfo' value='$row[att7]'>Contatta ".$row[att5];**
    ** echo '&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp';**
    ** ?>**
    ** <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


  • User Attivo

    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...


  • User Attivo

    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?