Utilizzando un ciclo while così strutturato come devo cambiare il tuo codice:
while ($rigo=@mysql_fetch_array ($query)){ // classico cicletto per "estrarre" i records
$a1 = $rigo ["id"];
Utilizzando un ciclo while così strutturato come devo cambiare il tuo codice:
while ($rigo=@mysql_fetch_array ($query)){ // classico cicletto per "estrarre" i records
$a1 = $rigo ["id"];
una domandina...nn sulla paginazione...ma...mysql_result nn è meno efficente di mysql_fetch_row\assoc\array ?
xche da quanto ho visto crea 1 oggetto
uhm...conviene secondo me passara a mysql_fetch_XXXXX (che nn è XXXWhen working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than mysql_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.
[...]
Recommended high-performance alternatives: mysql_fetch_row(), mysql_fetch_array(), and mysql_fetch_object().)
:P
ciapzzzzz
cmq bella la pillola![]()
VM su SSD da 5$! https://www.digitalocean.com/?refcode=f6925c7f0ddb
:master:Originariamente inviato da }gu|do[z]{®©
et voilà...non è così difficile vero?
Spero che questa pillola sia + chiara e semplice della precedente...
prprio facile non è !!
dovro studiare ancora parecchio !!![]()
cmq bravo !
ciao vorrei chiederti qualche delucidazione sull'utilizzo di querystring.Originariamente inviato da }gu|do[z]{®©
A
//inizializzo come stringa vuota una variabile querystring che
//appendo sempre ai miei link... quindi la lascio vuota se non mi
//serve, la modifico come spiegato più avanti se mi serve
$querystring = "";
//eventuale modifica alla query string
//OMESSA PER ORA
/
Per la modifica [FACOLTATIVA] della querystring:
poniamo che abbia fatto un motore di ricerca e lo script mi serva per paginare i risultati. E' chiaro che se la mia pagina prenderà una variabile chiamata $chiave che indichi la chiave di ricerca, questa vada passata A TUTTE LE PAGINE della stampa dei risultati, e non solo alla prima pagina.
Come fare?
Semplicissimo:
if ($chiave != '') $querystring .= "&chiave=$chiave";
in questo modo la querystring appesa ai link non è + vuota, e fa il suo dovere.
Sorge però un potenziale problema al di fuori di questo file, ovvero nello script che lo include: la variabile letta da query string è passata con il metodo GET... invece il form per il motore di ricerca che abbiamo ipotizzato potrebbe funzionare con il metodo POST.. avremmo quindi che nella prima pagina la variabile proverrà da un POST, nelle seguenti da un GET... la cosa ci crea qualche problema con le recenti versioni PHp in quanto di default è disattivata la registrazione delle variabili globali e dovremmo estrarre la variabile dall'opportuno array.. ma dato che questo array potrebbe variare, come fare? Beh.. semplice... se non siete certi che il metodo con cui passate variabili usate nell'interrogazione del database sia il metodo GET... nella pagina in cui è inclusa la paginazione usate assegnazioni del genere prima di usare queste variabili:
$chiave = isset($_POST['chiave'])? $_POST['chiave'] : $_GET['chiave'];
Ovviamente dovrete farlo per ogni variabile cambiando la parola "chiave" con il nome della variabile in questione.
E questo è davvero tutto sulla creazione del menu dinamico di link alle pagine.
allora io ho un form dove immetto i paramentri per la ricerca. eso richiama un file che fa effetivamente tutti i controlli e la ricerca sul zDB in esso ho messo la paginazione e tutto funziona corretamente ma ovviamente come avevi gia' detto devo passare la chiave di ricerca. ma dove devo mettere
if ($chiave != '') $querystring .= "&chiave=$chiave";
nel file paginazione o nel file dove lo includo in coda?
ggg
dove ho scritto:Originariamente inviato da f108
ciao vorrei chiederti qualche delucidazione sull'utilizzo di querystring.
allora io ho un form dove immetto i paramentri per la ricerca. eso richiama un file che fa effetivamente tutti i controlli e la ricerca sul zDB in esso ho messo la paginazione e tutto funziona corretamente ma ovviamente come avevi gia' detto devo passare la chiave di ricerca. ma dove devo mettere
if ($chiave != '') $querystring .= "&chiave=$chiave";
nel file paginazione o nel file dove lo includo in coda?
//eventuale modifica alla query string
//OMESSA PER ORA
![]()
Raga io sono niubbo, ho questo codice, me lo compilate per vedere 10 risultati per pagina? ho provato 100 volte seguendo la guida di html.it ,ma non riesco, thnx!!!
<?include ("../include/config.php");?>
<html>
<head>
<title>Lista Strutture</title>
</head>
<body bgColor=#FFFFFF background="http://www.luccaonweb.it/com_background_gw.gif" text="#006699" link="#006699" vlink="#006699" alink="#006699" leftMargin=0 topMargin=0 marginwidth="0" marginheight="0" ><table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td height="48">
<table width="901" border="0" cellspacing="0" cellpadding="0" height="140" bgcolor="#006699">
<tr>
<td colspan="3" height="97"></td>
</tr>
<tr>
<td background="http://www.luccaonweb.it/menualto.gif" height="30" width="19%"> </td>
<td height="30" width="54%" background="http://www.luccaonweb.it/menualto.gif"><object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="482" height="35">
<param name=quality value=high>
<param name="SCALE" value="exactfit">
<param name="SRC" value="http://www.luccaonweb.it/public/data/default/menualtoheader.swf">
<embed src="http://www.luccaonweb.it/public/data/default/menualtoheader.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="482" height="35" scale="exactfit">
</embed>
</object></td>
<td height="30" width="27%" nowrap background="http://www.luccaonweb.it/menualto.gif"> </td>
</tr>
</table>
</td>
</tr>
</table>
<table width="664" border="0" cellspacing="0" cellpadding="0">
<tr>
<td></td>
<td> </td>
</tr>
</table>
<table width="900" border="0">
<tr>
<td width="140"> </td>
<td width="750"> <div align="left"><font color="#E00128" size="2" face="Verdana, Arial, Helvetica, sans-serif"></font><font color="#006699" size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="cerca.php">Cerca
Immobili</a></font></div></td>
</tr>
</table>
<table width="900" border="0">
<tr>
<td width="150"> </td>
<td width="716"><table width="731" height="32" border=0 cellpadding=2 cellspacing=0>
<tbody>
<tr bgcolor=#ff9900>
<td width="724" height=10 bgcolor=#cc0000></td>
</tr>
<tr bgcolor=#ffcc66>
<td bgcolor="#006699"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">Lista
Strutture </font></td>
</tr>
<tr bgcolor=#ffffff>
<td height=2 bgcolor="#FFFFFF"></td>
</tr>
</tbody>
</table>
<?
$bg1="#CCCCCC";
$bg2="#CCCCFF";
?>
<table width="724" border="0" cellpadding="8" cellspacing="8">
<tr>
<td width="64" align="center" bgcolor="#FFFFFF"><font color="#006699" size="-2" face="Verdana, Arial, Helvetica, sans-serif">Foto</font></td>
<td width="146" align="center" bgcolor="#FFFFFF"><font color="#006699" size="-2" face="Verdana, Arial, Helvetica, sans-serif">Nome
Struttura</font></td>
<td width="177" align="center" bgcolor="#FFFFFF"><font color="#006699" size="-2" face="Verdana, Arial, Helvetica, sans-serif">Tipologia
Struttura </font></td>
<td width="169" align="center" bgcolor="#FFFFFF"><font color="#006699" size="-2" face="Verdana, Arial, Helvetica, sans-serif">Comune</font></td>
<td width="172" align="center" bgcolor="#FFFFFF"><font color="#006699" size="-2" face="Verdana, Arial, Helvetica, sans-serif">Provincia</font></td>
</tr>
<?
$query = "SELECT ID, foto1, nome_struttura, tipologia_struttura, comune, provincia, paga FROM immobili ORDER BY immobili.tipologia_struttura ";
$result = mysql_query($query, $conn);
while ($row=mysql_fetch_array($result)) {
switch ($row[paga]) {
case "0":
$pagina = "view.php";
break;
case "1":
$pagina = "view2.php";
break;
case "2":
$pagina = "view3.php";
break;
}
echo '<tr>';
echo '<td bgcolor="#FFFFFF" align="center">[img]../../public/clienti/foto/'.$row[foto1].'[/img]</td>';
echo '<td bgcolor="#FFFFFF" align="center"><font color="#006699" size="-2" face="Verdana, Arial, Helvetica, sans-serif">'.$row[nome_struttura].'</td>';
echo '<td bgcolor="#FFFFFF" align="center"><font color="#006699" size="-2" face="Verdana, Arial, Helvetica, sans-serif">'.$row[tipologia_struttura].'</td>';
echo '<td bgcolor="#FFFFFF" align="center"><font color="#006699" size="-2" face="Verdana, Arial, Helvetica, sans-serif">'.$row[comune].'</td>';
echo '<td bgcolor="#FFFFFF" align="center"><font color="#006699" size="-2" face="Verdana, Arial, Helvetica, sans-serif">'.$row[provincia].'</td>';
echo '</tr>';
}
?>
</table>
<?mysql_close($conn);?>
<table width="731" height="32" border=0 cellpadding=2 cellspacing=0>
<tbody>
<tr bgcolor=#ff9900>
<td width="726" height=10 bgcolor=#cc0000></td>
</tr>
<tr bgcolor=#ffcc66>
<td bgcolor="#006699"></td>
</tr>
<tr bgcolor=#ffffff>
<td height=2 bgcolor="#FFFFFF"></td>
</tr>
</tbody>
</table> </td>
</tr>
</table>
</p></body>
</html>
mi sono trovata ad usare querystring in quanto la query che dovevo paginare aveva delle limitazioni un po' complesse(ma neanche tanto)
Facciamo un esempio di clausule where:
"id_aut=$autore AND id_cat=$categoria AND (state='v' OR state='d')"
dove $autore e $categoria sono valorizzata dalla form che richiama la query.
quindi passare via GET quella stringa cosi' com'e' non e' possibile perche' gli "=" creano delle ambiguita'.
cosi' io ho risolto la cosa in questo modo, che molto probabilmente non e' la cosa piu' elegante da fare , ma funziona...:quipy:
ho trasformato la stringa del where cambiando i caratteri che creano ambiguita' con altri caratteri che non facciano parte della where nel file paginazione e poi nel file dove include paginazione faccio l'operazione opposta.
in paginazione.inc.php
$chiave = $where_def;
$chiave = str_replace('=','[',$chiave);
$querystring .="&where_def=".urlencode($chiave);
mentre nel file search.php
$where_def = str_replace('[','=',$where_def);
$where_def = str_replace('\\','',$where_def);
$where_def=urldecode($where_def);
str_replace('\\','',$where_def); questo serve per togliere gli \ di protezione agli apici che mette automaticamente il browser
spero che la cosa vi sia risulta abbastanza chiara...![]()
ggg
Non riesco proprio a far funzionare la tua paginazione... ma perché non hai usato gli array? Purtroppo non ho mai usato mysql_result e non so come estrapolare i dati dal database con quel comando.
Ammettendo che ho tre campi da estrarre qual'è il codice che devo inserire dove tu hai detto?
for ($i = $da; $i < $a; $i++)
{
Codice per visualizzare i dati estrapolati
}
Originariamente inviato da f108
mi sono trovata ad usare querystring in quanto la query che dovevo paginare aveva delle limitazioni un po' complesse(ma neanche tanto)
Facciamo un esempio di clausule where:
"id_aut=$autore AND id_cat=$categoria AND (state='v' OR state='d')"
dove $autore e $categoria sono valorizzata dalla form che richiama la query.
quindi passare via GET quella stringa cosi' com'e' non e' possibile perche' gli "=" creano delle ambiguita'.
cosi' io ho risolto la cosa in questo modo, che molto probabilmente non e' la cosa piu' elegante da fare , ma funziona...:quipy:
ho trasformato la stringa del where cambiando i caratteri che creano ambiguita' con altri caratteri che non facciano parte della where nel file paginazione e poi nel file dove include paginazione faccio l'operazione opposta.
in paginazione.inc.php
$chiave = $where_def;
$chiave = str_replace('=','[',$chiave);
$querystring .="&where_def=".urlencode($chiave);
mentre nel file search.php
$where_def = str_replace('[','=',$where_def);
$where_def = str_replace('\\','',$where_def);
$where_def=urldecode($where_def);
str_replace('\\','',$where_def); questo serve per togliere gli \ di protezione agli apici che mette automaticamente il browser
spero che la cosa vi sia risulta abbastanza chiara...![]()
grazie del contributo... ma non ho capito perchè non hai utilizzato semplicemente urlencode e hai fatto anche gli str_replace... urlencode da soo non bastava? :master:
vabbè.. io annoto.. un giorno farò la terza versione della pillola![]()
Sono riuscito a far funzionare la paginazione con mysql_result ma ho notato una qualche instabilità quando apre la pagina iniziale: mi da una serie di errori del tipo:
Warning: mysql_result() [function.mysql-result]: Unable to jump to row -10 on MySQL result index 3 in /home/athenami/public_html/Autori in erba/amministra/prova2.php on line 128
Ma se clicco sui numeri delle pagine si stabilizza tutto e mi elenca tutti i record regolarmente compresi quelli della pagina iniziale se ritorno indietro.
Da cosa dipende?