Strano problema con query
Inviato: mer 3 ott 2012, 11:21
Giorno a tutti
Ho un problema con una query..
Il problema è stano perchè prima di eseguire la query la faccio stampare a video e se la eseguo manualmente da mysql funziona mentre se la eseguo con php mi dà questo errore:
Questo è il codice
Sono diverse le query, prima cerco quello dove devo cercare, e poi faccio un'altra query che conta su quello che ho trovato...
Questo è la query che mi stampa a video
Se la eseguo da mysql funge....
Sapete dirmi perchè e/o come risolvere???
Grazie
Ho un problema con una query..
Il problema è stano perchè prima di eseguire la query la faccio stampare a video e se la eseguo manualmente da mysql funziona mentre se la eseguo con php mi dà questo errore:
Codice: Seleziona tutto
Errore in queryagg
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
' at line 1
Codice: Seleziona tutto
print "Trovo i dipendenti che hanno fatto più aggiunstamenti e più errori";
$query="select id-1 AS DIP_PREC,id AS DIP_AGG, dataora , id_dipendente , id_trattamento from appuntamenti where (id_trattamento ='A2') OR (id_trattamento='A3');";
print $query."<BR><BR>";
$query=mysql_query($query);
if($query==FALSE) print "ERRORE";
else
{
for($i=0;$i<mysql_num_rows($query);$i++)
{
$dip_pre=mysql_result($query,$i,'DIP_PREC');
$dip_agg=mysql_result($query,$i,'DIP_AGG');
if(isset($pre)) $pre= $pre.'OR (appuntamenti.id="'.$dip_pre.'")';
else $pre='(appuntamenti.id="'.$dip_pre.'")';
if(isset($agg)) $agg= $agg."OR (appuntamenti.id='".$dip_agg."')";
else $agg="(appuntamenti.id='".$dip_agg."')";
}
$queryagg="select count(*)AS TOT,dipendenti.nome from appuntamenti, dipendenti where (id_dipendente=dipendenti.id) AND ( $agg ) group by dipendenti.nome;<BR>";
$querypre="select count(*)AS TOT,dipendenti.nome from appuntamenti, dipendenti where (id_dipendente=dipendenti.id) AND ( $pre ) group by dipendenti.nome; <BR>";
print "<br>AGGIUNSTA: \t $queryagg<br>SBAGLIANO: \t $querypre<br>";
$queryagg=mysql_query($queryagg);
$querypre=mysql_query($querypre);
if($queryagg == FALSE) print "<br>Errore in queryagg<br>".mysql_error();
else
{
print "Conteggio dei dipendenti che hanno riparato:<TABLE>";
print "<TH>DIPENDENTE</TH><TH>TOTALE</TH>";
for($i=0;$i<mysql_num_rows($queryagg);$i++)
{
$conteggio=mysql_result($queryagg,$i,'TOT');
$nome=mysql_result($queryagg,$i,'nome');
print "<TR><TD>$nome</TD><TD>$conteggio</TD></TR>";
}
print "</TABLE>";
}
if($querypre == FALSE) print "<br>Errore in querypre<br>".mysql_error();
else
{
print "Conteggio dei dipendenti che hanno sbagliato:<TABLE>";
print "<TH>DIPENDENTE</TH><TH>TOTALE</TH>";
for($i=0;$i<mysql_num_rows($querypre);$i++)
{
$conteggio=mysql_result($querypre,$i,'TOT');
$nome=mysql_result($querypre,$i,'nome');
print "<TR><TD>$nome</TD><TD>$conteggio</TD></TR>";
}
print "</TABLE>";
}
}
Questo è la query che mi stampa a video
Codice: Seleziona tutto
select count(*)AS TOT,dipendenti.nome from appuntamenti, dipendenti where (id_dipendente=dipendenti.id) AND ( (appuntamenti.id="200876")OR (appuntamenti.id="200877")OR (appuntamenti.id="201254")OR (appuntamenti.id="201255")OR (appuntamenti.id="201884")OR (appuntamenti.id="201888")OR (appuntamenti.id="201900")OR (appuntamenti.id="201905")OR (appuntamenti.id="202130")OR (appuntamenti.id="202342")OR (appuntamenti.id="202639")OR (appuntamenti.id="202980")OR (appuntamenti.id="203253")OR (appuntamenti.id="205453")OR (appuntamenti.id="205465")OR (appuntamenti.id="205877")OR (appuntamenti.id="206097")OR (appuntamenti.id="206338")OR (appuntamenti.id="207138")OR (appuntamenti.id="207678")OR (appuntamenti.id="207682")OR (appuntamenti.id="208651")OR (appuntamenti.id="208689")OR (appuntamenti.id="208690")OR (appuntamenti.id="208740")OR (appuntamenti.id="208997")OR (appuntamenti.id="208998")OR (appuntamenti.id="210075")OR (appuntamenti.id="200744") ) group by dipendenti.nome;
Sapete dirmi perchè e/o come risolvere???
Grazie