Toevoegen elementen
Voor een script ben ik op zoek naar een "duw in de goede richting".
Ik heb een soort van backoffice gemaakt waarin enkele medewerkers hun klantenbezoeken kunnen inputten.
Bij iedere bezoek of installatie (vb in het geval van loodgieter) word een fiche aangemaakt. Dit is allemaal tiptop in orde. Nadat de installateur ter plaatste is geweest moet hij deze fiche aanpassen maw zeggen welke onderdelen hij ter plaatste gemaakt heeft.
Ik heb nu een veld of 5 effectief verbonden aan de db (stuk_1, stuk_2, ...) maar dit is eigenlijk niet echt goed. Ik zoek een oplossing waarbij een onbeperkt aantal stukken kunnen toegevoegd worden.
Vb standaard 5 mogelijkheden om in te vullen, indien hij vb nog 4 velden tekort heeft (en dus 9 onderdelen gebruikt heeft) klikt hij op "voeg 5 elementen toe).
Nu is vraag 1, hoe fix ik dit met die 5 toevoegen (en dit tot oneindig veel stukken) en vooral hoe wegschrijven in een db? Toch niet voor 30 stukken ofzo een kolom aanmaken?)
Dat fiche_id is een soort koppeling... maar ik weet niet hoe ik het voor jouw moet uitleggen dus ik probeer het even anders...
Ik ben auto verkoper en ik heb allerlei soorten auto's.
Ik heb een tabel met klanten en een tabel verkochte_autos.
Tabel klanten:
id | naam_klant | etc
Tabel verkochte_autos
id | klant_id | auto | etc
In de tabel klanten staat bijvoorbeeld Jan.
Op een dag komt Jan bij mij een Mercedes en een Opel kopen, dan zet de database in de tabel klanten Jan neer.
Hij onthoud het id dat aan Jan word gegeven (bijvoorbeeld 1) en maakt ook 2 records aan in de tabel verkochte_autos: id(auto increment) en klant_id(het id van Jan (in dit geval 1)).
Nu is de verkochte auto gekoppeld aan de klant.
Nu kun je dus de klant selecteren en aan de hand van het id van de klant kun je de verkochte auto's ophalen...
Ik hoop dat dit is wat je bedoeld anders heb ik alles voor niets getypt :P
Laat maar van je horen!
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
/home/joost schreef op 28.08.2009 23:46:
Apparte tabel met naam onderdelen -> id - fiche_id - onderdeel - prijs etc...
Dat fiche_id is een soort koppeling... maar ik weet niet hoe ik het voor jouw moet uitleggen dus ik probeer het even anders...
Ik ben auto verkoper en ik heb allerlei soorten auto's.
Ik heb een tabel met klanten en een tabel verkochte_autos.
Tabel klanten:
id | naam_klant | etc
Tabel verkochte_autos
id | klant_id | auto | etc
In de tabel klanten staat bijvoorbeeld Jan.
Op een dag komt Jan bij mij een Mercedes en een Opel kopen, dan zet de database in de tabel klanten Jan neer.
Hij onthoud het id dat aan Jan word gegeven (bijvoorbeeld 1) en maakt ook 2 records aan in de tabel verkochte_autos: id(auto increment) en klant_id(het id van Jan (in dit geval 1)).
Nu is de verkochte auto gekoppeld aan de klant.
Nu kun je dus de klant selecteren en aan de hand van het id van de klant kun je de verkochte auto's ophalen...
Ik hoop dat dit is wat je bedoeld anders heb ik alles voor niets getypt :P
Laat maar van je horen!
Dat fiche_id is een soort koppeling... maar ik weet niet hoe ik het voor jouw moet uitleggen dus ik probeer het even anders...
Ik ben auto verkoper en ik heb allerlei soorten auto's.
Ik heb een tabel met klanten en een tabel verkochte_autos.
Tabel klanten:
id | naam_klant | etc
Tabel verkochte_autos
id | klant_id | auto | etc
In de tabel klanten staat bijvoorbeeld Jan.
Op een dag komt Jan bij mij een Mercedes en een Opel kopen, dan zet de database in de tabel klanten Jan neer.
Hij onthoud het id dat aan Jan word gegeven (bijvoorbeeld 1) en maakt ook 2 records aan in de tabel verkochte_autos: id(auto increment) en klant_id(het id van Jan (in dit geval 1)).
Nu is de verkochte auto gekoppeld aan de klant.
Nu kun je dus de klant selecteren en aan de hand van het id van de klant kun je de verkochte auto's ophalen...
Ik hoop dat dit is wat je bedoeld anders heb ik alles voor niets getypt :P
Laat maar van je horen!
Hoi,
De koppeling die werkte reeds, ik heb reeds table met klantengegevens, producten, ... M'n vraag was iets specifieker. Neem nu aan dat tijdens het jaarlijks onderhoud van de auto van Jan er een installatiefiche aangemaakt word.
Daarbij is Jan (customerid) en de installatie een auto increment waarde (vb 54). Ik heb een vast aantal velden voorzien zoals datum, uur, totale duur van het onderhoud.
Tijdens het onderhoud dienen er wisselstukken geplaatst te worden. Bij de ene auto kunnen dat er 0 zijn, bij de andere 30. Ik heb een table met alle wisselstukken maar aangezien ik niet weet hoeveel wisselstukken ik moet bewaren in m'n db lijkt het me geen goed idee om allerlei (misschien overbodige) velden aan te maken zoals "wisselstuk1", "wisselstuk2" enz...
Ik zoek een manier om standaar te starten met 5 selectievelden. Zijn deze allemaal benut kan je kiezen voor "nog 5 extra", enz...
Maar hoe save ik dan die "extra" velden?
Gewijzigd op 01/01/1970 01:00:00 door stedem dem
autos
=============
id
type
wisselstukken
=============
id
type
autos_wisselstukken
=============
auto_id
wisselstuk_id
In je koppeltabel sla je dus combinaties op van de id's van autos en wisselstukken die gekoppeld zijn.
Ik vrees dat we er niet echt uit raken.
Ik wil eigenlijk gewoon volgende.
De installateur moet ieder product dat hij gebruikt tijdens een interventie bij een klant invoegen. Je kan echter niet weten hoeveel producten hij gaat gebruiken.
1) Je komt op pagina vb installatie.php?id=1
2) Je ziet 1 dropdown met een lijst van producten uit een andere db geladen.
Indien de installatuer meer dan 1 product heeft gebruikt moet hij kiezen "voeg extra product toe", wanneer hij daar op klikt moet er een extra dropdown komen die exact dezelfde gegevens inlaadt.
Dit proces kan herhaalt worden vb tot 24 stuks.
Dan komt de hamvraag, hoe save je dit in een db? Je kan toch moeilijk 50 velden voorzien die al dan niet gebruikt gaan worden?
fiche_id
product_id
(Gedeelde primary key)
Voor elk product dat wordt geselecteerd wordt dan een nieuwe rij aangemaakt (met een foreach loop). Met een join query haal je dan alle producten op die bij een bepaalde afspraak horen (zie de post van Willem).
Gewijzigd op 01/01/1970 01:00:00 door Lauren Zonneveld