- Home
- Categorie
- Coding e Sistemistica
- PHP
- Query SELECT limit result
-
Hai degli apici di troppo:
print("<a href=\"pagina_2.php\"?testo=$testo\">vai alla pagina 2</a>");
deve diventare
print("<a href=\"pagina_2.php?testo=$testo\">vai alla pagina 2</a>");
Non ho avuto il tempo di controllare ma mi sembra dovrebbe essere giusto quello che ho scritto io.
-
intanto emmebar ha ragione per gli apici
inoltre nel file 2 è meglio usare (per ragioni di sicurezza e anche perchè con certe configurazioni di server fatto così non va):
print("la variabile è:$_GET[testo]");
invece di
print("la variabile è:$testo");
-
oppure:
isset($_GET['var'])$variabile=$_GET['var']:$variabile=0; if ($variabile!=0) { print('[url="pagina.php?var='.$variabile.'"]testo'); }
io uso sempre questo sistema. è sicuramente un discorso di abitudine nella programmaizone ma in questo modo vedo il codice più chiaro.
p.s. la prima riga serve per controllare se la variabile passata via get esiste.
-
@riky78 said:
Ti conviene accodare ai link alle pagine tutti parametri che ti servono (per semplificare ti converrebbe usare sempre il GET anche dal form inziale)
Ecco la risoluzione del problema. Ho semplicemente tolto il method _POST ed inserito _GET e la variabile passa.
-
non avevo capito che erano parametri che venivano inviati da un form altrimenti te l'avrei detto subito.
cmq l'importante è che hai risolto
-
Salve a tutti ... in riferimento al codice postato prima ....
<?php $count = mysql_query("SELECT COUNT(*) FROM utenti"); $res_count = mysql_fetch_row($count); $tot_records = $res_count[0]; $per_page = 10; $tot_pages = ceil($tot_records / $per_page); $current_page = (!$_GET['page']) ? 1 : (int)$_GET['page']; $primo = ($current_page - 1) * $per_page; $query_limit = mysql_query("select user_name,citta from utenti LIMIT $primo, $per_page"); print("<div align=\"center\"><table border=\"0\" cellpadding=\"2\" cellspacing=\"2\" width=\"420\">\n"); print("<tr><td height=\"30\" bgcolor=\"#FFFFC8\"><font size=\"1\">**User-name**</font></td> <td height=\"30\" bgcolor=\"#FFFFC8\"><font size=\"1\">**località**</font></td></tr>\n"); while($results = mysql_fetch_array($query_limit)) { print("<tr>\n"); print("<td height=\"30\" bgcolor=\"#B9DCDC\"><font size=\"1\">$results[user_name]</font></td> <td height=\"30\" bgcolor=\"#B9DCDC\"><font size=\"1\">$results[citta]</font></td>\n"); include("pag.php"); print(" </tr>\n </table><tr><td height=\"50\" align=\"center\">$pag</td></tr></table><td height=\"50\" valign=\"bottom\" align=\"center\"></td>\n"); print(" </tr>\n</table>\n</div>\n"); ?>
<?php $pag = "Risultati " . $tot_pages . " ["; for($i = 1; $i <= $tot_pages; $i++) { if($i == $current_page) { $pag .= $i . " "; } else { $pag .= "<a href=\"?page=$i\" title=\"Vai alla pagina $i\">$i</a> "; } } $pag .= "]"; ?>
[/quote]
mi riferisco a
$current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
devo sostituire il valore page esattamente con cosa ?
Questo perchè , (divide i risultati correttamente in varie pagine ) , ma quando andiamo alla pagina seguente o 2 - 3 che dir si voglia non la trova .
Per capire meglio il problema vi rimando alla pagina in questione : http://www.rivamania.it/modules.php?name=Uomini che in effetti è un modulo
Ringrazio anticipatamente per l'aiuto
-
Il link è errato: http://www.rivamania.it/modules.php?page=2
non specifica ?name=Uomini (che penso dovrai aggiungere)
-
Si in effetti avevo provato anche a sostituire '?page' con name=Uomini , ma non lo trova ugualmente
Evidentemente i moduli puntano a qualcosa che mi sfugge o non so ...La domande specifiche sono queste (per chi ha provato questo genere di paginazione) :
La pagina in cui si trova il codice deve ripuntare a se stessa ?
In un modulo ci sono degli accorgimenti o modifiche da fare ?Ringrazio anticipatamente . Chiedo inoltre scusa , ma sono novello
-
Penso che debba mettere
-
Infatti .... ma posto per tutti il risulato dovesse servire a qualcuno
Innanzi tutto le due prime 'page' vanno lasciate intatte in quanto non interessa più di tanto ... lo script verifica in che pagina si trova e decide di portare i risultati nelle pagine successive (sembra vedersela lui)
Da modificare eventualmente c'è <a href '?page' nella paginazione.php che scegliete.
Trattandosi di un modulo avendo una restituzione già complessa '?' al posto del secondo '?' sostituite &.
Comunque ripeto , a me funziona così anche perchè del codice principale ho cambiato molto, ma magari a voi potrebbe non andarePs altra constatazione ... nella prima query SELECT COUNT(id) from nome:tabella WHERE ... tendete a specificare un campo e non (*) ci si guadagna un po' e mi dà la senzazione di maggiore correttezza.
Ringrazio infine Gorka per la gentilezza e l'aiuto