Ik heb de volgende twee database tabellen:
De tabellen zijn in werkelijkheid uitgebreider, maar dat is voor de vraag hier niet belangrijk. Het probleem is als volgt: Ik heb een form gemaakt waarlangs iemand een categorie aan de boom kan toevoegen. Wanneer gesubmit, lees ik uit het form de volgende variabelen uit:
Vervolgens moet ik deze informatie in de twee database tabellen zetten. Hiertoe voer ik drie queries uit, te weten:
Categorie toevoegen aan 'categories' tabel:
Vervolgens haal ik de informatie over Adidas op uit 'categories' om te zien welk cat_id (auto_increment!) eraan is toegekend:
Hier komt dan bijvoorbeeld '34' uit. Vervolgens voer ik onderstaande query uit, die de benodigde data aan 'categories_categories' toevoegt:
Dit is natuurlijk ontzettend omslachtig en mijn vraag is hoe dit beter kan. Wie helpt mij op weg?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| categories: +----------+ | cat_id | << auto_increment +----------+ | cat_naam | +----------+ categories_categories: +---------------+ | cat_id | << zelfde als cat_id in tabel 'categories' +---------------+ | cat_parent_id | +---------------+ |
De tabellen zijn in werkelijkheid uitgebreider, maar dat is voor de vraag hier niet belangrijk. Het probleem is als volgt: Ik heb een form gemaakt waarlangs iemand een categorie aan de boom kan toevoegen. Wanneer gesubmit, lees ik uit het form de volgende variabelen uit:
PHP:
1
2
| $cat_name = $_POST['cat_name']; $cat_parent_id = $_POST['cat_parent_id']; |
Vervolgens moet ik deze informatie in de twee database tabellen zetten. Hiertoe voer ik drie queries uit, te weten:
Categorie toevoegen aan 'categories' tabel:
PHP:
1
| INSERT INTO categories (cat_id, cat_naam) VALUES ('', 'Adidas'); |
Vervolgens haal ik de informatie over Adidas op uit 'categories' om te zien welk cat_id (auto_increment!) eraan is toegekend:
PHP:
1
| SELECT cat_id FROM categories WHERE cat_naam = 'Adidas'; |
Hier komt dan bijvoorbeeld '34' uit. Vervolgens voer ik onderstaande query uit, die de benodigde data aan 'categories_categories' toevoegt:
PHP:
1
| INSERT INTO categories_categories (cat_id, cat_parent_id) VALUES ('34', '7'); |
Dit is natuurlijk ontzettend omslachtig en mijn vraag is hoe dit beter kan. Wie helpt mij op weg?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."