Condividi:
Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!
Moderatori: Anthony47, Triumph Of Steel, archimede
di alice1 » 23/10/06 10:19
Ho un problema nella paginazione dei dati...ho trovato questo interessante articolo
http://php.html.it/articoli/leggi/857/p ... di-dati/3/
mi sembrava tutto chiaro ma mi da questo errore
- Codice: Seleziona tutto
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/mhd-01/www..........php on line 30
la linea 30 corrisponde a
- Codice: Seleziona tutto
$count = mysql_query("SELECT COUNT(id) FROM nome_tabella");
nella quale naturalmente ho inserito i miei dati
Qualcuno mi può aiutare?
-
alice1
- Utente Junior
-
- Post: 28
- Iscritto il: 29/03/06 12:51
di alice1 » 23/10/06 10:41
Scusate ho sbagliato a scrivere la linea di codice 30...
- Codice: Seleziona tutto
$res_count = mysql_fetch_array($count);
questa è quella giusta
-
alice1
- Utente Junior
-
- Post: 28
- Iscritto il: 29/03/06 12:51
di alice1 » 23/10/06 10:50
Ho provato a modificarla con
- Codice: Seleziona tutto
$res_count = mysql_fetch_row($count);
ma niente
-
alice1
- Utente Junior
-
- Post: 28
- Iscritto il: 29/03/06 12:51
di 12 » 23/10/06 10:59
- Codice: Seleziona tutto
$count = mysql_query("SELECT COUNT(id) FROM nome_tabella", $connessione);
dove $connessione sarebbe la variabile che hai valorizzato con i parametri usati da mysql_connect.
ciao ciao
-
12
- Utente Senior
-
- Post: 1413
- Iscritto il: 12/01/04 19:45
- Località: Milèn
di 12 » 23/10/06 10:59
mi sono espresso male.. $connessione sarebbe la variabile che hai valorizzato con mysql_connect, non con i dati che usa
-
12
- Utente Senior
-
- Post: 1413
- Iscritto il: 12/01/04 19:45
- Località: Milèn
di alice1 » 23/10/06 13:08
Sto provando e riprovando, ma niente....ora ho optato per quest'altra soluzione. Scrivo la pagina intera
- Codice: Seleziona tutto
<?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());
$recordxpag = 5;
$query=mysql_query("SELECT AnnoRipresa, Regione FROM fotoaereeverticali WHERE AnnoRipresa LIKE '%$_POST[AnnoRipresa]%'
AND Regione LIKE '%$_POST[Regione]%'");
$risultato=mysql_query($query,$connessione) or die ("Errore nella query:" . mysql_error());
$righe = mysql_num_rows($risultato);
$numpag = ceil($righe/$recordxpag);
include 'paginazione.inc.php';
if ($righe<1)
{
echo "non ci sono dati";
}
else
{
$da = (($pag-1) * $recordxpag);
$a = $da + $recordxpag;
if ($a > $righe){$a=$righe;}
for ($i = $da; $i < $a; $i++)
{
while($riga=mysql_fetch_array($risultato))
{?>
<tr>
<td colspan="2">
<?php
print ("<img src=".$riga[Foto].">");?>
</tr>
<tr>
<td height="22" width="20%"><h4><b>Anno Ripresa</b></td>
<td height="22" width="20%"><h4><b>Regione</b></td>
</tr>
<tr><?php print("<tr>");
print ("<td>$riga[AnnoRipresa]</td>");
print ("<td>$riga[Regione]</td>");
print("</tr>");?>
?>
Questa è la pagina paginazione.inc.php
- Codice: Seleziona tutto
<?php
//numero di link da visualizzare nel menu.
$num_link=5;
$querystring = "";
// Recupero il numero di pagina corrente.
$pag = isset($_GET['pag'])? $_GET['pag'] : 1;
//se ho meno link di quanti ne voglio visualizzare li visualizzo tutti
if($numpag <= $num_links)
{
for ($pagina = 1; $pagina <= $numpag; $pagina++)
{
if ($pagina == $pag)
echo "<a class=\"pag_selected\" href\"=?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
else
echo "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
}
}
//se la pag corrente è tra le prime $num_links/2 --> stampo i primi $nun_links link
else if($pag <= ceil($num_links/2))
{
for ($pagina=1; $pagina<=$num_links; $pagina++)
{
if ($pagina == $pag)
echo "<a class=\"pag_selected\" href\"=?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
else
echo "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
}
echo "<a class=\"pag_link\" href=\"?pag={$numpag}{$querystring}\" title=\"Vai all'ultima pagina\"> >> </a> ";
}
//se la pag corrente è tra le ultime $num_links/2 --> stampo gli ultimi $nun_links link
else if($pag > ($numpag-ceil($num_links/2)))
{
echo "<a class=\"pag_link\" href=\"?pag=1{$querystring}\" title=\"Vai alla prima pagina\"> << </a> ";
for ($pagina=$numpag-$num_links+1; $pagina<=$numpag; $pagina++)
{
if ($pagina == $pag)
echo "<a class=\"pag_selected\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
else
echo "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
}
}
//Altrimenti la pagina corrente è una dell centrali --> stampo i $nun_links/2 link prima ed $nun_links/2 link dopo
else
{
echo "<a class=\"pag_link\" href=\"?pag=1{$querystring}\" title=\"Vai alla prima pagina\"> << </a> ";
for ($pagina = $pag-ceil($num_links/2-1); $pagina <= $pag+ceil($num_links/2-1); $pagina++)
{
if ($pagina == $pag)
echo "<a class=\"pag_selected\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
else
echo "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
}
echo "<a class=\"pag_link\" href=\"?pag=$numpag\" title=\"Vai all'ultima pagina\"> >> </a> ";
} ?>
-
alice1
- Utente Junior
-
- Post: 28
- Iscritto il: 29/03/06 12:51
di archimede » 23/10/06 13:55
Che tipo di dati sono AnnoRipresa e Regione?
Alessandro
-
archimede
- Moderatore
-
- Post: 2851
- Iscritto il: 07/11/02 12:41
- Località: Genova
-
di alice1 » 23/10/06 14:02
Sono entrambi campi di testo
-
alice1
- Utente Junior
-
- Post: 28
- Iscritto il: 29/03/06 12:51
di archimede » 23/10/06 15:13
Allora rivedrei (uso il condizionale perché non sono esperto di MySQL né di PHP) questa istruzione:
- Codice: Seleziona tutto
$query=mysql_query("SELECT AnnoRipresa, Regione FROM fotoaereeverticali WHERE AnnoRipresa LIKE '%$_POST[AnnoRipresa]%' AND Regione LIKE '%$_POST[Regione]%'");
Forse ci vuole qualcosa tipo:
- Codice: Seleziona tutto
$query=mysql_query("SELECT AnnoRipresa, Regione FROM fotoaereeverticali WHERE AnnoRipresa LIKE '%" . $_POST[AnnoRipresa] . "%' AND Regione LIKE '%" . $_POST[Regione] . "%'");
HTH.
Alessandro
Ultima modifica di
archimede su 24/10/06 07:35, modificato 1 volte in totale.
-
archimede
- Moderatore
-
- Post: 2851
- Iscritto il: 07/11/02 12:41
- Località: Genova
-
di alice1 » 23/10/06 15:30
Vedi, prima di inserire la paginazione la query funzionava benissimo così come l'ho postata...l'errtore deve essere nel nuovo codice
-
alice1
- Utente Junior
-
- Post: 28
- Iscritto il: 29/03/06 12:51
di 12 » 23/10/06 22:54
- Codice: Seleziona tutto
$query=mysql_query("SELECT AnnoRipresa, Regione FROM fotoaereeverticali WHERE AnnoRipresa LIKE '%$_POST[AnnoRipresa]%'
AND Regione LIKE '%$_POST[Regione]%'");
$risultato=mysql_query($query,$connessione) or die ("Errore nella query:" . mysql_error());
$righe = mysql_num_rows($risultato);
m a perchè dai mysql_query due volte?
- Codice: Seleziona tutto
$query = "SELECT AnnoRipresa, Regione FROM fotoaereeverticali WHERE AnnoRipresa LIKE '%$_POST[AnnoRipresa]%'
AND Regione LIKE '%$_POST[Regione]%'";
$risultato=mysql_query($query,$connessione) or die ("Errore nella query:" . mysql_error());
$righe = mysql_num_rows($risultato);
.... di solito io faccio una cosa del genere
-
12
- Utente Senior
-
- Post: 1413
- Iscritto il: 12/01/04 19:45
- Località: Milèn
di alice1 » 15/11/06 08:53
Ho finalmente risolto il problema......posto la pagina, forse a qualcuno potrebbe servire.
Comunque grazie a tutti per i consigli
- Codice: Seleziona tutto
<?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>";
}
}
}
?>
-
alice1
- Utente Junior
-
- Post: 28
- Iscritto il: 29/03/06 12:51
di alice1 » 09/01/07 12:43
Recuperando il mio post precedente vorrei chiedere a qualcuno come fare per modificare la visualizzazione della paginazione....mi spiego meglio:
con il codice da me postato io riesco a visualizzare il numero totale dei record e il numero delle pagine (1 2 3 4.....) è possibile sostituire questi ultimi con due < > che mi consentano di navigare avanti e indietro nei risultati?
-
alice1
- Utente Junior
-
- Post: 28
- Iscritto il: 29/03/06 12:51
di alice1 » 09/01/07 14:49
Ho risolto.....posto il codice modificato
- Codice: Seleziona tutto
if($numero_pagine > 1){
if ($pagina_corrente > 1)
echo"<a href=\"pagina.php?inizio=".(($pagina_corrente - 2) * $numero_record)."&AnnoRipresa=".base64_encode($AnnoRipresa).
"&Id=".base64_encode($Id).
"&Foto=".base64_encode($Foto)."\"><<</a>";
if ($pagina_corrente < $numero_pagine)
echo"<a href=\"pagina.php?inizio=".(($pagina_corrente) * $numero_record)."&AnnoRipresa=".base64_encode($AnnoRipresa).
"&Id=".base64_encode($Id).
"&Foto=".base64_encode($Foto)."\">>></a>";
}
-
alice1
- Utente Junior
-
- Post: 28
- Iscritto il: 29/03/06 12:51
Torna a Programmazione
Topic correlati a "[PHP/MySQL]Paginazione dati":
Chi c’è in linea
Visitano il forum: Nessuno e 22 ospiti