Avatar billede 13thsky Nybegynder
15. august 2005 - 18:11 Der er 12 kommentarer og
1 løsning

simpel fprespørgsel

MySql newbie: Hvorfor virker dette ikke..

$forsp1 =
mysql_query("SELECT count(id), sum(rammepris), sum(pris), art_id, image_id, pris, rammepris FROM Images WHERE image_id='$idarray[$i]' ORDER BY tid");

$forsp2 = mysql_fetch_row($forsp1);
Avatar billede busschou Praktikant
15. august 2005 - 18:29 #1
får du en fejl? det er altid en god ide at sætte fejlbesked på
--
$forsp1 =
mysql_query("SELECT count(id), sum(rammepris), sum(pris), art_id, image_id, pris, rammepris FROM Images WHERE image_id='$idarray[$i]' ORDER BY tid") or die(mysql_error());

$forsp2 = mysql_fetch_row($forsp1);
Avatar billede 13thsky Nybegynder
15. august 2005 - 18:30 #2
Jeg får: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in bla bla...
Avatar billede 13thsky Nybegynder
15. august 2005 - 18:32 #3
Hvis jeg fjerner "count(id), sum(rammepris), sum(pris)," - virker det...

/13
Avatar billede 13thsky Nybegynder
15. august 2005 - 18:36 #4
ligeledes hvis jeg fjerner ", art_id, image_id, pris, rammepris" - virker det...

Det er en syntaks fejl...

But where?
Avatar billede busschou Praktikant
15. august 2005 - 18:38 #5
kan det ikke tænkes at det er fordi den skal vide hvad den skal tage summen af, altså hvis du har 100 rækker , så er der vel 100 forskellige art_id , ergo får du 100 resultater, men count og sum vil være den samme i alle resultaterne
'Jeg kunne forestille mig at den forventer en group by på dine funktioner
Avatar billede kjulius Novice
15. august 2005 - 20:11 #6
Du skal huske, at felter som ikke bruges i aggregate funktions, skal opføres i en GROUP BY så jeg vil tro, at hvis du ændrer den til nedenstående vil den køre:

$forsp1 =
mysql_query("SELECT count(id), sum(rammepris), sum(pris), art_id, image_id, pris, rammepris FROM Images WHERE image_id='$idarray[$i]' GROUP BY art_id, image_id, pris, rammepris ORDER BY tid");
Avatar billede kjulius Novice
15. august 2005 - 20:13 #7
Jeg tror det er det samme busschou er inde på...
Avatar billede busschou Praktikant
15. august 2005 - 20:14 #8
jaa mine ord din kode ;o)
Avatar billede kjulius Novice
15. august 2005 - 20:32 #9
Længe leve samarbejdet! :-)

Min eneste indvending til din tekst var, at teksten "Jeg kunne forestille mig, at den forventer en group by på dine funktioner" kunne fortolkes, som at man skulle opføre funktionerne på group by, og ikke omvendt. Da spørgeren angiver at være newbie, vil det måske ikke være umiddelbart indlysende for ham.
Jeg mente derfor det var bedst at sende et konkret forslag til sql sætning.
Avatar billede 13thsky Nybegynder
15. august 2005 - 20:34 #10
takker... vil i dele?

/13
Avatar billede kjulius Novice
15. august 2005 - 20:37 #11
Gi' du bare dem til busschou, han kom først... og halvdelen af 15 point er 7,5 - det bliver svært... :-)
Avatar billede busschou Praktikant
15. august 2005 - 20:41 #12
det bliver nu ikke så svært, man kan godt få halve point! ;o)
anyway så har du ret, det var nok ikke lige just så godt formuleret
Så var det godt du kom forbi :o))
Avatar billede 13thsky Nybegynder
15. august 2005 - 20:52 #13
takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester