Avatar billede oomalkeoo Nybegynder
17. januar 2010 - 14:17 Der er 13 kommentarer og
1 løsning

Regnskab m. multipaging

Hejsa Eksperter,

Jeg er igang med at lave et simpelt regnskab via mysql/php hvilket også virker helt som det skal. Jeg har 3 felter der bliver hevet ud af mysql'en dato, vare samt beløb. Ud fra dette ting har jeg lavet et while der lister de 3 ting op og danner et nyt felt der hedder saldo der er beregnet sådan: $i += ($row[price] * $row[antal]);

Har også prøvet at lege med det, men bliver ved med at få Saldo($i) til kun at være beregnet af enhederne på side 2(aktuel side) hvilket jo er forkert. hmm!

Håber nogle kan hjælpe med lidt hints, jeg giver gerne mere kode selvfølgelig hvis det mangles. Spørg gerne!
Avatar billede intenz Novice
17. januar 2010 - 15:26 #1
Vi ved jo ikke 'side 2' dækker over, så det gør det lidt svært at svare på.

Skyldes det bare at du ikke har hentet alle værdierne ud af din database? Så den kun har dem der vises på 'side 2'?
Avatar billede oomalkeoo Nybegynder
17. januar 2010 - 16:14 #2
Til at starte med blev alle poster jo hentet ud, lige nu som sagt omkring 50 poster, hvilket er for meget, så vil lave limit på, men så tager den jo kun $i for de aktuelle poster?
Avatar billede oomalkeoo Nybegynder
17. januar 2010 - 16:29 #3
tror det gælder om at sætte $i med alle poster indtil hvor de poster starter med den limit, måske :(
Avatar billede intenz Novice
17. januar 2010 - 16:49 #4
Jeg forstår ikke hvad du mener i #3.

Men ja, hvis du vil lægge tal sammen for alle poster, skal alle poster selvfølgelig også hentes ud af databasen.

Ellers må du lave en seperat mysql kald der henter det hele ud og summerer.
Du kan så med fordel bruge mysqls sum() i den stil her

$res = mysql_query("SELECT SUM(price*antal) AS total FROM _din_tabel_ WHERE _et_eller_andet");
$row = mysql_fetch_assoc($res);
$total = $row['total'];
Avatar billede oomalkeoo Nybegynder
17. januar 2010 - 16:57 #5
Har jo total sum i min tabel som ses her http://img27.imageshack.us/img27/5396/110017165533salarytable.png

Har dato, antal, vare, pris samt sum..

Tror hvis jeg vil lave en LIMIT på dem så skal jeg finde en måde at få værdien af $i til at stemme ja
Avatar billede majbom Novice
17. januar 2010 - 18:10 #6
kan du ikke forklare lidt bedre, hvad det er du gerne vil?
Avatar billede zynzz Praktikant
17. januar 2010 - 19:57 #7
Altså det du søger er en måde at lave flere sider på?

Hvis ja skal du over og bruge LIMIT i din query:

SELECT * FROM dintabel LIMIT 0, 10
Dette vil vise de første 10 rækker

SELECT * FROM dintabel LIMIT 5, 5
Dette vil vise række 6, 7, 8, 9, og 10
Avatar billede zynzz Praktikant
17. januar 2010 - 20:02 #8
Eller er det fordi du vil lave en total sum på alle rækkerne ?

$TotalSum = 0;
while(){
$TotalSum += $row['sum'];
}

echo "Ialt bliver det: ". $TotalSum;
Avatar billede oomalkeoo Nybegynder
17. januar 2010 - 20:28 #9
Jeg prøver at lave et godt eksempel så i kan se hvad jeg mener :) - Har selv fået en ide, mh
Avatar billede oomalkeoo Nybegynder
17. januar 2010 - 21:18 #10
Nu har jeg lavet en lille side som viser lidt problematikken, der er i alt 2 styks som jeg lige ser det.

Selve tælleren burde starte på sidste side, da det er de nyeste posteringer der er lavet ud fra datoen. Så den bør hedde Side: 1 2 3 [4] istedet.

Andet problem som jeg prøvede at beskrive, dog uden held, vil jeg prøve at vise istedet. Som i ser er hver side's saldo beregnet ud fra de aktive poster, men hvordan får jeg den til at beregne det korrekt som den burde?

Der er både den version som jeg lige har lavet, og det korrekte skema der passer med hvad saldo burde være, men hvor gør jeg?

Nederst er der kildekoden så der kan kigges!
Avatar billede oomalkeoo Nybegynder
17. januar 2010 - 21:27 #11
..prøver lige med et link også :)

http://9l.dk/dev/
Avatar billede oomalkeoo Nybegynder
17. januar 2010 - 22:49 #12
Må hellere hoppe i kassen, det kan jo være nogle har lidt ideer når man kommer tilbage :)
Avatar billede oomalkeoo Nybegynder
18. januar 2010 - 13:53 #13
Jeg lukker denne tråd igen, jeg finder en løsning et andet sted.
Avatar billede zynzz Praktikant
18. januar 2010 - 17:18 #14
1. if (!isset($_GET[page])) { $page = 0; }

$page skal sættes til max antal sider istedet for 0...


2.
Citat:"
Andet problem som jeg prøvede at beskrive, dog uden held, vil jeg prøve at vise istedet. Som i ser er hver side's saldo beregnet ud fra de aktive poster, men hvordan får jeg den til at beregne det korrekt som den burde?"

Hvis saldoen er antal* prisen så skal det være:

$i = ($r[price] * $r[antal]);

og ikke:

$i += ($r[price] * $r[antal]);
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