Avatar billede ping_pong Praktikant
30. august 2004 - 14:41 Der er 11 kommentarer og
2 løsninger

lægge tal sammen

Hey der eksperter.

Jeg skal + en hel masse tal fra en sql database.
Databasen ser sådan her ud hvor jeg skal + talene fra.

Feltnavn    -  Datatype    -    Nulværdi  -    Standardværdi
i_alt      - varchar(225)  -      Ja      -          NULL

Kan det lade sig gøre, og hvordan?

-->ping_pong
Avatar billede iss Novice
30. august 2004 - 14:42 #1
SUM() men det er ikke et PHP spørgsmål.
Avatar billede dark-devil Nybegynder
30. august 2004 - 14:48 #2
<?php
include("stien_til_din_databse.php");
$Darkdevil = mysql_query("SELECT * FROM tabel ORDER BY id DESC");
while ($row = mysql_fetch_array($Darkdevil)){
$ettal = 15;
$resultat = $row['feltnavn']+$ettal
echo "$resultat<br>";
}
?>


Noget ala det?
Avatar billede dark-devil Nybegynder
30. august 2004 - 14:49 #3
Nåeh på den måde.. Det ved jeg ikk! :(

..

$resultat = $row['feltnavn']+$ettal
til
$resultat = $row['feltnavn']+$ettal;
Avatar billede fri-hash Nybegynder
30. august 2004 - 14:58 #4
hvis alle værdierne i kolonnen ialt skal lægges sammen kan det som iss skriver gøres i din SQL-query i stedet for at hente alle rækkerne enkeltvis og så lægge dem sammen. Dette kræver dog at datatypen for kolonnen er en numerisk type - eftersom din er en tekstbaseret type (varchar er du nød til at hente alle rækkerne, konvertere til tal og lægge sammen.

Hvis vi går ud fra at der kun står heltal (ingen kommatal eller tekst) i kolonnen kan du gøre sådan:

//connect til database
$res=mysql_query("SELECT i_alt FROM [tabelnavn]");
$sum = 0;
while($row=mysql_fetch_array($res)){
  $sum = $sum + intval($row["i_alt"]);
}
Avatar billede ping_pong Praktikant
30. august 2004 - 14:58 #5
Inde på http://www.co-clan.dk har jeg lavet en masse rækker

Km skal + med hinanden. (alle de der 33 og 30)

-->ping_pong
Avatar billede fri-hash Nybegynder
30. august 2004 - 14:59 #6
$sum vil så indeholde summen af de tal der er i kolonnen "i_alt"
Avatar billede iss Novice
30. august 2004 - 15:00 #7
Stadig er det ikke PHP men MySQL og det er SUM() du vil have, neoget ale SELECT SUM(i_alt) AS sum FROM blabla.
Avatar billede ping_pong Praktikant
30. august 2004 - 15:09 #8
Det skal se sådan her ud http://www.co-clan.dk

Det jeg har lavet er kun tekst ikke noget script eller sum.

-->ping_pong
Avatar billede ping_pong Praktikant
30. august 2004 - 15:35 #9
Har fundet ud af det.

<?php
$result = mysql_query("SELECT SUM(i_alt) AS sum_i_alt FROM tabel");
$sum_i_alt = mysql_result($result, 0, "sum_i_alt");

echo $sum_i_alt;
?>

Tak for hjælpen.

-->ping_pong
Avatar billede ping_pong Praktikant
30. august 2004 - 15:36 #10
iss har fået 15p
fri-hash har fået 15p

Tak for hjælpen

-->ping_pong
Avatar billede fri-hash Nybegynder
30. august 2004 - 15:37 #11
iss, det kan sagtens laves i php og hvis man ikke kender SQL-funktionen SUM, er det vel naturligt nok at lægge spørgsmålet her ... desuden ville du, hvis du læste hans spørgsmål, se at datatypen for den kolonne der indeholder tallene er en varchar, og prøv du at lave en SUM() på en varcharkolonne og se om du får det forventede resultat

pingpong, har du prøvet

$res=mysql_query("SELECT i_alt FROM [tabelnavn]");
$sum = 0;
while($row=mysql_fetch_array($res)){
  $sum = $sum + intval($row["i_alt"]);
}
//$sum indeholder nu resultatet
Avatar billede ping_pong Praktikant
30. august 2004 - 15:42 #12
Det kommer til at stå sådan her på siden.

-->ping_pong
Avatar billede iss Novice
30. august 2004 - 18:57 #13
fri-hash -> MySQL bruger samme metode at komme fra char->int, så om du gør det i PHP eller i MySQL er bedøvenden.....
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