|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
[PHP] Sostituire il LIMIT su ACCESS !!!
Devo usare ACCESS come Database per il mio catalogo ho la necessita' di fare un Paging come posso fare ???
con MySQL + PHP faccio cosi: Codice:
<?
// Risultati visualizzati per pagina
$Rec_Pagina=10;
if(!isset($Start))$Start=0;
// Estrazione Dati e conteggio righe totali nella tabella
include("includes/conn_open.php");
$oComm=mysql_query("SELECT * FROM Articoli LIMIT $Start,$Rec_Pagina",$oConn);
$oCommTot=mysql_query("SELECT * FROM Articoli",$oConn);
$Num_Prodotti=mysql_numrows($oCommTot);
$Numero_Pagine=ceil($Num_Prodotti/$Rec_Pagina);
$Pagina_Corrente=ceil(($Start/$Rec_Pagina)+1);
while($oRead=mysql_fetch_array($oComm))
{
$Codice=$oRead["Codice_Articolo"];
$Nome=$oRead["Nome_Articolo"];
-----------
------
--
}
include("includes/conn_close.php");
// paging
echo"<br><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td style=\"font-size:12px; font-family:Arial; font-weight:bold; color:#000000\" align=\"center\">";
if($Numero_Pagine>1)
{
for($Pagina=1;$Pagina<=$Numero_Pagine;$Pagina++)
{
echo"[ <a href=?Start=";
echo(($Pagina-1)*$Rec_Pagina);
echo">";
if($Pagina==$Pagina_Corrente)
{
echo"<font color=\"#cc0000\">$Pagina</font>";}else{echo"<font color=\"#000000\">$Pagina</font>";
}
echo"</a> ]  ";
}
}
echo"</td></tr></table>";
// paging
?>
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
in access la LIMIT si chiama TOP. che seleziona i primi n elementi di una query. funziona piu o meno cosi:
Codice:
select top 10 * from table ciao |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
include("includes/conn_close.php");
Lo sai che esistono anche le funzioni invece di includere il codice in questo modo ? Metti tutto in un include solo e poi richiami le varie funzioni direttametne da codice... Devi usare una connessione ODBC ad Access... Le funzioni le trovi sull'help... |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
Non capisco cosa vuoi dire in risposta alla mia domanda !!!
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Dico che devi usare le funzioni odbc di php per Accedere ad Access, la risposta al tuo problema di query ti era già stata data sopra...
Ultima modifica di cionci : 03-10-2003 alle 07:36. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
Non mi e' stata data perche come dice sopra posso solo decidere quante righe vedere partendo sempre dalla 0 in poi,
ma se io con un click vado da 0 a 10 come faccio poi a ripartire da 10 a 20 e da 20 a 30 e cosi via ??? |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Avanzi di N righe fino a quella che ti interessa... Dal punto di vista della complessità della query non cambia niente perchè comunque anche la limit deve calcolare i risultati precedenti...
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
"SELECT TOP 10 * FROM MyTable"
forse sono io che non capisco ma mi potresti fare un esempio pratico di come fai per: al primo click voglio estrarre le righe dalla 0 alla 10, al secondo click voglio estrarre le righe dalla 10 alla 20, al terso click voglio estrarre le righe dalla 200 alla 30, e cosi via......... io so l'ultima riga che ho conteggiato ogni click, ma sulla stringa SQL come faccio a dirgli di ripartire dalla righa 'n' alla 'm' ??? "SELECT ??? * FROM MyTable" .........., bo! |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
N = numero di righe per pagine
K = numero attuale della pagina "SELECT TOP ".($N*$K)." * FROM Pippo;" Ora quando vai a visualizzare i risultati non parti dalla prima riga a visualizzarli, ma dalla riga ($N*$K)+1...per le righe precedenti fai avanzare solamente il recordset... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:28.



















