Query werkt niet in php , wel in phpmyadmin??
ik heb een probleempje die ik toch nog iet eerder tegenkwam: Bij het uitvoeren van mijn query via php krijg ik een error 'mysql_fetch_object(): supplied argument is not a valid MySQL result resource ...' u allen wel bekend,
maar als de query toon via een 'echo $sql' en die uitvoer in mysql admin dan geeft hij me wel een resultaat. Het opvragen van de mysql_error() toont dit aan :
Invalid query: 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 '(items.eenheidsprijs*items.eenheden) as totaal FROM pmFees ' at line 1
hier is de query :
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
$sql= 'SELECT pmFees . *,SUM (items.eenheidsprijs*items.eenheden) as totaal FROM pmFees
INNER JOIN pmProjects ON ( pmFees.id = pmProjects.fee_id )
INNER JOIN items ON (items.project=pmProjects.id)
WHERE pmProjects.user_id ='.$werknemer.' and pmProjects.start_date between '.date_to_unixtime($start_date).' and '.date_to_unixtime($end_date).'
GROUP BY pmFees.id';
?>
$sql= 'SELECT pmFees . *,SUM (items.eenheidsprijs*items.eenheden) as totaal FROM pmFees
INNER JOIN pmProjects ON ( pmFees.id = pmProjects.fee_id )
INNER JOIN items ON (items.project=pmProjects.id)
WHERE pmProjects.user_id ='.$werknemer.' and pmProjects.start_date between '.date_to_unixtime($start_date).' and '.date_to_unixtime($end_date).'
GROUP BY pmFees.id';
?>
weet iemand raad? alvast bedankt !
Zo te zien mist je FROM items.
Geen idee of het wat oplevert, maar zo te zien aan de foutmelding doet de fout zich voor bij ( . Haal die spatie tussen SUM en ( eens weg, misschien dat het helpt?
Het is opgelost maar het ergst is nu dat ik niet weet waarom ! zou het kunnen omdat ik een var dezelfde naam heb gegeven in de query als een in de php code? (ik heb zoveel tegelijk gewijzigd dat ik het niet meer weet :'()
Het zit hem namelijk in de GROUP BY die je gebruikt. Je hoort hier alle kolommen op te nemen die in je SELECT voorkomen en niet in een aggregate functie gebruikt worden. Dat doe je nu niet.
En toch werkt het nu ? en de resultaten kloppen :s
Bart schreef op 06.01.2008 14:41:
Dat de resultaten nú kloppen, wil niet zeggen dat de resultaten morgen of overmorgen nog steeds kloppen. Dankzij jouw opzet zal MySQL namelijk het nodige gokwerk moeten doen. Dat kan lang goed gaan, maar het kan ook vreselijk misgaan.En toch werkt het nu ? en de resultaten kloppen :s
Stel de juiste mode in en laat de database nooit gokken. Laat een foute query dan ook mislukken, daar heb je veel meer aan dan aan een stuk onzin.