visualizzare i risultati di due query

$agenzie = @mysql_query("SELECT nomeprov, COUNT(*) AS numage
FROM province, agenzia
WHERE agenzia.provincia = province.nomeprov
GROUP BY nomeprov LIMIT $offset, $rowsPerPage");

$annunci = @mysql_query("SELECT nomeprov,COUNT(*) AS numann
FROM province,agenzia,annuncio 
WHERE id_agenzia=agenziaid AND agenzia.provincia=province.nomeprov 
GROUP BY nomeprov ");

devo visualizzare una colonna con le "nomeprov" una con "numage" e una con "numann".

se le stampo così

while ($annuncio = mysql_fetch_array($annunci) and $agenzia = mysql_fetch_array($agenzie)) 
{
    $nomeprov = htmlspecialchars($agenzia['nomeprov']);
   $numage = htmlspecialchars($agenzia['numage']);              
   $numann = htmlspecialchars($annuncio['numann']);
   echo "<tr><td width=\"30%\">$nomeprov</td>";
   echo "<td>$numann</td>";
   echo "<td>$numage</td></tr>";
}

i valori di numann sono sbagliati come posso fare????

inviato 10 anni fa
micetta
X 0 X
$annunci = mysql_query("SELECT nomeprov,COUNT(*) AS numann
FROM province,agenzia,annuncio 
WHERE id_agenzia=agenziaid AND agenzia.provincia=province.nomeprov 
GROUP BY nomeprov ") or die ("Errore:  ".mysql_error());

Se esegui direttamente su mysql quella query, i risultati sono corretti?esce quello che ti aspetti?

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

se le eseguo separatamente i risultati sono corretti

 :bye:

risposto 10 anni fa
micetta
X 0 X

Scusa, non ci avevo fatto caso, ho notato solo ora che utilizzi 2 query, potresti raggrupparle in una unica:

$agenzie = mysql_query("SELECT nomeprov, COUNT(campoNumage) AS numage, count(campoNumann) as numann
FROM province, agenzia,annuncio
WHERE id_agenzia=agenziaid AND agenzia.provincia = province.nomeprov
GROUP BY nomeprov LIMIT $offset, $rowsPerPage") or die (mysql_error());

while ($annuncio = mysql_fetch_array($annunci)) 
{
    $nomeprov = htmlspecialchars($annuncio['nomeprov']);
   $numage = htmlspecialchars($annuncio['numage']);              
   $numann = htmlspecialchars($annuncio['numann']);
   echo "<tr><td width=\"30%\">$nomeprov</td>";
   echo "<td>$numann</td>";
   echo "<td>$numage</td></tr>";
}

due cose:

1) FROM province, agenzia,annuncio gli dici di ceracre in tre tabelle, ma alla fine ne metti in relazione solo 2:

agenzia.provincia = province.nomeprov

se questa id_agenzia=agenziaid fosse l'altra relazione, specifica le tabelle a cui appartengono quei campi

2)COUNT(campoNumage) nelle parentesi della funzione count() al posto di 'campoNumage' sostituirai il nome del campo su cui dovrai fare l'operazione...

Spero che così riuscirai a risolvere...

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

non riesco proprio a trovare una soluzione.

Le due query separate funzionano se le unisco i risultati sono sbagliati.

Non c'è un modo per far stamapre i risultati di due query insieme???

risposto 10 anni fa
micetta
X 0 X

Posta la struttura delle 3 tabelle

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

agenzia:

id_agenzia,provincia

annuncio:

id,agenziaid(corrispondo a agenzia.id_agenzia), provincia

--->>le province di annuncio potrebbero essre inferiori a quelle di agenzia e viceversa

province:

nomeprov (corrisponde a agenzia.provincia)

 ???

risposto 10 anni fa
micetta
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda