Avatar billede themanronnie Nybegynder
11. februar 2010 - 09:15 Der er 4 kommentarer og
1 løsning

"Kundesystem, mysql, php"

Hej Eksperter!
Jeg sidder pt med en opgave der går ud på at oprette et system der holder styr på hvilke virksomheder der skylder penge til vores virksomhed, og desuden indeholder forecasts o.lign.
Lige i øjeblikket har jeg en database der indeholder 1 tabel, men har svært ved at få det til at fungere som jeg vil...

Ideen er at man på startsiden vælger måned og år, hvorefter der bliver udtrukket disse data fra tabellen, og dette fungerer fornuftigt nok. Mit problem er bare at hver gang en post oprettes skal den knyttes til ét ID, således at jeg ikke opretter en ny virksomhed og et nyt id hver gang en post tilføjes i systemet...

eks. lige nu er der:
id=1, virksomhed1, betalt, januar, 2009
id=2 virksomhed1, ikke betalt, februar 2009.
og dette er svært at udskrive i en oversigt, da samme virksomhed kommer til at stå flere gange.

Jeg er ikke vanvittigt rutineret i sql, så har svært ved at finde ud af hvordan jeg skal gøre for at "koble" evt, en kundetabel, og en datatabel sammen, hvis dette er muligt :-)

Koder forresten i PHP, hvis det gør en forskel :)



ooog en oversigt over hvad jeg forsøger at lave

virksom|januar|februar|marts  |april...
blabla1|betalt|betalt |ejbetalt|betalt
blabla2|ejbetalt|betalt |...

håber jeg giver mening ! :)


200 pts ude!
Avatar billede tjaz Nybegynder
11. februar 2010 - 09:43 #1
Det lyder som om du bør se lidt på relationer. Om du bruger PHP eller noget helt andet gør ingen forskel. I første omgang er her en kort into:

Antag at du har en database med kunder, som indeholder følgende:

Kunder:
- id (autonummer)
- navn

I en anden tabel har du så poster tilknyttet kunden:

Poster:
- id (autonummer)
- kunde_id
- dato
- beloeb
- betalt
- osv.

Når du opretter en virksomhed sker det i tabellen kunder, så du f.eks har følgende data (hvor det første er id og det andet er navnet - id skal tilføjes automatisk fortløbende, det kan databasen gøre for dig):

(id, navn)
1, Virksomhed1
2, Virksomhed2

Når du så i tabellen opretter poster, sker der på følgende måde:

(id, kunde_id, dato, beloeb, betalt)
1, 1, 01-01-2010, 200, 1
2, 1, 10-01-2010, 300, 0
3, 2, 11-01-2010, 275, 0

Ved at selecte ud fra kunde_id i tabellen med poster, kan du nu afgøre hvor mange poster den enkelte kunde har og om de er betalt.

Det er nu det begynder at blive relevant at se på join i SQL, men tag den bagefter :)
Avatar billede themanronnie Nybegynder
11. februar 2010 - 13:03 #2
ah, det kan jeg godt se logikken i, men det volder igen problemer med at få udskrevet informationerne...
hvis jeg skal udskrive data fra postering kan jeg kun få kundenummeret til at stå sammen med de aktuelle data, de hænger jo som sådan ikke sammen med virksomhedsnavnet, da det står i en anden tabel...
Avatar billede showsource Seniormester
12. februar 2010 - 10:19 #3
Hvis vi går ud fra tjaz tabelopbygning, kan du eksempelvis:

SELECT kunder.navn, poster.* FROM kunder, poster
WHERE kunder.id = poster.kunde_id ORDER BY kunder.navn ASC

Og i while()

echo (!isset($kunde) || $kunde != $row["navn"] ? "<p>".$row["navn"]."</p>" : "");

echo $row["dato"]."<br />";

$kunde = $row["navn"];
Avatar billede themanronnie Nybegynder
15. februar 2010 - 09:51 #4
ah, en simpel ting som en tabel med kunderne har vist sig at gøre det noget nemmere at håndtere, og jeg tror desuden jeg har fat i hvordan dit sql kald skal fungere (jeg er jo forholdsvist nybegynder i det her), så tak til jer begge :-) ) smid nogle svar, så fordeler jeg pts.
Avatar billede showsource Seniormester
15. februar 2010 - 10:13 #5
Det må være tjaz aom skal ha' point :O)
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
Computerworld tilbyder specialiserede kurser i database-management

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