Avatar billede krydset Nybegynder
19. november 2003 - 22:41 Der er 25 kommentarer og
1 løsning

bruge sum i en query

Jeg har prøvet at bruge sum i en query, men det går ikke helt så godt, er der nogen der kan fixe det..

mit bud var
$res = mysql_query("select vare_id, antal, vare_navn, pris SUM(varer.pris) from kurv, varer  where vare_id = varer.id and bruger_id='".$_SESSION['unikt_id']."'") or die(mysql_error());

Men den giver den her fejl:

Jeg syns jeg har prøvet at sætte den ale steder og lige meget hjælper det

//krydset
Avatar billede kaptajnkemo Nybegynder
19. november 2003 - 22:42 #1
Du skal bruge GROUP BY når du laver sum...

Hvilken fejl giver den dig?
Avatar billede krydset Nybegynder
19. november 2003 - 22:44 #2
You have an error in your SQL syntax near 'SUM(pris) from kurv, varer where vare_id = varer.id and bruger_id='3fbbda72b802' at line 1
Avatar billede krydset Nybegynder
19. november 2003 - 22:44 #3
Hvorn, vil du bruge group by i den
Avatar billede kaptajnkemo Nybegynder
19. november 2003 - 22:46 #4
mysql_query("select vare_id, antal, vare_navn, SUM(varer.pris) AS TotalPris from kurv, varer  where vare_id = varer.id and bruger_id='".$_SESSION['unikt_id']."'") or die(mysql_error());

Har rettet fejlen nu... Lå i SUM.
Er længe siden jeg har lavet mySQL... i alm. sql skal man altid bruge group by ved sum, men det kan du måske godt få lov at undlade....
Avatar billede krydset Nybegynder
19. november 2003 - 22:51 #5
Nu får jeg den her fejl :-O

Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause
Avatar billede kaptajnkemo Nybegynder
19. november 2003 - 22:52 #6
ah ;)

Det var det jeg sagde ;)

Du skal lave en GROUP BY...
Avatar billede krydset Nybegynder
19. november 2003 - 22:54 #7
Har ingen anelse om hvor den skal ind, har aldrig rodet med det her før :-O

Kan du ikke sætte den ind
Avatar billede kaptajnkemo Nybegynder
19. november 2003 - 22:56 #8
Det afhænger jo lidt ah hvad du har tænkt dig. Men så vidt jeg kan regne ud vil du gerne have en totalpris på de varer man har bestilt. Hvis det er rigtigt skal du have noget i stil med det her:

select vare_id, antal, vare_navn, SUM(varer.pris * antal) AS TotalPris from kurv, varer  where vare_id = varer.id and bruger_id='".$_SESSION['unikt_id']."' GROUP BY vare_id
Avatar billede kaptajnkemo Nybegynder
19. november 2003 - 22:59 #9
en lille ekstra kommentar ;)

Tror du vil have glæde af at vende dig til at skrive SQL keywords med kapitaler. F.eks.

SELECT myField FROM myTable WHERE myTable.myfield = myOtherTable.myOtherField AND myDate < NOW() ORDER BY myField
Avatar billede krydset Nybegynder
19. november 2003 - 23:00 #10
Jeg skal have en totalpris over de varer der ligger i kurven. varepriserne over kurven henter den i varer.pris der ligger alle priserne, nu er det bare at få sum ind, ovenstående eks gav parse error
Avatar billede kaptajnkemo Nybegynder
19. november 2003 - 23:01 #11
Det er lidt nemmere hvis du skriver fejlen, så jeg kan se hvor i strengen fejlen opstår.
Avatar billede krydset Nybegynder
19. november 2003 - 23:05 #12
Bu har jeg prøvet det her, men det giver intet output heller ingen fejl

mysql_query("select vare_id, antal, vare_navn, SUM(varer.pris) AS val from kurv, varer  where vare_id = varer.id and bruger_id='".$_SESSION['unikt_id']."' GROUP BY pris") or die(mysql_error());
Avatar billede kaptajnkemo Nybegynder
19. november 2003 - 23:09 #13
Kør den sådan her, dvs. uden die() ellers får du jo ingen sql-fejl at se ;)

