Salve a tutti..sono disperato..devo far funzionare questo piccolo codice in php e Mysql..l'intento sarebbe quello di avere i risultati della query divisibili per numero di pagine e ordinabili cliccando l'intestazione della tabella.
Questo è il sito che dovrebbe contenere questo script:
http:\\www.iw5bef.it sezione \moto.html
Vi posto il mio script:
<?php
$cn = mysql_connect("127.0.0.1", "root", ""); //Creo la connessione
mysql_select_db("database", $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
$sql = "SELECT * FROM prova 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++) {
@$rs = mysql_fetch_row($query); //Effettuo il fetch_array sul risultato
$nome_campo = $rs[0];
$query = "select prezzo,marca,immagine,anno from prova ";
$rs = mysql_query($query) or die(mysql_error());
$num = mysql_num_rows($rs);
if ($num == 0)
echo "<div style=\"text-align:center\">Nessun contatto presente</div>";
else {
if (empty($_GET['ordercampo']))
$_GET['ordercampo'] = "prezzo";
if (empty($_GET['order']))
$_GET['order'] = "asc";
if ($_GET['order'] == "asc") {
$ordinaVerso = "desc";
}
if ($_GET['order'] == "desc") {
$ordinaVerso = "asc";
}
$query = "select prezzo,marca,immagine,anno from prova order by $_GET[ordercampo] $ordinaVerso ";
$rs = mysql_query($query) or die(mysql_error());
?>
<table border="1">
<tr>
<td align="center">&ordercampo=<?php echo 'marca' ?>&order=<?php echo $ordinaVerso ?>" title="Inverti ordinamento">Marca</td>
<td align="center">&ordercampo=<?php echo 'anno' ?>&order=<?php echo $ordinaVerso ?>" title="Inverti ordinamento">Anno</td>
<td align="center">&ordercampo=<?php echo 'immagine' ?>&order=<?php echo $ordinaVerso ?>" title="Inverti ordinamento">Immagine</td>
</tr>
<?php
while ($results = mysql_fetch_array($rs)) {
echo "<tr>";
$idcontatto = $results['prezzo'];
echo "<td width=\"25%\">$results[marca]</td>";
echo "<td width=\"25%\">$results[anno]</td>";
echo "<td width=\"25%\">$results[immagine]</td>";
echo "</tr>";
} //fine ciclo while
} //fine else nel caso ci sia almeno un contatto nel comune
echo" </table>";
}
}
// Trovo il numero di tutti i record presenti nella tabella
$query = mysql_query("SELECT * FROM prova", $cn);
$quanti = mysql_num_rows($query);
$intero = $quanti / $fine; //Calcolo il numero di pagine totali
$intero = ceil($intero);
?>
Pagina <?php echo $pag; ?> di <?php echo $intero; ?></p>
<?php
//Effettuo un for che mi scrive tutti i link alle relative pagine
for ($x = 1; $x < $intero + 1; $x++) {
if ($x == $pag) {
?>
<?php echo $x; ?> |
<?php
} else {
?>
<?php echo $x; ?> |
<?php
}
}
?>
</p>
<?php
mysql_close($cn); //chiudo la connessione
?>
Ordinamento
Prova
Il problema è che mi ripete la tabella in tutte le pagine, mentre io vorrei solo far ripeter l'intestazione della tabella, per ogni pagina, e decidere quante righe far scrivere nella rispettiva pagina.
Ovviamento se decido di ordinare per esempio per "marca", lo script deve redistribuire le varie righe nelle rispettive pagine, mutandone l'ordinamento.
Grazie mille per il contributo di tutti..
P.S.:ho notato in giro per la rete che non ci sono molti script inerenti questi due argomenti..se ne trovate linkatemeli per favore..