Query werkt niet in php , wel in phpmyadmin??

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bart

Bart

06/01/2008 14:08:00
Quote Anchor link
Hoi,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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'
;
?>


weet iemand raad? alvast bedankt !
 
PHP hulp

PHP hulp

14/11/2024 18:18:14
 
- SanThe -

- SanThe -

06/01/2008 14:12:00
Quote Anchor link
Zo te zien mist je FROM items.
 
Bo az

Bo az

06/01/2008 14:22:00
Quote Anchor link
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?
 
Bart

Bart

06/01/2008 14:27:00
Quote Anchor link
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 :'()
 
Joren de Wit

Joren de Wit

06/01/2008 14:27:00
Quote Anchor link
Sowieso is dit een query die normaal gesproken helemaal niet kan. MySQL zal hem helaas wel uitvoeren en onbetrouwbare resultaten terug gaan geven...

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.
 
Bart

Bart

06/01/2008 14:41:00
Quote Anchor link
En toch werkt het nu ? en de resultaten kloppen :s
 
Frank -

Frank -

06/01/2008 15:16:00
Quote Anchor link
Bart schreef op 06.01.2008 14:41:
En toch werkt het nu ? en de resultaten kloppen :s
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.

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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.