mysql_query("select vare_id, antal, vare_navn, SUM(varer.pris) AS val from kurv, varer  where vare_id = varer.id and bruger_id='".$_SESSION['unikt_id']."' GROUP BY pris

Under alle omstændigheder virker det lidt mærkeligt på mig at du vælger at bruge GROUP BY på pris, hvorfor det?
Avatar billede krydset Nybegynder
19. november 2003 - 23:19 #14
Helt ærligt hvad vil du have efter GROUP BY pris
Avatar billede kaptajnkemo Nybegynder
19. november 2003 - 23:24 #15
Dit query skal køres sådan her så du er sikker på at få at vide hvad der går galt med SQL-sætningen.

mysql_query("select vare_id, antal, vare_navn, SUM(varer.pris) AS val from kurv, varer  where vare_id = varer.id and bruger_id='".$_SESSION['unikt_id']."' GROUP BY pris");

Mit 2. spørgsmål er hvorfor du vælger at lave Group BY på pris. Jeg kan slet ikke se nogen mening i at summere dem for derefter at vise dem enkeltvis. Er faktisk ikke helt sikker på om det overhovedet kan lade sig gøre. Hvis jeg forstår dig ret skal du lave GROUP BY vare_id i stedet.
Avatar billede krydset Nybegynder
19. november 2003 - 23:28 #16
Den du gav udskriver intet har prøvet flere forskellige i grup by det var bare den jeg var nået til
Avatar billede kaptajnkemo Nybegynder
19. november 2003 - 23:29 #17
jeg tror vi snakker helt forbi hinanden. Hvad mener du med "den jeg var nået til" ?
Avatar billede rackbox Nybegynder
19. november 2003 - 23:34 #18
Du skal naturligvis være sikker på, at de data, der står i dine tabeller er korrekte. Samtidig er det ikke muligt at blande SUM(felt) med andre felter uden en group by.
Avatar billede kaptajnkemo Nybegynder
19. november 2003 - 23:35 #19
hehe... det er altid godt med et resume.
Tak rack ;)
Avatar billede krydset Nybegynder
19. november 2003 - 23:36 #20
He he vi fixede det over mirc, og jeg er glad for det virker..

res. er flg

$res = mysql_query("select SUM(pris) as val from kurv, varer where vare_id = varer.id and bruger_id ='".$_SESSION['unikt_id']."'") or die(mysql_error());
Avatar billede kaptajnkemo Nybegynder
19. november 2003 - 23:39 #21
jamen det var da godt ;)
Avatar billede kaptajnkemo Nybegynder
19. november 2003 - 23:39 #22
Og tusinde tak for points... Jeg er glad for du kunne bruge min hjælp :(
Avatar billede rackbox Nybegynder
19. november 2003 - 23:42 #23
kaptajnkemo-> Jaja - det skulle vise sig, at den gennemgående fejl var, at der var ulovlige værdier i databasen; en tekststreng kan jo sjældent multipliceres med NULL og så meget andet end en fejl eller NULL som svar :-p
Avatar billede kaptajnkemo Nybegynder
19. november 2003 - 23:45 #24
nej og kombinerer man det med de syntaksfejl der var i koden til at starte med så kommer det aldrig til at virke....

Men nok om det... Jeg får mine points i himlen :)
Avatar billede rackbox Nybegynder
19. november 2003 - 23:46 #25
Det må man da håbe ;-) Hvis det var muligt må du da gerne få ½-delen af mine points for denne - idet du egentlig også har svaret korrekt på spørgsmålet...
Avatar billede kaptajnkemo Nybegynder
19. november 2003 - 23:51 #26
he he... Det er sq ikke points som sådan der er mit problem. Jeg har ingen intentioner om at ligge på toplisten og jeg har points nok i forvejen til når jeg selv har brug for hjælp, det er mere princippet. På en eller anden måde indikerer det jo at manden ikke mener mit svar var rigtigt.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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