Checkbox via array doorgeven aan php

Status
Niet open voor verdere reacties.

ice-twirl

Gebruiker
Lid geworden
28 dec 2002
Berichten
93
Beste programmeurs :D

Ik ben nog beginnend en heb niet zo gek veel kennis in mysql en php als de meeste mensen hier maar goed. Ben aan het werken aan een administratiesysteempje om spelers en wedstrijden van mijn eigen team in te voeren.
Nu wilde ik via checkboxen rode kaarten doorsturen naar de mysql database. Aangezien dezelfde variabele meerdere waarden krijgt wordt dat in php gezien als een array.

Invoercode:
PHP:
<form method="post" action="add_wedstrijd.php">
<table align="center" width="600" cellspacing="0" cellpadding="5" border="0" bordercolor="#000000">
<tr>
		<td valign="top" style="background-color: #faf1dc; border-left: 1px solid #6a693c"><font color="#6a693c" face="Arial" size="1">&nbsp&nbspRode kaarten:</font></td>
		<td style="background-color: #faf1dc; border-right: 1px solid #6a693c"><input type="checkbox" name="kaart_rode[]" value="Angelo Zeegers">Angelo Zeegers<br><input type="checkbox" name="kaart_rode[]" value="Jeffrey Menkehorst">Jeffrey Menkehorst<br><input type="checkbox" name="kaart_rode[]" value="Bas Hoevenaars">Bas Hoevenaars<br></td>
	</tr>
</table>
</form>

formulier versturen:
PHP:
include ("config.php");

	$commando="INSERT INTO `wedstrijden` (id, datum, tijd, type, thuisploeg, uitploeg, thuis_doelpunten, uit_doelpunten, goals, assisten, kaart_gele, kaart_rode) VALUES (NULL, '$datum', '$tijd', '$type', '$thuisploeg', '$uitploeg', '$thuis_doelpunten', '$uit_doelpunten', '$goals', '$assisten', '$kaart_gele', '$kaart_rode')";

	mysql_query($commando);

Wanneer ik dan een of meerdere checkboxen op het formulier aanvink, dan geeft het op deze manier niet de waarde van die keuze(s) door. De waarde die dan verschijnt = Array. En niet bijvoorbeeld Angelo Zeegers of Jeffrey Menkehorst, Bas Hoevenaars.

Zou iemand mij een tip kunenn geven hoe ik er voor kan zorgen dat die waarden wel in de database komen te staan. (Graag rekening houden dat ik moeilijke constructies nog niet goed begrijp);)

Alvast heel erg bedankt:o
 
Laatst bewerkt:
Ik neem aan dat $kaart_rode je rode kaarten bevat.

Dan kun je eenvoudig van de array een string maken door:

PHP:
$kaarten_rood = implode(',', $kaart_rode);

Als je de gegevens dan uit de database haalt en je hebt weer een array nodig, dan doe je:

PHP:
$kaart_rode = explode(',', $je_uit_de_database_opgehaalde_string);
 
Fout, echt helemaal fout.



Absolute regel 1 (!) bij databases is 'nooit 2 waarden in 1 veld opslaan'. Nooit, gewoon niet. Normalisatie is het keyword.


Even een simpele weergave van de opzet:

[spelers]
id_speler
speler
[...]

[kaarten]
id_kaart
kaart
[...]

[wedstrijden]
id_wedstrijd
plaats
datum
[...]


[kaartspeler]
id_kaart
id_speler
id_wedstrijd



Voor elk item uit de array maak je dus een query, die je uitvoert op de tabel 'kaartspeler'. Als je alles in één cel gaat proppen kun je er geen enkele bewerking op uitvoeren.
 
Ik begrijp uit je nieuwe topic bij SQL & Databases dat je bovenstaande manier hanteert nu? Zou wel leuk zijn als je dan ook even bedankt, of iets dergelijks.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan