|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2003
Messaggi: 184
|
Array in php...
Salve a tutti. Ho questo frammento di codice:
$array_let = array("a","b","c","d","e"); while ($row = mysql_fetch_array($array_let)){ ... } All'altezza del while mi da l'errore Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\Apache Group\Apache2\htdocs\file.php on line 38 Qualcuno sa aiutarmi? Thanks |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
bhe te lo dice anche php, la funzione mysql_fetch_array è fatta per scansionare array generati/estratti da una query sql...quindi non è adatta a scorrere un vettore definito da te
for ($i = 0; $i < count($array_let); $i++) fa al caso tuo |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Se vuoi iterare su un array, c'è il foreach che è fatto apposta. Codice:
foreach ($array_let as $let)
{
.... usa $let ...
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Aug 2003
Messaggi: 184
|
sto provando. il problema è che all'interno del foreach devo inserire una procedura di interrogazione di un database e alla fine mi da l'errore
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\Apache Group\Apache2\htdocs\file.php on line 47 ps. Grazie dell'aiuto |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Se non hai possibilità di modificare il php.ini, puoi mettere in testa al tuo script: set_time_limit (0); Che permette di non avere limiti di tempo. Questo però è valido solo se il PHP non sta funzionando in "safe mode". Comunque prima di alterare il limite di tempo, verifica che non ci siano altri problemi o rallentamenti o blocchi di qualunque altro tipo (sul db per esempio).
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Aug 2003
Messaggi: 184
|
sì, infatti. smanettando un pò ho tolto l'errore del tempo. Adesso ho questa situazione:
foreach ($array_let as $let){ $query = "select count(*) from table where id ='a2' && value=1"; $ans = mysql_query($query) or die("Error executing query"); while($row = mysql_fetch_row($ans)) extract($row); echo "$row[0]"; mysql_free_result($ans); che mi procura l'errore Warning: mysql_query(): Unable to save result set in C:\Program Files\Apache Group\Apache2\htdocs\file.php on line 47 Error executing query in corrispondenza della linea $ans = mysql_query($query) or die("Error executing query"); ... Preciso che in MySQL tale interrogazione funziona perfettamente ... Sto sclerando.... |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Aug 2003
Messaggi: 184
|
Così funziona:
foreach ($array_let as $let){ $query = "... $ans = mysql_query($query) or die("Error executing query"); echo "$let"; while($row = mysql_fetch_row($ans)){ extract($row); echo "$row[0] - $row[1]"; } ... } maledetta graffa.... L'unica cosa è che dovendo eseguire moltissime query sfora dal tempo... mi sa che l'unica è allungarlo... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:07.



















