Checkbox übertragung in Datenbank = arry

smyle

Erfahrenes Mitglied
Hallo ich habe diesen folgenden Code:

PHP

$Gesch = $_POST['Geschlecht'];
$Hobbys = $_POST['checkbox'];

$insert = ("INSERT INTO formular
(`Geschlecht`,`Hobbys`)
VALUES
('$Gesch','$Hobbys')");

HTML

<form action="PHP.php" method="post">
<table>
<tr>
<td colspan="2"><input type="checkbox" value="Gamen" name="checkbox[]">
Gamen
<input type="checkbox" align="right" value="Lesen" name="checkbox[]">
Lesen
<input type="checkbox" value="Andere" name="checkbox[]">
Andere...</td>
</tr>
</table>
</form>

Nun wenn ist das so; wenn ich die Daten der angewählten Checkboxen in meiner MySql Datenbank sende wird nicht der Wert (value), in die spalte "Hobbys" eingetragen, sondern "array".
Wieso ist das so?
Kann man für mehrere Checkboxen nicht nur eine Spalte in der Datenbank erstellen?

Weill ich wollte das so machen; Das die Werte in der gleichen Spalte eingeschrieben werden, am liebsten getrennt durch einem Komma.

Ist das mäglich?

Kann mir jemand helfen?
 

Flex

(aka Felix Jacobi)
Ja, weil es ein Array ist und auf diese Weise darauf zugegriffen wird.

PHP:
echo $_POST['checkbox'][0];

Wobei es bei 0 startet und hochzählt, wie du Checkboxen definiert hast.
 

smyle

Erfahrenes Mitglied
Indemfall heisst das:

Ich muss für jeden Checkbox einzeln ein Feld machen, damit ich weis welche Felder, die Person ausgewählt hat?

Gibt es nicht noch eine andere Variante/Möglichkeit um so entwas an der Datenbank zu übergeben?
 

Flex

(aka Felix Jacobi)
[phpf]implode[/phpf] kann dir alle Teile eines Arrays in einen String einfügen (mit einem Trennzeichen) und den könntest du dann eintragen... [phpf]implode[/phpf] ist es auch egal, wieviele Elemente das Array hat.
 

smyle

Erfahrenes Mitglied
Oh cool

Ich habe es mit dem implode(); versucht und es hat funktioniert.

Danke schön für die Hilfe

Grüsse an alle.
:D
 

smyle

Erfahrenes Mitglied
Leider habe Ich wieder ein Problem mit den Checkboxen. :(

Ich habe drei hobbys die man auswählen kann.
Bei dem Checkbox "name="checkbox[3]" "sollte eine der '<input type="hidden" name="Andere" ' auftauchen um die "Andere" Hobbys von Hand anzugeben, die dann in der Datenbank eingetragen werden.

Ist etwas schwer zum erklären, hoffe ihr habt es verstanden.

Der Code:

<tr>
<td colspan="2"><input type="checkbox" value="Gamen" name="checkbox[1]">
Gamen
<input type="checkbox" align="right" value="Lesen" name="checkbox[2]">
Lesen

<input type="checkbox" value="Andere" name="checkbox[3]">
Andere...<br>


<input type="hidden" name="Andere" value="Andere" alt="Andere" align="right" maxlength="30"></td>

</tr>

//Checkbox Andere
if($_POST['Chckbox[3]'] == True)
{
show($_POST['Andere']);
}

ps: ich dachte der Befehl "show" gibt es im PHP ist das so?
Wenn nicht, was für Befehle gibt es um eine input ... anzuzeigen?

Hoffe jemand kann mir helfen.
 

Flex

(aka Felix Jacobi)
Wie Loomes schon sagte. Weiterhin wird bei Variablen zwischen Groß- und Kleinschreibung unterschieden, also wäre dein Beispiel von der Syntax her schon falsch.