Update van producten
Ik heb een vraag, en hoop dat iemand mij kan helpen.
Teminste een zetje in de goeie richting.
Ik ben bezig met een php script om producten aan te passen in mijn database.
Ik wil (en als dat kan) met 2 forms werken.
De eerste form is het selecteren van de categorie, en het selecteren van de juiste table in mijn database.
En als je dan op de submit knop drukt, krijg ik de data van de producten uit mijn database.
De pagina vernieuwd zich weer, en krijg dan de tweede form te zien met de data wat ik geselecteerd hebt uit de eerste form.
Tot zo ver is het mij gelukt.
Nu is mijn vraag, in de tweede form wil ik mijn product updaten.
Maar daar heb ik de value van de eerste form nodig om de juiste table aan te spreken in mijn database.
Heeft iemand een idee hoe ik dat zou kunnen doen?
Vriendelijke groet Martijn
Martijn nvt op 09/09/2014 21:55:34:
De eerste form is het selecteren van de categorie, en het selecteren van de juiste table in mijn database.
En als je dan op de submit knop drukt, krijg ik de data van de producten uit mijn database.
En als je dan op de submit knop drukt, krijg ik de data van de producten uit mijn database.
Heb wat vraagtekens bij het database-model.
Waarom zou een gebruiker een table moeten selecteren?
Zet de waarde van de geselecteerde table in een sessie.
De categorie is daarin dan een integer die verwijst naar een tweede tabel met alle categorieën.
De eerste form klik je de categorie aan van welk product je wilt hebben en de tweede form daar klik je het product aan of aanpassingen doen in de database
Toevoeging op 10/09/2014 20:19:21:
Ik heb dan staan SELECT product_naam, levering FROM $categorie
Categorie is dan de table in mijn database
Wat als er in de toekomst een categorie bijkomt?
Met andere woorden 2 tabellen, producten en categorieen.
Gewijzigd op 10/09/2014 21:00:28 door Ger van Steenderen
Dan selecteer ik bier in mijn database "categorie", en dan krijg ik in mijn andere form alle bier soorten en selecteer dan de naam Heineken "producten " en pas het aan en dan update ik het product.
Je bent heel erg onduidelijk, laat eens zien hoe je database eruit ziet
Je kunt in de tweede form een hidden input opnemen waarin de naam van de categorie staat.
Tevens en misschien beter of makkelijker kun je de categorie in $_SESSION opslaan.
Session opslaan:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
session_start();
$_SESSION['edit-category'] = $_POST['category']; // POST waarde uit je eerste form
?>
session_start();
$_SESSION['edit-category'] = $_POST['category']; // POST waarde uit je eerste form
?>
Session ophalen:
Gewijzigd op 10/09/2014 22:13:49 door Frank Nietbelangrijk
En dan blijft het database model nog steeds een zooitje ongeregeld ... !!
Ger van Steenderen op 10/09/2014 22:14:06:
En dan blijft het database model nog steeds een zooitje ongeregeld ... !!
Mee eens Ger. Het is beter zoals Ward ook schrijft om alle producten in de één tabel te houden.
Toevoeging op 10/09/2014 22:21:31:
Als ik alles onder 1 tabel moet weg schrijven dan vind ik dat juist een zooitje en niet overzichtelijk
Toevoeging op 10/09/2014 23:46:19:
Dank je wel frank voor je tip en advies, deze ga ik zeker even proberen :)
Dan ben ik benieuwd hoe je bv de verkoopcijfers van de afgelopen maand ophaalt.
Dat kun je toch zelf wel bedenken? Gewoon een query over 50 tabellen. ;-)
Ik wel, maar ik hoef het (gelukkig) niet te bedenken ;-)
Beauty is in the eye of the beholder.
Quote:
Het klassieke voorbeeld van data sie in een HSTORE thuishoort zijn producteigenschappen. Elke fabrikant levert zijn eigen lijst van gegevens over een product. Sommige gegevens worden door alle fabrikanten meegegeven, anderen alleen door bepaalde fabrikanten. Het is niet realistisch om een lijst op te stellen van alle mogelijke attributen die een fabrikant mee zou kunnen gaan willen geven, dus als je deze data wilt kunnen opslaan dan kom je uit op een Entity-Attribute-Value tabel, een tabel met het id van het product, de naam van de eigenschap en de waarde die de fabrikant voor die eigenschap meegeeft.
Voordeel van een EAV tabel is dat je er alles in kwijt kunt als een key/value pair, nadeel is dat je de values niet relationeel kunt verbinden aan een tabel van toegestane waarden, omdat je niet weet onder welke key de fabrikant een eigenschap gaat aanleveren en al helemaal niet in welk formaat de fabrikant de value aan gaat leveren, noemt hij de kleur van een broek "Blauw", "Azuur Blauw", of "Tricky Blue"?
Wat dat betreft is het dus exact hetzelfde als een HSTORE; een key/value pair waarin je niets kunt afdwingen zonder kunstgrepen. De HSTORE is alleen ogelooflijk veel sneller om uit te lezen dan een EAV. Er komt geen subquery, JOIN of GROUP BY aan te pas.
Voordeel van een EAV tabel is dat je er alles in kwijt kunt als een key/value pair, nadeel is dat je de values niet relationeel kunt verbinden aan een tabel van toegestane waarden, omdat je niet weet onder welke key de fabrikant een eigenschap gaat aanleveren en al helemaal niet in welk formaat de fabrikant de value aan gaat leveren, noemt hij de kleur van een broek "Blauw", "Azuur Blauw", of "Tricky Blue"?
Wat dat betreft is het dus exact hetzelfde als een HSTORE; een key/value pair waarin je niets kunt afdwingen zonder kunstgrepen. De HSTORE is alleen ogelooflijk veel sneller om uit te lezen dan een EAV. Er komt geen subquery, JOIN of GROUP BY aan te pas.
Bron
Gewijzigd op 11/09/2014 21:59:34 door Ger van Steenderen