Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Övriga serverspråk > PHP

addera siffror med MYSQL och PHP

Buffee
Buffee

Gradering

#21097

Hejsan jag behöver lite hjälp här, ska förklara... Jag har en tabell i Mysqlen där det är siffror som ska adderas med varandra. Men jag vet inte hur jag ska få ut alla siffrorna på "bordet". Tex om summan i tabell 1 har 52 och i tabell 2 är den 30 så skall det adderas. Men jag har fastnat, jag vet inte hur jag får ut båda 2 så jag kan addera.

Ex:

$sql=("SELECT * FROM siffror")or die(mysql_error());
$result=mysql_query($sql);

 

while($rows=mysql_fetch_array($result)){

$addering = $rows['pris']+;

echo $addering;

}

Fast om man tar till ett (+) tecken så blir det bara error... :/ Om jag inte har ett + så kommer siffrorna upp 5230 men vad jag vill är att dom skall adderas så det står 82 där istället..

Svårt att förklara kände jag, hoppas att ni förstår och kan hjälpa :)


ID: #21097 | Skapades: 2011-08-03 20:51:06 | Tråden har 7 svar och har lästs 298 gånger.

voigtan
voigtan

Gradering

#21098

Och pris är vad för datatyp?

$addering skall vara 0 i början, vad du gör nu är ju att skriva ut $addering för varje loop, vilket du inte vill, du kan ju köra SQL SUM(pris) direkt (du skall ALDRIG köra med * för övrigt)

$sql=("SELECT * FROM siffror")or die(mysql_error());
$result=mysql_query($sql);
$addering = 0;
 
 
while($rows=mysql_fetch_array($result)){
$addering += $rows['pris'];
}
 
echo $addering;
kan du köra förmodligen (annars få du ändra raden $addering = $rows['pris'] + $addering;) (och se till att det är rätt datatyp).

 

annars kör direkt i din SQL:

$sql=("SELECT SUM(pris) as total FROM siffror")or die(mysql_error());
$result=mysql_query($sql);
$addering = 0;
 
 
while($rows=mysql_fetch_array($result)){
$addering = $rows['total'];
}
 
echo $addering;
(while behöver du förmodligen inte men med mina PHP kunskaper så får du fixar det till något vettigare (även om det bara är en gång den kommer loopas) så kan man förmodligen lösa det smidigare.

 

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 3 augusti 2011. Läs tidigare inlägg.
Redigerades av voigtan den 3 augusti 2011. Läs tidigare inlägg.
ID: #21098 | Skapades: 2011-08-03 20:57:44

Buffee
Buffee

Gradering

#21099

Pris är INT(11) i mysqlen, det första exemplet fungerade suveränt!:) Men om jag har Pris INT(11) och Antal INT(11) och skall muliplicera det och sen plussa med de andra? Ex: Om tabell1 är Pris = 50 & Antal = 2 och tabell 2 är Pris = 20 & Antal = 4 hur gör jag då om jag vill ha det såhär: 50*2+20*4=180 ?

ID: #21099 | Skapades: 2011-08-03 21:10:49

Buffee
Buffee

Gradering

#21100

Jag kom på det!:)

$sql=("SELECT * FROM siffror")or die(mysql_error()); 
$result=mysql_query($sql);

 $summa = 0; while($rows=mysql_fetch_array($result)){

 $addering = $rows['pris'];

 $addering2 += $rows['antal'];

 $summa = $addering*$addering2;

 } echo $summa;

 

Tack för hjälpen Voigtan!

ID: #21100 | Skapades: 2011-08-03 21:51:47

Har du två tabeller i databasen eller är det en tabell med två kolumner (pris och antal)?
Har svårt att förstår vad du menar med tabell 1 och tabell 2. När du pratar om tabell 1 och 2, menar du inte
post 1, 2... osv i tabellen?


Du vill alltså multiplicera kolumnen pris med kolumnen antal för varje post i tabellen?


Exempel

---

1 | 50x20
2 | 20x40

 

Är det korrekt? 

Kan man inte läsa och förstå min kod, kan man inte programmera - Christher Lenander
ID: #21101 | Skapades: 2011-08-03 22:02:35

Buffee
Buffee

Gradering

#21102

Yes precis chrille :)

ID: #21102 | Skapades: 2011-08-03 22:30:31

Citerar Buffee:

Yes precis chrille :)

 

Denna SQL gör precis det du vill göra.

SELECT SUM(pris*antal) 'total' FROM siffror LIMIT 1



Om vi har en tabell som ser ut så här och kör SQL:en ovan, så kommer du få resultatet 180,
och det är vad du vill ha ut, om jag förstått allt rätt.

ID Pris Antal
-------------
1 | 50 | 2

2 | 20 | 4
-------------

Fullständig kod.

$query = mysql_query("SELECT SUM(pris*antal) 'total' FROM siffror LIMIT 1");
echo mysql_result($query, 0, 'total');

Kan man inte läsa och förstå min kod, kan man inte programmera - Christher Lenander
Redigerades av chrillemeter den 4 augusti 2011. Läs tidigare inlägg.
Redigerades av chrillemeter den 3 augusti 2011. Läs tidigare inlägg.
ID: #21103 | Skapades: 2011-08-03 23:09:11

Buffee
Buffee

Gradering

#21104

Tack det fungerade också!:)

ID: #21104 | Skapades: 2011-08-04 19:42:57
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy