23. december 2012 - 15:31Der er
12 kommentarer og 1 løsning
PHP MySQL problem
Hej eksperter!
Jeg har gået og spekuleret lidt over noget kode, som jeg ikke rigtig kan få til at hænge sammen. På min hjemmeside har jeg lavet et brugersystem til vores firmas personale, hvor de kan gå ind og rette i de forskellige faktura som der bliver lavet efterhånden.
Mit spørgsmål til jer er følgende:
Jeg har en MySQL database med følgende rows: id, beskrivelse, subtotal. Det jeg gerne vil have lavet er, at når en bruger går ind og retter, eller laver en ny faktura, skal brugeren kunne tilføje en beskrivelse og subtotal for hvert enkelt byggemateriale. Hvordan kan man, uden at tilføje flere rows i databasen, tilføje flere "inputs" der skriver de forskellige beskrivelser af materialerne ind i databasen?
Eksempel af faktura og problem:
Beskrivelse:Subtotal: Trægulv 32.052,00 kr.
Hvodan får jeg tilføjet flere beskrivelser ind i databasen uden at skulle tilføje så mange rows som der er materialer?
Håber spørgsmålet er til at forstå. Tak på forhånd!
Jo, der er masser af muligheder, mindre gode og direkte dårlige løsninger - men jeg går udfra, du ønsker en god og holdbar/udvidbar løsning.
Derfor foreslog jeg den fremgangsmåde, man bruger i halv- og helprofessionelle løsninger i stedet for en dårligt performende løsning, du i bedste fald vil fortryde, første gang du skal foretage en udvidelse =)
Så vælger jeg første løsning du kom med. Er det muligt at få et eksempel på hvordan det skal opbygges, eller en guide på nettet et sted? Kan sagtens lave PHP og MySQL koding, men jeg forstår ikke rigtig din metode til systemet :)
Det er lidt svært at sige, hvad du skal gøre og hvordan, når jeg ikke ved mere om, hvad du har, og hvordan det bruges. Prøv at læse lidt om begrebet 'relational database' - der er skrevet masser om emnet på WWW =)
Prøver lige at lave et eksempel ud fra det jeg forstår.
Hvis jeg har en tabel med følgende rækker i: "id", "fakturanr", "kundenavn", "kundeadresse" & "kundeemail". Mener du så, at jeg skal oprette en ekstra tabel med følgende rækker i: "id", "faktura_id", "beskrivelse", "priseksmoms" & "subtotal"?
Derefter mener du, at jeg skal referere til den nye tabel i php siden? :)
Hvorefter du kan lave joined SELECT forspørgsler, men om det er den mest hensigtsmæssige tabelopbygning, er jeg ikke helt sikker på. Det kan godt være, der skal være en tabel mere, men det kræver mere indsigt at afgøre =)
Hvis brugeren skal have mulighed for at kunne gå tilbage og rette i en faktura, hvordan får man så alle dataerne til at hænge sammen? Alle materialer skal jo gerne kunne vises på den specifikke faktura?
Hvergang, du indsætter en række i ekstra_materialer, sørger du for, at faktura_id feltets værdi bliver sat til den pågældende fakturas faktura_id (i 'faktura' tabellen).
Så kan du hente fakturaen sammen med materialerne med SQL efter princippet:
SELECT faktura.*, ekstra_materialer.* FROM faktura, ekstra_materialer WHERE ekstra_materialer.faktura_id = faktura.faktura_id
Som sagt: Prøv at læse lidt om begrebet 'relational database' - og i den forbindelse kommer 'joined selects' helt automatisk på banen =)
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.