|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
[PHP] Aiuto su un Paging bastardo !!!!
Devo fare un Paging per un catalogo in PHP e ACCESS, ma devo inserire un "paging" nella pagina, com eposso fare con PHP + ACCESS ???
Io lo so fare solamente con PHP + MySQL e non e' fattibile in quel modo perche' ACCESS non accettail "LIMIT $a,$b". Mi date un punto di partensa oppure dove posso vedere uno gia fatto per poi adattarlo al mio !!! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Su Acesse c'è SELECT TOP N...
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
e quindi come organizzeresti un Paging ???
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
poi una volta letti i record parti a leggere le righe dalla ($elementi_per_pagina * ($numero pagine - 1)) + 1 ciao |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
Scusami ma io non conosco Access e mi sto perdendo nella Stringa SQL, mi puoi fare un esempio???
io in php faccio cosi Codice:
$Rec_Pagina=10;
if(!isset($Start))$Start=0;
$sSql="SELECT * FROM Tabella LIMIT $Start,$Rec_Pagina";
$sSql_Count="SELECT * FROM Tabella";
include("includes/conn_open.php");
$oComm=mysql_query($sSql,$oConn);
$oCommTot=mysql_query($sSql_Count,$oConn);
$Num_Prodotti=mysql_numrows($oCommTot);
$Numero_Pagine=ceil($Num_Prodotti/$Rec_Pagina);
$Pagina_Corrente=ceil(($Start/$Rec_Pagina)+1);
include("includes/conn_close.php");
//paging
echo"<br><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td style=\"font-size:10px; font-family:Arial; font-weight:bold; color:#000000\" align=\"center\">";
if($Numero_Pagine>1){echo"Pagine <img align=\"absmiddle\" src=\"ico/plp.gif\">  ";}
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>";
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
"SELECT TOP ".$Rec_Pagina*$Pagina_Corrente."* FROM Tabella;"
E poi ti muovi avanti di ($Rec_Pagina*($Pagina_Corrente-1)) record... |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Comuqnue mi spieghi come fai a connetterti ad Access con questo codice ? Stai usando la libreria PHP per MySQL...non ti puoi connettere ad Access in quel modo...
Devi usare la libreria ODBC !!! |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
Hai ragione ti ho postato un paging di un altra cosa:
Codice:
<?
$Rec_Pagina=10;
if(!isset($Start))$Start=0;
include("includes/conn_open.php");
$sSql="SELECT * FROM Tabella LIMIT $Start,$Rec_Pagina";
$sSql_Count="SELECT * FROM Tabella";
$oComm=odbc_exec($oConn,$sSql);
$oComm_Count=odbc_exec($oConn,$sSql_Count);
$Num_Prodotti=odbc_num_rows($oComm_Count);
$Numero_Pagine=ceil($Num_Prodotti/$Rec_Pagina);
$Pagina_Corrente=ceil(($Start/$Rec_Pagina)+1);
while(odbc_fetch_row($oComm))
{
$Risultato_1=odbc_result($oComm,"Campo_1");
$Risultato_2=odbc_result($oComm,"Campo_2");
$Risultato_3=odbc_result($oComm,"Campo_3");
//
//qui' HTML che visulaizza il Catalogo
//
}
include("includes/conn_close.php");
//paging
echo"
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td style=\"font-size:10px; font-family:Arial; font-weight:bold; color:#000000\" align=\"center\">
";
if($Numero_Pagine>1){echo"Pagine <img align=\"absmiddle\" src=\"ico/plp.gif\">  ";}
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>
";
?>
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
Scusami ma perceh mi da come valore di ritorno -1 su "odbc_num_rows()" ???
ho trovato questo: Using odbc_num_rows() to determine the number of rows available after a SELECT will return -1 with many drivers. cosa significa ??? |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Signifca che con molti driver non puoi usare odbc_num_rows() per determinare il numero di righe nel risultato...
Ti torna come uso SELECT TOP ? |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
Si ma non so cosa vuole dire avere troppi driver !!!
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non hai "troppi driver"...con "molti driver" è inteso come come "molti driver sul totale dei driver odbc esistenti" e non come "con molti driver installati"...
In pratica con diversi driver odbc esistenti odbc_num_rows() non è supportata e ritorna -1... |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
e quindi com risolvo la cosa dei driver ???
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Senza usare odbc_num_rows()...
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ho visto che fai una SELECT solo per contare gli elementi...
Basta sostituire a $sSql_Count="SELECT * FROM Tabella"; queta query $sSql_Count="SELECT Count(*) As NumProdotti FROM Tabella"; e poi controllare il contenuto del campo NumProdotti... |
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
Quote:
OK funziona tutto ma ora coma faccio per andare avanti e non visualizzare i primi risultati ??? se clicco nel paging mi visualizza in 3 pagina pure i risultati delle prime 2 !!! |
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Codice:
$contatore = 0;
while(odbc_fetch_row($oComm))
{
if(++$contatore <= ($Rec_Pagina*($Pagina_Corrente-1)))
continue;
Ultima modifica di cionci : 30-10-2003 alle 20:42. |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
OK funziona grazie mille!!!!!
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Di niente...
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:31.



















