Hulp met CMS
Ik heb 1 database met 1 tabel. Deze tabel bevat 4 velden.
Naam - Afbeelding - Prijs en Categorie
Nu wil ik dat als ik bij mijn keuze formulier bijv. voorgerecht selecteer dat er dan in de database een "V" komt van voorgerecht. En een "H" van hoofdgerecht enz.
Hoe moet ik dit aanpakken?
TOEVOEGEN AAN DATABASE
Code (php)
1
$sql = 'INSERT INTO '.$toevoegenaan.' (naam, afbeelding, prijs, categorie) VALUES ("'.$naamgerecht.'","'.$afbeelding.'","'.$prijs.'","'.$categorie.'");';
FORMULIER KEUZE
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<td>
<select name="toevoegenaan">
<option value="Voorgerecht">Voorgerecht</option>
<option value="Hoofdgerecht">Hoofdgerecht</option>
<option value="Nagerecht">Nagerecht</option>
</select>
</td>
<select name="toevoegenaan">
<option value="Voorgerecht">Voorgerecht</option>
<option value="Hoofdgerecht">Hoofdgerecht</option>
<option value="Nagerecht">Nagerecht</option>
</select>
</td>
Gewijzigd op 28/04/2011 17:21:13 door Evert Ekans
En dan de keus aan je query toevoegen
Kijken welke waarde toevoegenaan heeft, wanneer het 'Voorgerecht' is noem $categorie dan 'Voorgerecht'. Dit dit voor de voor, en na gerechten en je probleem is opgelost.
Dus zou niet weten hoe ik zoiets moet maken.
Het formulier heb ik al.
Ik heb alleen het gedeelte nodig dat als ik een van die keuzes kies dat er een letter wordt toegevoegd aan het veld CATEGORIE
FORMULIER KEUZE
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<td>
<select name="categorie">
<option value="V">Voorgerecht</option>
<option value="H">Hoofdgerecht</option>
<option value="N">Nagerecht</option>
</select>
</td>
<select name="categorie">
<option value="V">Voorgerecht</option>
<option value="H">Hoofdgerecht</option>
<option value="N">Nagerecht</option>
</select>
</td>
Je kan de keuze dan uitlezen via $_POST['categorie']
Gewijzigd op 28/04/2011 17:31:55 door Maarten PHP
$_POST['categorie'].. :D
wel wetend dat dit erg basis is, en je vanuit hier veel en veel verder kan werken.
Gewijzigd op 28/04/2011 17:58:28 door Danny Wage
Danny Wage op 28/04/2011 17:30:26:
dit is niet goed! Je moet geen onnodige vars aanmaken!
Ik schrijf dit enkel op de manier hoe hij het wil. Zo gebruikt hij $categorie, en die kan je hierdoor laten koppelen.
Je kan ook gewoon $_POST['categorie'] in de query zetten dan zijn 8 lijnen minder werk
Dat kan ook inderdaad.
strtolower. Verder vind ik het vreemd dat zodra het geen voorgerecht of hoofdgerecht is het een nagerecht moet zijn. Je moet daar dan ook nog een elseif gebruiken.
En als je van H naar h wilt veranderen maak je gewoon gebruik van daar heb je gelijk in.
Maar ik heb dan ook eronder gezet: "wel wetend dat dit erg basis is, en je vanuit hier veel en veel verder kan werken."
zoals ik al zei moet je enkel $_POST['categorie'] gebruiken en niet dat onnodige stukje code
Dit is wat ik heb:
Code (php)
1
2
3
2
3
$categorie = ($_POST['categorie']);
$sql = 'INSERT INTO '.$categorie.' (naam, afbeelding, prijs, categorie) VALUES ("'.$naamgerecht.'","'.$afbeelding.'","'.$prijs.'","'.$categorie.'");';
$sql = 'INSERT INTO '.$categorie.' (naam, afbeelding, prijs, categorie) VALUES ("'.$naamgerecht.'","'.$afbeelding.'","'.$prijs.'","'.$categorie.'");';
En bij de form dit:
$categorie = msql_real_escape_String(($_POST['categorie'])); gebruiken twee keer $categorie erin staan?
en niet
Want dat klopt natuurlijk niet! Ga eens een basis tut php en sql lezen.
PHP Jasper op 28/04/2011 22:02:02:
je query klopt niet, je moet doen:
[...code...]
en niet
[...code...]
Want dat klopt natuurlijk niet! Ga eens een basis tut php en sql lezen.
[...code...]
en niet
[...code...]
Want dat klopt natuurlijk niet! Ga eens een basis tut php en sql lezen.
Waarom klopt dit niet? Waarom zou de TS geen tabel per categorie hebben? Als $categorie = 'nagerecht' en er bestaat een tabel nagerecht zal deze query gewoon werken.
@TS, bouw eerst eens goede foutafhandeling in. Verder:
- Wat is er fout?
- Waar denk je dat het aan ligt?
- Krijg je een foutmelding?
- Wat heb je er al aan gedaan?
- Heb je al gedebugd?
CODE
Code (php)
1
2
3
2
3
$categorie = (($_POST['categorie']));
$sql = 'INSERT INTO '.gerechten.' (naam, afbeelding, prijs, categorie) VALUES ("'.$naamgerecht.'","'.$afbeelding.'","'.$prijs.'","'.$categorie.'");';
$sql = 'INSERT INTO '.gerechten.' (naam, afbeelding, prijs, categorie) VALUES ("'.$naamgerecht.'","'.$afbeelding.'","'.$prijs.'","'.$categorie.'");';
FOUTMELDING
en waarom 2x ;?