[PHP] vanuit formulier een array posten array($_POST['acteurs']) en INSERT in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees Koning

Kees Koning

03/10/2011 22:36:54
Quote Anchor link
Hoi allemaal,

Ik ben nu bezig met het opzetten van een filmdatabase, en heb 2 database tabellen aangemaakt: acteurs en filmdatabase.

In de tabel filmdatabase staan de kolommen id, titeljaar omschrijving.
En in de tabel acteurs staan de kolommen acteurid en naam.

Nu wil ik vanuit 1 formulier de twee tabellen vullen.
Voor de acteurs heb ik hierin meerdere invoervelden aangemaakt acteur1, acteur2, etc. Deze hebben allemaal als kenmerk name="acteur[]"

Via een array($_POST['acteur'] wil ik met een INSERT statement verschillende rijen vullen in de aceurs tabel.

Hoe kan ik op deze manier een INSERT statement maken?

Nu heb de volgende code maar ik krijg in de database 1 rij terug met de waarde 'array' :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$acteurs = array($_POST['acteur']);
mysql_query ("INSERT INTO acteurs (naam) VALUES ('$acteurs')");
Gewijzigd op 03/10/2011 22:38:31 door Kees Koning
 
PHP hulp

PHP hulp

27/11/2024 20:55:21
 
- Ariën  -
Beheerder

- Ariën -

03/10/2011 22:42:13
Quote Anchor link
je moet ook een key meegeven.

Doe eens een print_r() op $acteurs, en je kan bijv. met $acteurs['naam'] de naam opvragen. (puur een voorbeeld)
 
Kees Koning

Kees Koning

03/10/2011 22:47:49
Quote Anchor link
Ok ik snap dat ik met een SELECT de verschillende waarden uit de array kan krijgen.
Maar ik wil juist bij de INSERT al de verschillende acteurnamen splitsen in verschillende rijen: acteur1 is id1, acteur2 is id2. De array dient dus gesplitst te worden over meerdere rijen.

Dat doe ik dus door een key mee te geven. Kan ik dat het beste met een foreach doen bij het INSERT statement?

Nog een vraag: Hoe kan ik uiteindelijk de acteurs laten zien die bij het id van de film horen? Dan zal ik een vergelijking tussenn acteur id en id uit de andere tabel moeten maken maar hoe gaat dat normaal? De id's van de acteurs moeten dus wel gekoppeld zijn aan het id van een bepaalde film. Want ik post alle gegevens uit 2 tabellen in 1 formulier ;)
Gewijzigd op 03/10/2011 23:19:28 door Kees Koning
 
- SanThe -

- SanThe -

04/10/2011 06:22:15
Quote Anchor link
Waarom zou je een array maken van een array. $_POST['acteur'] is al een array. En in een INSERT kan je niet zomaar een array opgeven.
 
Kees Koning

Kees Koning

04/10/2011 07:36:40
Quote Anchor link
- SanThe - op 04/10/2011 06:22:15:
Waarom zou je een array maken van een array. $_POST['acteur'] is al een array. En in een INSERT kan je niet zomaar een array opgeven.

De handeling om van de $_POST een array te maken is inderdaad ook overbodig. Ik wil in ieder geval de $_POST array splitsen in de database. Meest wenselijk zou zijn:
acteur id 1 / id 32
acteur id 2 / id 32
acteur id 3 / id 32 voor bijvoorbeeld 1 film in de 'acteur' tabel.

Heeft iemand hier ervaring mee?

Misschien moet ik iets met een foreign key doen? Ik moet toch ergens aangeven dat de acteur id's uit het formulier gekoppeld zitten aan een bepaald film id?
Gewijzigd op 04/10/2011 16:49:12 door Kees Koning
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.