Newsgroup: it.comp.www.php
Titolo: Numero di righe tornate da una query

La query è questa:
SELECT COUNT(
t1.id
)
        FROM t1 INNER JOIN t2 USING (c1,c2)
        WHERE t2.c3 like "%123456%"
Vorrei sapere quante righe torna e allora ho scritto:
$nRighe = mysql_result(mysql_query($my_query),0);
Mi torna il warning:
Warning: mysql_result(): supplied argument is not a valid MySQL result
resource in...
Altre query in cui non ci sono JOIN funzionano invece correttamente.
La stessa query, lanciata su un client mySql torna il valore giusto.
Sarà che è il primo giorno di lavoro dopo le ferie ma non riesco a
trovare la soluzione.
Qualche suggerimento?
-- 
Stefano

 Vorrei sapere quante righe torna e allora ho scritto:
Usa la funzione mysql_num_rows():
http://it.php.net/manual/en/function.mysql-num-rows.php
-- 
Federico

SL ha scritto:

http://it.php.net/manual/it/function.mysql-num-rows.php
g4b0

 
http://it.php.net/manual/en/function.mysql-num-rows.php
che nel caso della query in questione ritornera' 1 e non il valore di
COUNT(
t1.id
)
in effetti e' improprio parlare di numero di righe ritornate dalla
query, perche' in questo caso e' la query che ritorna nel COUNT(
t1.id
)
il numero righe che corrispondono ai criteri di ricerca.
usando mysql_num_rows() bisognerebbe costruire la query di modo da
selezionare tutte le righe, senza il COUNT(), ma se non c'e' bisogno di
fetchare quelle righe per utilizzare nel codice e' un inutile spreco di
risorse

 COUNT(
t1.id
)
Acc... hai perfettamente ragione. Ho risposto troppo in fretta, senza
badare troppo alla query :-(
-- 
Federico

Vorrei sapere quante righe torna
Una.
Leonardo
-- 
Dawn is near, the time is short (Human aircraft! Hard to port!)
We eight reindeers of the night work as one in silent flight.
Let not one damn house pass by (Who taught that guy how to fly?)
Each year sees more girls and boys: how many of them can we bring toys?

 resource in...
Ci riprovo.
Visto l'errore, la funzione mysql_query() non sembrerebbe restituire
un Id-Resource valido.
Prova a mostrare errore con qualcosa del genere:
<?php
...
$my_query = 'SELECT COUNT(
t1.id
)
             FROM t1 INNER JOIN t2 USING (c1,c2)
             WHERE t2.c3 like "%123456%"';
 
$rst = mysql_query($my_query) or die(mysql_error());
$rows = mysql_result($rst, 0);
...
?>
-- 
Federico

 Una.
Giusto, ho usato termini sbagliati, come ha giustamente fatto notare
T_PAAMAYIM_NEKUDOTAYM (che vuol dire? č indiano? :-) ).
-- 
Stefano

 Prova a mostrare errore con qualcosa del genere:
<code>
Domani provo, grazie.
-- 
Stefano

 risorse
Infatti.
Per la cronaca, la pagina dove è questa parte di codice è la classica
visualizzazione di record in forma tabellare.
La query che torna il numero di righe serve a visualizzare il totale in
un header di tabella in cui c'è scritto i.e. "1-15 di 32452".
Nella query successiva verranno lette solo 15 righe usando LIMIT e non
le oltre 32000 (o più) righe.
-- 
Stefano

 Vorrei sapere quante righe torna e allora ho scritto:
Ti hanno già risposto, per cui evito di farlo, ma ...
"(ri)tornare" in italiano è un verbo intransitivo.
Il fatto che "to return" in inglese sia transitivo
(ie: "The query returns 3 rows") ha poca rilevanza,
perchè "to return" si traduce con "restituisce"
(anch'esso transitivo). Non cero con "(ri)torna".
Davvero, è orribile !!!
ciao, f.

 Davvero, è orribile !!!
Sono d'accordo con te ma ormai (per me) è d'abitudine usarlo nel gergo
tecnico. Non mi sognerei mai di usarlo mentre parlo con la gente.
-- 
Stefano

 T_PAAMAYIM_NEKUDOTAYM (che vuol dire? è indiano? :-) ).
RTFM ;)

 RTFM ;)
Quale M?
Ho cercato ma non ho trovato. E l'impressione di non cogliere ciň che č
chiaro non mi piace :-(
-- 
Stefano

SL ha scritto:

$ php -r "::"
:)

 $ php -r "::"
Bello.
Abbiamo detto a php di eseguire del codice e questo codice genera un
errore dal quale capiamo che T_PAAMAYIM_NEKUDOTAYIM = "::" e che
PAAMAYIM_NEKUDOTAYIM dovrebbe essere un tipo come ad esempio STRING.
Altro?
-- 
Stefano

SL ha scritto:

non eri tu quello che volevi sapere cosa volesse dire T_PAAMAYIM_NEKUDOTAYIM ?
e che non riusciva a trovarlo sul M?

 e che non riusciva a trovarlo sul M?
Sì
E tu sei quello che mi dato l'hint per capirci qualcosa? :-)
Rimane il dubbio su cosa significa. 
-- 
Stefano

 Rimane il dubbio su cosa significa. 
invece e' palese :)
qualcosa mi dice che dopo una veloce ricerca con google
avrai le idee molto piu' chiare ;)

 avrai le idee molto piu' chiare ;)
L'ho fatta diverse volte ma non ha mai prodotto risultati confortanti.
Tutte le volte tranne quella che ho fatto adesso.
Prima cercavo "PAAMAYIM_NEKUDOTAYIM", adesso ho cercato "PAAMAYIM
NEKUDOTAYIM".
Enigma risolto.
-- 
Stefano

SL ha scritto:

per i posteri :)
it.php.net/tokens

 PAAMAYIM_NEKUDOTAYIM dovrebbe essere un tipo come ad esempio STRING.
solo una cosa, non e' un tipo: e' un operatore

 solo una cosa, non e' un tipo: e' un operatore
grazie per la correzione.
-- 
Stefano