Avatar billede jokerper Nybegynder
15. november 2008 - 08:56 Der er 19 kommentarer og
1 løsning

Ideer til at komme igang en - budget/forbrug side.

Hej Eksperter

Jeg vil prøve at lave en simpel budget side.

Jeg mangler nogle ideer til hvordan jeg skal komme igang.

Jeg tænker at budgettet skal kunne huskes ud fra en MySql-database, så ved mit login at jeg kan finde mit/mine budget(ter) frem igen.

Samt ved tilgang til siden:

Nogle indput felter indtægt/udgifter som sendes videre til anden side hvor der er tabeller til at samle datane/give overblik, evt. med en gem funktion, her.

Hvem gider sætte mig igang, med dette?

Spørg gerne om yderligere, da jeg ikke præcis har den endelige opsætning, endnu.

ID | Type | Beløb
1 | Husleje | 7000
2 | Dong energi | 1309
i alt:| tom | 8309

Så tænker jeg at samle det i DB under type, men hvordan?
Boligudgifter
Forsikringer
Biludgifter
Børn/institutioner
osv.
Avatar billede Slettet bruger
16. november 2008 - 02:46 #1
Prøv sæt et eksempel op i Excel eller lign. program, og så byg din database op efter det.
Derfra ville jeg så starte med at lave siden til at indsætte budgetter, bagefter hvordan de skal vises og så til sidst noget redigering og slettelse af budgetter.
Avatar billede jokerper Nybegynder
16. november 2008 - 09:43 #2
Det tyder på at det bliver et større projekt.

Men jeg kan ikke lige finde ud af om det skal være via DB.

Skal det ikke også deles op i mange sider for ikke at få for meget kode på samme side.

ex.

<select class="forms" name="interval1">
    <option Value="">- Vælg -</option>
    <option value="måned">Månedligt</option>
    <option value="kvartalvis">Kvartalsvis</option>
    <option value="halv årligt">½ årligt</option>
    <option value="årligt">årligt</option>
  </select>
  <br>
  <select class="forms" name="interval2">
    <option Value="">- Vælg -</option>
    <option value="måned">Månedligt</option>
    <option value="kvartalvis">Kvartalsvis</option>
    <option value="halv årligt">½ årligt</option>
    <option value="årligt">årligt</option>
  </select>
  <br>
  <select class="forms" name="interval3">
    <option Value="">- Vælg -</option>
    <option value="måned">Månedligt</option>
    <option value="kvartalvis">Kvartalsvis</option>
    <option value="halv årligt">½ årligt</option>
    <option value="årligt">årligt</option>
  </select>

Hvilket jo kun giver mulighed for 3 tekstfelter, og der skal eksempelvis bruges 50 felter.

Kunne det evt. gøres anderledes?
Avatar billede Slettet bruger
16. november 2008 - 10:43 #3
Eh, der fik du lige forvirret mig...
Men altså ud fra de informationer du har givet, som du gerne vil have at dit projekt skal kunne, ville jeg tænke en smule fremad og sparer en masse tid i længden.

Lad mig give et eksempel på et simpelt system der vil kunne holde styr på noget regnskab for nogle brugere. Brugeren kan selv tilføje flere "typer" f.eks. Boligudgifter, Forsikringer, Biludgifter osv... ligesom du selv har skrevet ovenover..

Vi kan jo starte med at lave MySQL tabellerne.

-- Vi starter med Bruger tabellen --
CREATE TABLE `brugere`(
`id` INT NOT NULL AUTO_INCREMENT, -- Giver brugeren sit eget unikke ID
`brugernavn` TEXT NOT NULL, -- Brugerens brugernavn
`adgangskode` TEXT NOT NULL, -- Brugerens adgangskode
PRIMARY KEY(`id`)
);

-- Så laver vi en tabel hvor brugerne kan tilføje en slags "budget typer"
CREATE TABLE `typer`(
`id` INT NOT NULL AUTO_INCREMENT, -- Budget Typens unikke ID
`bruger` INT NOT NULL, -- ID på brugeren, så hver bruger nemt kan få sine egne budget typer
`navn` TEXT NOT NULL, -- Navnet på budget typen
`beskrivelse` TEXT NOT NULL, -- Beskrivelse af budget typen
PRIMARY KEY(`id`)
);

