- Home
- Categorie
- Coding e Sistemistica
- PHP
- Query SELECT limit result
-
no!!!
fai le cose fatte per bene.
anche a me è capitato di far generare ad uno script centinaia di pagine per risolver eun problema. poi ho trovato la soluzione ed ho dovuto perdere parecchio tempo a cancellare gli strafalcioni (rrighe e righe di strafacioni) e sostituirle con la piccola manciata di codice che costituiva la soluzione.
se non hai estrema fretta prova e segui i consigli che ti danno su questo forum e vedrai che arriverai alla soluzione più elegante e performante.
-
Non ho nessuna fretta, io non faccio questo per professione e semplicemente una cosa che mi piace e basta. Vorrà dire che dovrò meglio vedere come avviene il passaggio delle variabili con il method GET. Forse è lì il problema
faccio un esempio pagina1.php e pagina_2.php
pagina1.php $testo="ciao"; print("<a href=\"pagina_2.php\"?testo=$testo\">vai alla pagina 2</a>"); pagina_2.php print("la variabile è:$testo");
I 2 files ovviamente sono inseriti nei tag PHP.
Quando clicco sul link (vai alla pagina 2) dovrei visualizzare LA VARIABILE E' CIAO.Ma nulla non va.
-
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