Daten aus Formular in Array werden nicht in DB geschrieben :(

Ich habe 2 Felder selectiert und senden gedrückt. Dann sollte es ja in die Datenbank geschrieben werden.
/Check.php?sent=yes&user=mirkolinho&spieler[]=Ribery&spieler[]=Goetze

steht dann oben im Adressfeld zur Orientierung.
 
Deshalb weiß hier trotzdem keiner wie der Code jetzt aussieht der diese Werte verarbeiten soll und ohne das kann man dir nicht helfen!
 
Dachte steht ganz oben:

PHP:
<?php
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', TRUE);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Checkboxen mit PHP auswerten</title>
</head>
<body>

<form action="Check.php">
<input type="hidden" name="sent" value="yes">
<input type="text" name="user"><br>
<input type="checkbox" name="spieler[]" value="Robben">&nbsp;Robben<br>
<input type="checkbox" name="spieler[]" value="Ribery">&nbsp;Ribery<br>
<input type="checkbox" name="spieler[]" value="Reus">&nbsp;Reus<br>
<input type="checkbox" name="spieler[]" value="Goetze">&nbsp;Goetze<br>
<input type="checkbox" name="spieler[]" value="Thiago">&nbsp;Thiago<br>
<input type="submit">
</form>
<?php

//Verbindung herstellen
$db = mysql_connect("xxx.de.mysql", "xxx_de", "xxx") or die ("Keine Verbindung möglich: ".mysql_error());
mysql_select_db("mirkolinho_de",$db) or die ("Keine Verbindung möglich: ".mysql_error());

if (isset($_GET['sent']) and $_GET['sent'] == 'yes') {
    for ($a = 0; $a < count($_GET['spieler']); $a++) {
        $val[] = "(" .mysql_real_escape_string($_GET['user']) .", " .mysql_real_escape_string($_GET['spieler'][$a]) .")";
    }
    $values = implode(', ', $val);

    $sql = "INSERT INTO kader (username, spielerid) VALUES " .$values;
}

//Verbindung beenden
mysql_close($db);

                 echo '<h1>Ihre Mannschaft &quot;'.$user.'&quot;:</h1>';
                 echo '<p>Spieler:<br><br>'.$spieler_text.'</p>';

?>
</body>
</html>
 
Ah, das wußte ich nicht das du oben den Code auf den neuesten Stand gebracht hast.

Du erstellst jetzt zwar die SQL-Anweisung aber das war es dann auch. Es gibt keine mysql_query-Anweisung womit die SQL-Anweisung selber dann auch ausgeführt wird.

Ich würde an deiner Stelle auch den Code mit dem die Verbindung zur Datenbank hergestellt wird in den IF-Block packen. Außerhalb wird er ja nicht gebraucht!
 
So sieht der Code nun aus.

Leider funktioniert nun die Ausgabe der Auswahl nicht mehr weil die Definition oben ja nun weg ist.
Fehlermeldung kommt auch keine aber es wird auch nichts in die DB geschrieben :(

PHP:
<?php
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', TRUE);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Checkboxen mit PHP auswerten</title>
</head>
<body>

<form action="Check.php">
<input type="hidden" name="sent" value="yes">
<input type="text" name="user"><br>
<input type="checkbox" name="spieler[]" value="Robben">&nbsp;Robben<br>
<input type="checkbox" name="spieler[]" value="Ribery">&nbsp;Ribery<br>
<input type="checkbox" name="spieler[]" value="Reus">&nbsp;Reus<br>
<input type="checkbox" name="spieler[]" value="Goetze">&nbsp;Goetze<br>
<input type="checkbox" name="spieler[]" value="Thiago">&nbsp;Thiago<br>
<input type="submit">
</form>
<?php

if (isset($_GET['sent']) and $_GET['sent'] == 'yes') {

//Verbindung herstellen
$db = mysql_connect("xxx.de.mysql", "xxx_de", "xxx") or die ("Keine Verbindung möglich: ".mysql_error());
mysql_select_db("mirkolinho_de",$db) or die ("Keine Verbindung möglich: ".mysql_error());

    for ($a = 0; $a < count($_GET['spieler']); $a++) {
        $val[] = "(" .mysql_real_escape_string($_GET['user']) .", " .mysql_real_escape_string($_GET['spieler'][$a]) .")";
    }
    $values = implode(', ', $val);

    $sql = "INSERT INTO kader (username, spielerid) VALUES " .$values;
    mysql_query($sql);

    //Verbindung beenden
    mysql_close($db);

}

//                hier solle eigentlich nochmal die Auswahl ausgegeben werden :-(
                 //echo '<h1>Ihre Mannschaft &quot;'.$user.'&quot;:</h1>';
                 //echo '<p>Spieler:<br><br>'.$spieler_text.'</p>';

?>
</body>
</html>
 
Mache mal bitte eine Ausgabe "echo $sql" und schau dir an ob da alles stimmt (oder stelle es auch hier rein).

Diese Ausgabe kannst du dann z.B. auch bei phpMyAdmin o.ä. direkt eingeben und schauen ob sie da ausgeführt wird oder ob es da eine Fehlermeldung gibt.

Unten kannst du auch die $_GET-Variablen einsetzen.

PHP:
echo '<h1>Ihre Mannschaft &quot;'.$_GET["user"].'&quot;:</h1>';
echo '<p>Spieler:<br><br>' .implode(", ", $_GET["spieler"]) .'</p>';
 
Zuletzt bearbeitet:
Da kommt "INSERT INTO kader (username, spielerid) VALUES (Mirko, Ribery), (Mirko, Thiago) "

also eigentlich top richtig :(
vielleicht hat die DB nich das richige Format...

1 username varchar(20) latin1_swedish_ci
2 spielerid text latin1_swedish_ci
 

Neue Beiträge

Zurück