-- Og til sidst laver vi selve budget tabellen
CREATE TABLE `regnskab`(
`id` INT NOT NULL AUTO_INCREMENT, -- Regnskabs unik ID
`oprettet` DATETIME NOT NULL, -- Dato og tidspunkt for oprettelsen / indskrivning
`bruger` INT NOT NULL, -- Bruger ID
`type` INT NOT NULL, -- Budget type ID
`navn` TEXT NOT NULL, -- Navnet på det indskrevne beløb f.eks. "Indkøb" eller lign.
`beskrivelse` TEXT NOT NULL, -- En beskrivelse af beløbet
`beloeb` DECIMAL(10,2) NOT NULL, -- Beløbet i formatet valuta(10 cifre).valuta(2 cifre) altså max 10 cifre kr og 2 cifre ører, hvis det er dansk valuta.
PRIMARY KEY(`id`)
);


* Bemærk det er nogle meget simple MySQL tabeller.

Nu er databasen på plads, det næste skridt er tilføjelse af brugere.
Hver bruger skal så have mulighed for at tilføje en budget type, og derefter begynde på at lave sine budgetter.

1. Lav bruger
2. Opret budget typer
3. Indsæt data
4. Hent dataen ud fra tabellerne hvor kolonnen 'bruger' er lig den ind-loggede brugers id.

Håber det kan bruges, ellers er der en idé til hvordan du kan komme igang.
Avatar billede jokerper Nybegynder
16. november 2008 - 15:12 #4
Nu har jeg lavet denne kode til oprettelse af ny bruger:

$res = mysql_query("SELECT * FROM brugere WHERE brugernavn = '".$_POST['bruger']."'");
$er_brugt = mysql_fetch_array($res);
if(isset($er_brugt['brugernavn']))
                    {
                    echo "Brugernavnet er allerede oprettet i databasen";
                    } else {
$sql="INSERT INTO brugere (id, brugernavn, adgangskode) VALUES ('', '".$_POST['bruger']."', '".$_POST['pass']."')";
$result = mysql_query($sql) or die(mysql_error());
echo "<br>";
echo "Ny bruger oprettet!\n";
echo "<br>";
echo "Brugernavn: $valg1";
echo "<br>";
echo "Password: $valg2";
}
echo "<br>";
echo "<br>";
?>

<form action"brugere.php" method="POST" onchange="this.form.submit()">
Brugernavn
<input name="bruger" type="text" class="forms" size="20"><br>
Password
<input name="pass" type="text" class="forms" size="20"><br>
<input type="submit" class="formsknap" value="opret bruger">

Hvordan får jeg så indsat brugeren i de andre tabeller?
Regnskab
Typer
Avatar billede Slettet bruger
16. november 2008 - 15:29 #5
Godt, du har lavet bruger opretnings system, det næste JEG ville gøre er at skulle logge ind.
Når man er logget ind, ville jeg gemme brugerens ID nr og Brugernavn i sessions.

$_SESSION["brugerID"] = brugerens-id;
$_SESSION["brugerNavn"] = brugerens-brugerenavn;

Og så skal brugeren have mulighed for at få en oversigt over BUDGET TYPER, der skal brugeren så kunne oprette en budget type hvor der SKAL angives et navn og evt. en beskrivelse.

eksempel på sql kode:
mysql_query("INSER INTO `typer`(`bruger`,`navn`,`beskrivelse`) VALUES(".$_SESSION["brugerID"].",'$budget_navn','$budget_beskrivelse')");

Så har brugeren fået sin egen budget type. Budget typerne bliver inddelt i brugere efter kolonnen `bruger`

Derefter skal der tilføjes noget data til budget typen.
Eksempel på det:

mysql_query("INSERT INTO `regnskab`(`oprettet`,`bruger`,`type`,`navn`,`beskrivelse`,`beloeb`) VALUES(NOW(),".$_SESSION["brugerID"].",".$budgetTypeID.",'".$regnskabNavn."','".$regnskabBeskrivelse."','".$regnskabBeloeb."')");


Så der bliver refereret til frem og tilbage mellem databaserne, håber ikke det bliver for indviklet til dig :-)
Avatar billede jokerper Nybegynder
16. november 2008 - 16:05 #6
Nej, men jeg skal nok bare lige forstå systemet.

Det er hobby så det er sjovt og udfordrerende.

Så længe der er lidt hjælp at hente, så skal jeg nok sidde til langt ud på ...... og få sved på panden.

