- Home
- Categorie
- Coding e Sistemistica
- PHP
- Limitare i record
-
Limitare i record
Ciao ragazzi houn problema e non riescoa risolverlo, mi servirebbe il vostro aiuto...
In protica ho creato questo codice che richiama dati da database e li distribuisce in questo modo
dato1 dato2 dato3
dato4 dato5 dato6
dato7 dato8 dato9e cosi fino al termine dei dati contenuti nel database.
Ora vorrei richiamare per esempio 15 dati per ogni pagina ed inserire in basso link alltre altre pagine del tipo
in modo da far comparire un link per ogni pagina esistente.
Il codice è il seguente:
<? include("connessione.php"); $db = mysql_connect($db_host, $db_user, $db_password); if ($db == FALSE) die ("Errore nella connessione. Verificare i parametri nel file config.inc.php"); mysql_select_db($db_name, $db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php"); // effettui la query $query = "SELECT * FROM tabella1 where aid = '$aid' ORDER BY pid "; $risultato=mysql_query($query,$db) or die ("Errore nella query:" . mysql_error()); // NO // while($riga=mysql_fetch_array($risultato)) //{ // calcoli il numero delle righe che avra la tabella @$nRighe = (int) mysql_num_rows($risultato)/3 ; // stampi il tag table echo "<table align= center border=\"1\" width= 300 height= 300 >"; for ( $i=0; $i < $nRighe; $i++ ) { // associ una righa $row = mysql_fetch_array($risultato); // stampi il tag di righa echo "<tr>"; // stampi la prima colonna della righa quindi echo " <td> <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'> <b>Nome Video :</b><a> $row[titolo]</a> <b>Visto:</b><br><a>$row[filename]</a> </td> "; // associ la seconda righa $row = mysql_fetch_array($risultato); // stampi la seconda colonna echo " <td> <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'> <b>Nome Video :</b><a> $row[titolo]</a> <b>Visto:</b><br><a>$row[filename]</a> </td> "; // associ la terza righa $row = mysql_fetch_array($risultato); // stampi la seconda colonna echo " <td> <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'> <b>Nome Video :</b><a> </a> <b>Visto:</b><br><a>$row[filename]</a> </td> "; } // chiudi la tabella echo "</table>"; mysql_close($db); ?>
MI sapreste dare una mano?
-
In SQL esiste un comando speciale che permette di limitare il numero di record risultanti da una query
- Restituire i primi n record della query
SELECT * FROM *<tabella>* LIMIT *<n>*;
- Restituire n2 record dopo i primi n1 record della query
SELECT * FROM *<tabella>* LIMIT *<n1>*,*<n2>*;
Per il progetto, potresti passare i valori di n1 e n2 come variabile GET alle pagine interessate.
Ciao
-
Come va inserito?
Ho provato in questo modo ma non riesco a visualizzare niente, mi da un errore...:x
E per le pagine seguenti come faccio?<? include("connessione.php"); $db = mysql_connect($db_host, $db_user, $db_password); if ($db == FALSE) die ("Errore nella connessione. Verificare i parametri nel file config.inc.php"); mysql_select_db($db_name, $db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php"); // effettui la query $query = "SELECT * FROM tabella1 where aid = '$aid' ORDER BY pid limit <15> "; $risultato=mysql_query($query,$db) or die ("Errore nella query:" . mysql_error()); // NO // while($riga=mysql_fetch_array($risultato)) //{ // calcoli il numero delle righe che avra la tabella @$nRighe = (int) mysql_num_rows($risultato)/3 ; // stampi il tag table echo "<table align= center border=\"1\" width= 300 height= 300 >"; for ( $i=0; $i < $nRighe; $i++ ) { // associ una righa $row = mysql_fetch_array($risultato); // stampi il tag di righa echo "<tr>"; // stampi la prima colonna della righa quindi echo " <td> <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'> <b>Nome Video :</b><a> $row[titolo]</a> <b>Visto:</b><br><a>$row[filename]</a> </td> "; // associ la seconda righa $row = mysql_fetch_array($risultato); // stampi la seconda colonna echo " <td> <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'> <b>Nome Video :</b><a> $row[titolo]</a> <b>Visto:</b><br><a>$row[filename]</a> </td> "; // associ la terza righa $row = mysql_fetch_array($risultato); // stampi la seconda colonna echo " <td> <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'> <b>Nome Video :</b><a> </a> <b>Visto:</b><br><a>$row[filename]</a> </td> "; } // chiudi la tabella echo "</table>"; mysql_close($db); ?>
-
Le parentesi '<' e '>' non vanno messe nel codice
[PHP]
$query = "SELECT * FROM tabella1 where aid = " . $aid . " ORDER BY pid";$query = "SELECT * FROM nuke_cpg_pictures where aid = " . $stringa . "ORDER BY pid LIMIT 15";
[/PHP]Controlla anche la sintassi del $query = "... mi sembra che c'è un errore
Per passarei valori alle altre pagine:
Es .../pagina2.php?start=15&stop=30[PHP]
$start = $_GET["start"];
$stop = $_GET["stop"];
//...
$query = "SELECT * FROM nuke_cpg_pictures where aid = " . $stringa . "ORDER BY pid LIMIT " . $start . "," . $stop;
[/PHP]Ciao
-
HO inserito il codice in questo modo ma non funziona....
<? include("connessione.php"); $db = mysql_connect($db_host, $db_user, $db_password); if ($db == FALSE) die ("Errore nella connessione. Verificare i parametri nel file config.inc.php"); mysql_select_db($db_name, $db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php"); // effettui la query $start = $_GET['0']; $stop = $_GET['21']; $query = "SELECT * FROM tabella where aid = '. $stringa . ' ORDER BY pid LIMIT ' . $start . ',' . $stop;
mi viene restituito questo errore:
Parse error: syntax error, unexpected T_STRING in /var/www/virtual/sito.it/mobili/htdocs/pagina.php on line 16Cos'è sbagliato?
E poi un'altra cosa... come faccio a richiamare "aid" dalla pagina?
al momento faccio cosi
http://www.sito.it/pagina.php?stringa=398
-
Prova questa query...nella precedente hai usato sia il doppio apice che quello singolo...a volte crea confusione...infatti il doppio apice non si chideva mai
$query= "SELECT * FROM tabella where aid = ".$stringa." ORDER BY pid LIMIT ". $start .",". $stop;
-
grazie! Ho risolto il problema, ora riesco a visualizzare le immagini come desideravo.
Adesso ho un'altro problemino... il menù per sfogliare le pagine
ovvero vorrei avere un codice che fosse in grado di contare tutti gli elementi desiderati e suddividerli in X pagine dovrebbe comparire cosi in fondo alle pagine
[CENTER]Indietro 1 2 3 avantiAvevo un codice in un'altra pagina ma non riesco ad adatarlo, potreste darmi una mano ad adattarlo?
Il codice vecchi da adattare è evidenziato in rosso[/CENTER]
[LEFT]```
<?
include("connessione.php");
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
// effettui la query
$stringa = $_GET["stringa"];
$start = $_GET["start"];
$stop = $_GET["stop"];
$query = "SELECT * FROM tabella1 where aid = " . $stringa . " ORDER BY pid LIMIT " . $start . "," . $stop;$risultato=mysql_query($query,$db) or die ("Errore nella query:" . mysql_error());
// NO
// while($riga=mysql_fetch_array($risultato))
//{
// calcoli il numero delle righe che avra la tabella
@$nRighe = (int) mysql_num_rows($risultato)/3 ;
// stampi il tag tableecho "<table align= center border="1" width= 300 height= 300 >";
for ( $i=0; $i < $nRighe; $i++ ) {
// associ una righa
$row = mysql_fetch_array($risultato);
// stampi il tag di righa
echo "<tr>";// stampi la prima colonna della righa quindi
echo "
<td>
<img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'>
<b>Nome Video :</b><a> $row[titolo]</a>
<b>Visto:</b><br><a>$row[filename]</a>
</td>
";// associ la seconda righa
$row = mysql_fetch_array($risultato);
// stampi la seconda colonnaecho "
<td>
<img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'>
<b>Nome Video :</b><a> $row[titolo]</a>
<b>Visto:</b><br><a>$row[filename]</a>
</td>
";
// associ la terza righa
$row = mysql_fetch_array($risultato);
// stampi la seconda colonnaecho "
<td>
<img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'>
<b>Nome Video :</b><a> </a>
<b>Visto:</b><br><a>$row[filename]</a>
</td>
";
}
// chiudi la tabella
echo "</table>";?>
<?
if ($start>0)
{ $start_back = $start - $step;
echo "<font face='Verdana' size='3'><a href=http://www.sito.com/pagina.php?aid=$start_back style='text-decoration: none; font-weight:700'>Indietro</a>
-";
}
?>
</td>
<?
$query = "SELECT hits(*) AS tot FROM tabella1 where aid = '$stringa' ";
$risultato = mysql_query($query, $cn);
$row = mysql_fetch_array($risultato);$pages = intval(($riga[tot]-1) / $step)+1;
?>
<td width=20% valign="top">
<?
if ($start + $step < $riga[tot])
{ $start_next = $start + $step;
echo "
<font face='Verdana' size='3'><a href=http://www.sito.com/pagina.php?aid=$start_next.php style='text-decoration: none; font-weight:700'> Avanti</a>
";}
?>
</td>
</tr></table>
</center>
</div>
<br>
<?
mysql_close($cn);?>
Spero che anche in questo caso il vostro aiuto sia prezioso, grazie[/LEFT]
-
Nessuno può darmi una mano?