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

Verflixt mein Fehler.
Da es sich um Textfelder handelt (warum einmal VARCHAR und einmal TEXT?), müssen die Werte in Hochkomma eingeschlossen werden.

Hier sind sie enthalten, tausche also diese Zeile aus und teste dann nochmal:

PHP:
$val[] = "('" .mysql_real_escape_string($_GET['user']) ."', '" .mysql_real_escape_string($_GET['spieler'][$a]) ."')";
 
Beim direkten Eingeben des Select Befehls kommt "#1054 - Unknown column 'Mirko' in 'field list'"

Die Echo ausgabe hab ich eingefügt aber bringt folgende Fehlermeldung:

Notice: Undefined index: spieler in /customers/b/3/5/mirkolinho.de/httpd.www/Check.php on line 53 Warning: implode(): Invalid arguments passed in /customers/b/3/5/mirkolinho.de/httpd.www/Check.php on line 53

Habs gefunden. Stand zu weit unten und musste natürlich in den Arbeitsblock.

in die Datenbank schreibt er aber schonmal was ;)

Danke schon einmal dafür!

Kann mir noch jemand einen Tipp geben wie ich das ganze (Die Spieler) nun noch übersichtlich ausgeben kann?

Also das am Ende sowas steht wie

User: Müller
Ribery
Robben
...
...

Oder so ähnlich.
 
Der Fehler dürfte nur beim ersten Laden der Seite kommen da hier keine GET-Daten vorhanden sind. Du musst diese Ausgabe auch in den IF-Block setzten, dann sollte der Fehler weg sein.

Was du auch noch prüfen musst, ist ob überhaupt ein Name eingegeben und mindestens 1 Spieler ausgewählt wurde. Wenn nicht tritt auch ein Fehler auf!
 
ja siehe oben hab ich ausnahmsweise selbst rausgefunden ;)

Geht soweit schon einmal ganz gut. nun würde ich gern das ganze wieder übersichtlich aus der DB darstellen ;)
 
Zuerst -zB via Formular- die gewünschte Userid ($userid)ermitteln lassen und dann:
PHP:
$sql="
SELECT 
spielerid 
FROM 
kader
WHERE 
userid=$userid
ORDER BY
spielerid";
Das ganze wie gehabt gegen die DB schicken und ausgeben.
 
2 Fragen hab ich erneut:

Bei folgenden Teil beziehe ich mich ja auf die Textbox Namens User:

PHP:
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);

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

Nun habe ich aber die Variable "$_SESSION['user']" die der angemeldete User hat.
Nun möchte ich statt "user oben "$_SESSION['user']" nehmen aber einfach ersetzen geht nicht :)

2. Derzeit wird immer in die Tabelle dazugeschrieben. Ich möchte nun aber, dass jedes mal die alten Einträge zu dem User gelöscht werden, so dass immer nur eine Auswahl zu ihm drinsteht.

Danke
 
Warum kannst du die SESSION-Variable nicht dafür nehmen? So bald sie einen gültigen Wert hat, sollte es gehen.

PHP:
 $sql = "DELETE FROM kader WHERE user = '" .mysql_real_escape_string($_GET["user"]) ."'";

Diese Anweisung löscht ALLE (!!) Einträge des Users.
 
Du tauscht überall einfach die Variable $_GET["user"] gegen die Variable $_SESSION["user"] aus.

Außer natürlich an der Stelle wo du auf die Angaben des Formulars zugreifen willst.

Im letzten Beispiel somit:

PHP:
 $sql = "DELETE FROM kader WHERE user = '" .mysql_real_escape_string($_SESSION["user"]) ."'";
 
scheint zu gehen nur der Delete Befehl geht in den Fehler

"Parse error: syntax error, unexpected ';' in /customers/b/3/5/mirkolinho.de/httpd.www/save.php on line 1041 "
 

Neue Beiträge

Zurück