Jeg har siddet og søgt/læst på nettet omkring session, men hvordan det virker:
$_SESSION["brugerID"] = brugerens-id;
$_SESSION["brugerNavn"] = brugerens-brugerenavn;

brugerID - Det er jo "auto increment" ik´
Vil det så ikke være svært at bruge eller hvordan gør jeg dette?

Jeg er vel ude i noget med:
if(isset($_SESSION["brugerID"]) || isset($_SESSION["brugerNavn"])) {

Et eller andet?

Jeg prøver lige at forstå resten af dit forslag...
Avatar billede Slettet bruger
16. november 2008 - 16:17 #7
hehe, kan se du ikke har været igang med bruger systemer før rigtigt.

Du har selv lavet din bruger opretnings funktioner, så når en klient har oprettet en bruger, skal du enten auto log-ind personen eller sende brugeren vidre til log-ind siden.
Når du validerer klientes data, og tjekker om han bliver logged ind, så ville jeg lave 2 sessions, den ene har brugerens ID nummer og den anden har brugerens brugernavn.
De 2 sessions kan du så bruge til at hente data fra databasen og udskrive brugerens brugernavn.

Så når du f.eks. vil hente alle brugerens budget typer ned, så skal du gøre noget lign. det her

// Henter alle rækker fra tabel 'typer' der har samme id som den ind-loggede bruger
$hent_bugetTyper = mysql_query("SELECT * FROM `typer` WHERE `bruger` = ".$_SESSION["brugerID"]."");

// Tjekker om der blev fundet nogle resultater fra sql forspørgelse
if(mysql_num_rows($hent_budgetTyper) {
  // Der blev fundet budget typer, så vi looper dem igennem og viser dem til brugeren
  while($data = mysql_fetch_array($hent_budgetTyper)) {
    echo $data["navn"]."<br />";
  }
} else {
  // Der blev IKKE fundet nogen budget typer til den ind-loggede bruger
  echo "Brugeren ".$_SESSION["brugerNavn"]." har ikke oprettet nogle budget typer endnu.";
}
Avatar billede jokerper Nybegynder
16. november 2008 - 17:06 #8
Korrekt, jeg har ikke rigtig brugt sessions før.

Jeg forstår nok ikke lige det omkring session.

Kan du kort fortælle mig, hvordan jeg skal bruge dem i dette tilfælde.
<?php
session_start();
$_SESSION['brugernavn'];
$_SESSION['brugerID'];
?>

Men hvordan for jeg dem til at virke.
Du har selv lavet din bruger opretnings funktioner, så når en klient har oprettet en bruger, skal du enten auto log-ind personen eller sende brugeren vidre til log-ind siden.
Jeg vil nok vælge at sende brugeren til en ny side, men hvordan får jeg lige sat det op så sessions følger med, håber du forstår min tvivl.

Lige nu har jeg en:
bruger.php
start.php

bruger.php
Har oprettelse af en ny bruger.

start.php
Skulle så være logind siden.

Skal der så yderligere sendes videre til endnu en side
fx
opret_budget.php
Med mulighed for oprettelse af budget typer mv.

En side med
budget.php

en side med
update.php

en side med
delete.php

Eller hvordan?
Avatar billede Slettet bruger
16. november 2008 - 17:23 #9
"Jeg vil nok vælge at sende brugeren til en ny side, men hvordan får jeg lige sat det op så sessions følger med, håber du forstår min tvivl."

Det er nemlig lige præcis det, man bruger sessions til, at have dem i samme browser lige gyldig hvilken side, sålænge det er under samme domaine.

Du skal først og fremmest have koden "session_start();" på alle sider du vil bruge dine sessions, derefter er det som almindelige arrays variabler.

// Login filen
session_start();
$_SESSION["brugerID"] = brugerens-id;
$_SESSION["brugerNavn"] = brugerens-brugernavn;

// Filen hvor du har oversigt over budget typer
session_start();
$hent = mysql_query("SELECT * FROM `typer` WHERE `bruger` = ".$_SESSION["brugerID"]."");


Så burde resten være lige ud ad landevejen.
Avatar billede jokerper Nybegynder
16. november 2008 - 17:37 #10
roxki ->

Forklar mig lige omkring DB id og brugernavn fra DB det er ikke det man bruger som SESSION.

Jeg er også sikker på når jeg først har fået det til at virke, så tænker jeg nåååå, sådan.

Men lige nu er jeg sort. Håber på din forsatte tålmodighed.
Er disse fastsat af browseren:
$_SESSION["brugerID"] = brugerens-id;
$_SESSION["brugerNavn"] = brugerens-brugernavn;

Eller er det fra databasen?

Kan du muligvis give lidt kode som kan hjælpe mig på vej.
bruger.php
start.php
evt. ny side - jeg er lige stået af - nemlig. Men tråden skal jeg finde.
Avatar billede jokerper Nybegynder
16. november 2008 - 19:49 #11
Jeg har fået det til at spille lidt, men har du lyst til at forsætte, med at hjælpe?
Avatar billede Slettet bruger
16. november 2008 - 21:41 #12
Bare smid dine spørgsmål her og jeg vil hjælpe så vidt muligt :)
Avatar billede jokerper Nybegynder
16. november 2008 - 22:03 #13
$hent = mysql_query("SELECT * FROM `budget` WHERE `bruger` = '".$_SESSION["brugerNavn"]."'");

if (mysql_num_rows($hent)) {

  while ($data = mysql_fetch_array($hent)) {



Hvordan kan jeg få den til at lave en sum kolonne:
select SUM(beloeb) AS ialt FROM ....

Den er den * som driller.

Det var ellers en god kamp at få det sessions til at virke...haha
Avatar billede jokerper Nybegynder
16. november 2008 - 22:05 #14
Når jeg bruger denne:
SELECT `id`,`bruger`,`type`,`beloeb`,SUM(beloeb) AS `ialt` FROM

siger den brugeren ikke har oprettet budget.
Avatar billede Slettet bruger
16. november 2008 - 22:09 #15
Prøv giv mig din fulde SQL kode, og er det stadig ved 'budget' tabellen du er ved?

Iøvrigt skulle følgende SQL forspørgelse virke:

mysql_query("SELECT *, SUM(`beloeb`) as `ialt` FROM `budget` WHERE `bruger` = '".$_SESSION["brugerNavn"]."'");
Avatar billede Slettet bruger
16. november 2008 - 22:10 #16
Og lige en ting mere, hvis du skal spørge hver gang der er noget fra nu af og til scriptet er færdigt, ville det være klogest hvis du bare skrev til mig over et chat program eller lign..

Kontakt mig på..
E-mail: krelle@gmail.com
MSN: msn@krelle.dk
Avatar billede jokerper Nybegynder
16. november 2008 - 22:16 #17
Her kommer koden:

// Henter alle rækker fra tabel 'typer' der har samme id som den ind-loggede bruger
$hent = mysql_query("SELECT *, SUM(`beloeb`) AS `ialt` FROM `budget` WHERE `bruger` = '".$_SESSION["brugerNavn"]."'");

// Tjekker om der blev fundet nogle resultater fra sql forspørgelse
if (mysql_num_rows($hent)) {
  // Der blev fundet budget typer, så vi looper dem igennem og viser dem til brugeren
  while ($data = mysql_fetch_array($hent)) {
  echo "<table align=\"center\" width=\"50%\" border=\"1\"><tr>";
echo "<th align=\"center\" width=\"10%\">".$data['id']."</th><th align=\"left\" width=\"80%\">".$data['type']."</th><th align=\"right\" width=\"10%\">".$data['beloeb']."</th>";


   
    echo "<th>".$data['ialt']."</th></tr></table>";



}
  } else {
  // Der blev IKKE fundet nogen budget typer til den ind-loggede bruger
  echo "Brugeren ".$_SESSION["brugerNavn"]." har ikke oprettet et budget endnu.";
}

}
?>

ja, jeg har oprettet en tabel med et prøve budget. Det kommer også rigtigt ud, med brugernavn. Men den stjerne virker ikke med *,sum(beloeb) har lige prøvet med din kode.
Avatar billede Slettet bruger
16. november 2008 - 22:20 #18
$hent = mysql_query("SELECT *, SUM(`beloeb`) AS `ialt` FROM `budget` WHERE `bruger` = '".$_SESSION["brugerNavn"]."'") or die(mysql_error());

prøv dette og se om du får en error message.
Avatar billede Slettet bruger
16. november 2008 - 22:42 #19
Velbekommen!
Avatar billede jokerper Nybegynder
17. november 2008 - 17:13 #20
Jeg bukker...
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