- Home
- Categorie
- Coding e Sistemistica
- PHP
- Paginazione dati
-
@alice1 said:
Sto provando e riprovando, ma niente....ora ho optato per quest'altra soluzione. Scrivo la pagina intera ```
<?php
$db_host="";
$db_user="";
$db_password="";
$db_database="";Qui suppongo tu inserisca i tuoi dati...
Ma l'errore ora dove te lo da? Hai provato a fare echo di "SELECT AnnoRipresa, Regione FROM fotoaereeverticali WHERE AnnoRipresa LIKE '%$_POST[AnnoRipresa]%' AND Regione LIKE '%$_POST[Regione]%'" e provare la query direttamente da PhpMyAdmin? A volte così si risolvono tanti problemi
-
ciao,
prova a fare:
$rs = mysql_query("SELECT COUNT(id) as numero FROM nome_tabella");
$row = mysql_fetch_array($rs);
echo $row['numero'];tu fai una query chiedendo di calcolare un dato ma a questo dato non dai un nome e quindi risulta difficile poterlo usare.
-
l'errore che mi da è:
Parse error: syntax error, unexpected $end in /home/mhd-01/www.......php on line 137
La linea 137 corrisponde all'ultima linea di codice della prima pagina che ho postato....(ho abbreviato la query, che in realtà coinvolgeva allo stesso modo più campi, per non annoiarvi troppo)
-
Ho provato ad inserire le linee di codice che mi hai suggerito e mi dice:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/mhd-01/www.space2place.org/htdocs/fotografie_aeree_verticali.php on line 30 Errore nella query:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #2' at line 1
-
scusa la domadna banale ma hai sostituito nome_tabella con il nome effettivo della tabella vero?
perchè l'errore che ti da dice che non è stato possibile risolvere la query in quanto è formalmente sbagliata. visto che la query non è sbagliata ci deve essere un altro problema.
-
Il mio stato attuale di 'impanicamento' potrebbe portarmi a compiere errori di qualsiasi genere...ma si, ho sostituito il nome della tabella.
A questo punto il nome è giusto..esiste un campo Id...e allora perchè non mi funziona?
-
@alice1 said:
Il mio stato attuale di 'impanicamento' potrebbe portarmia compiere errori di qualsiasi genere...ma si, ho sostituito il nomedella tabella.
A questo punto il nome è giusto..esiste un campo Id...e allora perchè non mi funziona?Scusami, ma io in questi casi faccio un echo della query e me lariproduco su phpmyadmin, a mio parere è la cosa migliore per togliere iprimi dubbi che la query non vada a buon fine, e porre l'attenzione sualtro.
Prova anche tuNenélla
-
Parse error: syntax error, unexpected $end in /home/mhd-01/www.......php on line 137
Questo errore non salta fuori quando manca il ";" alla fine della riga precedente?
-
di solito esce fuori quando manca qualche chiusura di parentesi
-
E infatti avevo dimenticato di chiudere una }...comunque non funziona.
Continuo a cercare da giorni su internet materiale su come paginare i risultati di una query...provo ad applicare i codici che trovo, adattandoli alle mie esigenze e non mi funziona nulla.....ora ho abbandonato il codice precedentemente postato e sto provando ad elaborarne un altro<?php $db_host="..."; $db_user="..."; $db_password="..."; $db_database="..."; $connessione=mysql_connect($db_host,$db_user,$db_password) or die ("Errore nella connessione al Mysql:" . mysql_error()); mysql_select_db($db_database,$connessione) or die ("Errore nella selezione del db:" . mysql_error()); $numero_record = 3; if(!isset($GET["inizio"])){ $inizio = 0; }else{ $inizio = $GET["inizio"]; } $query_limit="SELECT AnnoRipresa, Id, Foto FROM nome_tabella WHERE AnnoRipresa LIKE '%$_POST[AnnoRipresa]%' order by Id desc limit $inizio, $numero_record" or die ("Errore :" . mysql_error());; $query = mysql_query($query_limit); $select = "SELECT AnnoRipresa, Id, FROM nome_tabella WHERE AnnoRipresa LIKE '%$_POST[AnnoRipresa]%'"; $query2 = mysql_query($select); $numero_record_totali = mysql_numrows($query2); $numero_pagine = ceil($numero_record_totali/$numero_record); $risultato=mysql_query($query_limit,$connessione) or die ("Errore nella query:" . mysql_error()); while($riga=mysql_fetch_array($risultato)) {?> <tr> <td height="22" width="20%"><h4><b>Anno Ripresa</b></td> <td height="22" width="20%"><h4><b>Id</b></td> </tr> <tr> <?php echo "<tr>"; echo "<td>". $riga['AnnoRipresa'] . "</td>"; echo "<td>" . $riga['Id'] . "</td>"; echo "</tr>"; } if($numero_pagine > 1){ for($pagina = 1; $pagina <= $numero_pagine; $pagina++){ if($pagina == $pagina_corrente){ echo"<b>".$pagina."</b>"; }else{ echo"<a href='default.php?inizio=".(($pagina - 1) * $numero_record)."'>".$pagina."</a>"; } } } ?>
Il risultato? Mi fa vedere i primi 3 risultati in una pagina...quando clicco sulla successiva mi compaiono i primi 3 records del DB e così per le altre.....pensavo di esserci riuscita...ma niente anche stavolta.
Vi prego.....c'è qualcuno che può aiutarmi?
-
$GET['inizio'] prova a scriverlo
$_GET['inizio']
-
Niente...è la stessa cosa
-
domanda idiota, ma hai provato a stampare il contenuto di $_GET['inizio']?
-
Non è una domanda stupida, visto che non ci avevo provato...risultato? non mi visualizza nulla, cioè compare la stessa pagina con i risultati e i link ma echo $_GET['inizio'] non mi fa veder niente di nuovo è come se non l'avessi inserito
-
ok... allora, in questo caso e' ovvio che ti faccia sempre vedere i primi tre...
dunque, hai verificato il codice html generato che il link sia scritto giusto con
default.php?inizio=1, default.php?inizio=2, ecc ecc?
se e' scritto giusto, prova ad usare $_REQUEST['inizio'] invece di $_GET['inizio']
Per ultimo, un suggerimento, l'echo che fai del <a href...ecc> non mettere gli apici singoli nell'url, ma i doppi... puoi metterli come ",
echo"<a href="default.php?inizio=".(($pagina - 1) * $numero_record)."">".$pagina."</a>";oppure trasformando la stringa in:
echo '<a href="default.php?inizio='.(($pagina - 1) * $numero_record).'">'.$pagina.'</a>';
-
io la query che tu hai scritto
[php]$query=mysql_query("SELECT AnnoRipresa, Regione FROM fotoaereeverticali WHERE AnnoRipresa LIKE '%$_POST[AnnoRipresa]%'AND Regione LIKE '%$_POST[Regione]%'");[/php]
la trasformerei così[php]$query=mysql_query("SELECT AnnoRipresa, Regione FROM fotoaereeverticali WHERE AnnoRipresa LIKE". $_POST[AnnoRipresa]." AND Regione LIKE " .$_POST[Regione]);
[/php]
vedi se funziona, magari cambiarei anche il like con = quindi verrebbe[php]$query=mysql_query("SELECT AnnoRipresa, Regione FROM fotoaereeverticali WHERE AnnoRipresa =". $_POST[AnnoRipresa]." AND Regione =" .$_POST[Regione]);
[/php]così non esiste motivo per il quale non debba funzionare almeno credo...
-
Allora, ho verificato che il codice html generato e i link sono giusti:
nella prima pagina ho default.php, poi default.php?inizio=3, default.php?inizio=6 ma , tranne che la prima, le altre mi visualizzano records del DB che non corrispondono ai criteri di ricerca. Ho corretto $_GET['inizio'] con $_REQUEST['inizio'], ma niente....a questo punto mi viene un dubbio saranno errate le query...eppure sembrano funzionare perchè i risultati nella prima pagina sono esatti così come il numero delle pagine corrispondenti da cliccare (1,2,3,4,...)
Non so più cosa fare !!!!!
-
uhm... non capisco... io a questo punto mi farei stampare le varie query che genero e le proverei direttamente sul db da phpMyAdmin per vedere che ritornino i dati che mi interessano... dopodiche passerei a cercare e usare qualche classe gia' fatta di paginazione su db! :S
-
Ho finalmente risolto il problema......posto la pagina, forse a qualcuno potrebbe servire.
Comunque grazie a tutti per i consigli<?php $db_host=".........."; $db_user="........."; $db_password="..........."; $db_database="..........."; $connessione=mysql_connect($db_host,$db_user,$db_password) or die ("Errore nella connessione al Mysql:" . mysql_error()); mysql_select_db($db_database,$connessione) or die ("Errore nella selezione del db:" . mysql_error()); $numero_record = 3; if(!isset($_GET["inizio"])){ $inizio = 0; }else{ $inizio = $_GET["inizio"]; } $Foto = (isset($_POST["Foto"]) ? $_POST["Foto"] : base64_decode($_GET["Foto"])); $AnnoRipresa = (isset($_POST["AnnoRipresa"]) ? $_POST["AnnoRipresa"] : base64_decode($_GET["AnnoRipresa"])); $Id = (isset($_POST["Id"]) ? $_POST["Id"] : base64_decode($_GET["Id"])); $query_limit="SELECT AnnoRipresa, Id, Foto FROM nome_tabella WHERE AnnoRipresa LIKE '%".addslashes($AnnoRipresa)."%' order by Id limit $inizio, $numero_record"; $query = mysql_query($query_limit) or die(mysql_error()); $select="SELECT count(*) FROM nome_tabella WHERE AnnoRipresa LIKE '%".addslashes($AnnoRipresa)."%'"; $query2 = mysql_query($select); $numero_record_totali = mysql_fetch_row($query2); $numero_record_totali = $numero_record_totali[0]; $numero_pagine = ceil($numero_record_totali/$numero_record); $pagina_corrente = ceil(($inizio/$numero_record) + 1); $this_Foto = ""; $this_AnnoRipresa = ""; $this_Id = ""; while($riga=mysql_fetch_array($query)) { $this_Foto=$riga['Foto']; $this_AnnoRipresa=$riga['AnnoRipresa']; $this_Id=$riga['Id']; ?> <img src="ridimensiona.php?Foto=<?php print ("$this_Foto");?>"> <?php echo . $this_AnnoRipresa .; echo . $this_Id .; } if($numero_pagine > 1){ for($pagina = 1; $pagina <= $numero_pagine; $pagina++){ if($pagina == $pagina_corrente){ ?> <b><?echo $pagina;?></b> <br> <?php }else{ echo"<a href=\"pagina.php?inizio=".(($pagina - 1) * $numero_record)."&AnnoRipresa=".base64_encode($AnnoRipresa). "&Id=".base64_encode($Id). "&Foto=".base64_encode($Foto)."\">".$pagina."</a>"; } } } ?>