Newsgroup: it.comp.www.php
Titolo: errore in mysql_fetch_array: perché in phpmyadmin va?

ciao, non riesco a risolvere il problema, riuscite a darmi una mano?
all'interno dello script la query:
SELECT SUM(anno_01) AS 'a1', SUM(anno_02) AS 'a2', SUM(anno_03) AS
'a3', SUM(anno_01)+SUM(anno_02)+SUM(anno_03) AS 'tot' FROM interventi,
minlap_istat.comuni, minlap_istat.province, minlap_istat.regioni WHERE
id_cap='1' AND codice LIKE '05__' AND 
comuni.id
=interventi.istat_c AND
comuni.id_prov=
province.id
 AND province.id_reg=regioni.cod AND
regioni.cod='08';
produce il Warning:
mysql_fetch_array(): supplied argument is not a valid MySQL result
resource in g:\www\minlap\triennale\scheda.php on line 147
ho provato a copiarla con un echo ed incollarla in phpmyadmin, che è
il modo in cui in genere risolvo gli errori che faccio con le query, ma
- ed è questo quello che non capisco! - lì la query funziona
perfettamente.
cosa può essere che non va?
mi sa che non aiuti molto, ma:
php 4.3.10
phpmyadmin 2.6.1
mysql 4.1.9
apache 1.3.33
...attendo speranzosa... ^__^
grazie!

 cosa può essere che non va?
Il parametro che dai alla fetch array dev'essere il valore di ritorno 
della mysql_query: non è che gli stai passando qualcos'altro^

Alessandro Topo Galileo ha scritto:

ciao!
intanto grazie della risposta :-)
direi che la sintassi di mysql_fetch_array() mi pare esatta, ma ad ogni
buon conto ti posto il codice:
$rs=mysql_query($qry, $conn);
mysql_close($conn);
if ($sch == 2 AND $tri<3)
{
	while ($row = mysql_fetch_array($rs))
	{
		echo "
[... eccetera eccetera]
la connessione è a posto, perché altre query "passano" senza
problemi.
Ho fatto intanto un tentativo e modificando la query perché interroghi
UN SOLO db, tutto va bene:
SELECT SUM(anno_01) AS 'a1', SUM(anno_02) AS 'a2', SUM(anno_03) AS
'a3', SUM(anno_01)+SUM(anno_02)+SUM(anno_03) AS 'tot' FROM interventi
WHERE id_cap='1' AND codice LIKE '05__';
funziona.
allora mi viene il fondato dubbio che sbaglio a fare l'interrogazione a
due db diversi. Ma in cosa? e poi come mai con phpmyadmin funziona?
bah...

 bah...
continuo a provare:
ho modificato un po' la query, in modo da specificare entrambi i
database, ma non è servito:
La query adesso è:
SELECT SUM(anno_01) AS 'a1', SUM(anno_02) AS 'a2', SUM(anno_03) AS
'a3', SUM(anno_01)+SUM(anno_02)+SUM(anno_03) AS 'tot' FROM
minlap.interventi, minlap_istat.comuni, minlap_istat.province,
minlap_istat.regioni WHERE id_cap='1' AND codice LIKE '05__' AND
comuni.id
=interventi.istat_c AND comuni.id_prov=
province.id
 AND
province.id_reg=regioni.cod AND regioni.cod='08';
per completezza, la conn è questa:
$conn= mysql_connect($db_host, $db_user, $db_password)
		or die ("Errore nella connessione. Verificare i parametri nel file
config.inc.php");

 [... eccetera eccetera]
Sposta la mysql_close dopo il while, in un punto in cui il db non ti 
serva più.

 viviana il 08/09/2006 15.07 ha scritto:

fatto.
ma ancora non va :-(
ps: in teoria non dovrebbe servire tenere la connessione aperta, una
volta che il recordset è stato memorizzato in una variabile, vero?
anche se comunque valeva la pena fare il tentativo: vanno fatti
tutti... quando si brancola!

 tutti... quando si brancola!
Allora sembra proprio non gli piaccia il multi-database (mi risultava 
infatti che non si potessero fare join multidb, ma mi dici che 
lanciandola a mano la query va...). Prova a mettere una
echo mysql_error();
subito dopo la query per avere almeno la descrizione dell'errore.

 subito dopo la query per avere almeno la descrizione dell'errore.
mio caro Topo Galileo,
"con la faccia nostra sotto i piedi Vostri e Vi potete anche
muovere"...
ho trovato il problema ed era una di quelle cose che poi ti prenderesti
a schiaffi!
Cioè, fino ad un certo punto, perché phpmyadmin mi ha portato fuori
strada:
sul secondo database l'utente che usavo per la connessione NON aveva
privilegi necessari, gliene ho dati (è bastato naturalmente il SELECT)
e tutto è andato a posto! Il fatto è che quando inserivo direttamente
la query a mano ovviamente (ovviamente ORA, acc!) ero l'utente root e
quindi facevo tutto senza problemi.
Mi dispiace di averti fatto perdere tempo, ma grazie davvero per
l'aiuto, e a buon rendere :-)
ps: cercando di capirci qualcosa ho fatto un giro in rete per capire
bene questa cosa del multidb: si può fare, senza problemi, con questa
sintassi.
Capire se vale la pena di fare db separati è invece una vecchia
questione, su cui non ho ancora le idee chiare, ma questa è un'altra
storia...

 storia...
buono a sapersi, io evito di avere più db ma non si sa mai cosa ci si 
può trovare davanti.