Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  10 1175
Hei. Har en .php side som skall vise data ifra .SQL

PHP kode:

Kode

<?php
//Steg 1: Tilkobling og valg av database
	$tilkobling_02 = mysql_connect("localhost",									"ertsadat_admin",
			"******");
// var_dump($tilkobling);
	mysql_select_db("ertsadat_mine_sider", $tilkobling_02);
				
// Steg 2: Kjør en SQL-spørring mot databasen
	$sql_02 = "SELECT id, kroner, in_ut, aar ";
	$sql_02 .= " FROM regnskap_inn_ut WHERE aar='2012' AND in_ut='1'";
	$resultat_02 = mysql_query($sql_02, $tilkobling_02);
				
// Behandle resultatet med PHP og HTML
	while ( $rad_02 = mysql_fetch_array ($resultat_02) ) {
	$id_02=$rad_02['id'];
	$kroner_02=$rad_02['kroner'];
	$in_ut_02=$rad_02['in_ut'];
	$aar_02=$rad_02['arr'];
echo "<br />ID: $id_02 - Kroner: $kroner_02 - Inn, Ut: $in_ut_02";
				
//Steg 4, lukk databasetilkoblingen
	mysql_close($tilkobling_02);
	}
	?>
Istede for at "Echo"skall skrive ut radene ønsker jeg at den skall oppsummere rad "kroner".
Noen som kan hjelpe meg med det?
legg til inni while-løkken:
$sumKroner += $rad_02['kroner'];

Og så skriver du den ut der du vil. Denne vil plusse på antall kroner for hver gang den går gjennom løkken.
Takk. Tester

Da er den testet. Ser ut til å virke med at den legger sammen. Men den printer ut fortsatt rader.
Er det 3 rader i databasen som har verdi 500 på "kroner" hver, vil den printe slik:
500
1000
1500

Jeg vill bare vise 1500. Hvordan kan jeg gjøre det?
enkel løsning er å bruke en slik spørring i stede for:

Kode

SELECT id, in_ut, aar,
    (SELECT max(kroner) from regnskap_inn_ut WHERE aar='2012' AND in_ut='1') as kroner
FROM regnskap_inn_ut WHERE aar='2012' AND in_ut='1'
litt stygt, men funker. Finnes sikkert mye finere måter å gjøre det på
Takk for forslag
Men denne printer ut 3 rader med 500 hver...
Trenger å legge dem sammen og printe en rad istede...
Vet ikke om jeg forsto deg rett, men bruk SUM istedet for MAX på etse sitt eksempel.
http://www.w3schools.com/sql/sql_func_sum.asp

Sitat av Restyle Vis innlegg
Vet ikke om jeg forsto deg rett, men bruk SUM istedet for MAX på etse sitt eksempel.
http://www.w3schools.com/sql/sql_func_sum.asp
Vis hele sitatet...
$sumKroner += $rad_02['kroner']; som foreslått fungerer forsåvidt fint, men du må naturligvis skrive det ut ETTER whileløkka har kjørt for å kun printe det ut én gang.
Sist endret av Restyle; 5. september 2012 kl. 15:39. Grunn: la ved link
Med SUM istedet for MAX kom jeg litt lengre.
Printern nå ut 1500
Men det er fortsatt 3 rader.
Flytt echo ut av while. Altså rett over siste linja, etter "}".
Forøvrig er det sikkert bedre å bruke forslaget til SteinOveHelset. Akkurat slik du hadde det, men en echo etter while der også.

Har aldri kodet php, men tipper noe slikt som dette:

Kode

<?php 
//Steg 1: Tilkobling og valg av database 
    $tilkobling_02 = mysql_connect("localhost",                                    "ertsadat_admin", 
            "******"); 
// var_dump($tilkobling); 
    mysql_select_db("ertsadat_mine_sider", $tilkobling_02); 
                 
// Steg 2: Kjør en SQL-spørring mot databasen 
    $sql_02 = "SELECT id, kroner, in_ut, aar "; 
    $sql_02 .= " FROM regnskap_inn_ut WHERE aar='2012' AND in_ut='1'"; 
    $resultat_02 = mysql_query($sql_02, $tilkobling_02); 
                 
// Behandle resultatet med PHP og HTML 
	$sumKroner = 0;
    while ( $rad_02 = mysql_fetch_array ($resultat_02) ) { 
    $id_02=$rad_02['id']; 
    $kroner_02=$rad_02['kroner'];
    $sumKroner += $rad_02['kroner'];	
    $in_ut_02=$rad_02['in_ut']; 
    $aar_02=$rad_02['arr']; 
                 
//Steg 4, lukk databasetilkoblingen 
    mysql_close($tilkobling_02); 
    } 
  echo "<br />ID: $id_02 - Kroner: $sumKroner - Inn, Ut: $in_ut_02"; 
?>
Litt usikker på om du trenger å initialisere en int i php eller om du faktisk kan kjøre += på en null-verdi.
Sist endret av Restyle; 5. september 2012 kl. 15:57.
Takk alle sammen. Forsto det nå
Da fungerer det
group by er fint
SELECT id, SUM(kroner), in_ut, aar
FROM regnskap_inn_ut WHERE aar='2012' AND in_ut='1'
GROUP BY id, in_ut, aar
vil bare si at du må være litt bedre til å formulere hva du ønsker å få til. Jeg ble meget forvirret av forklaringen din i hvertfall. Vil og si at jeg er veldig fan av å gjøre slike ting fort i SQL-spørringen fremfor å gjøre det i PHP-koden med mindre man har veldig god grunn. Synes rett og slett det lager mye ryddigere kode. - Med andre ord ville jeg brukt lor3ntz sin kode.