checkbox update Probem (php, Mysql)

  • Ich habe Probleme mit dem Update bei einer Checkbox

    Datenbankfeld eu, input type ist checkbox
    INPUT FELD in FORMULAR:
    <input type="checkbox" name="eueingabe[<?php echo $ID_e ; ?>]" value="1" <?php echo ($eu) == "1" ? "checked" : ""?>>

    HIER SOLLTE UPDATE STATTFINDEN:
    if(isset($_POST['eueingabe']))
    {
    foreach($_POST['eueingabe'] as $key => $val)
    {
    $ID_e=$key;
    $eueingabe=$val;
    $eueingabe = isset($_POST['eueingabe'])? 1 : 0;
    $query ="UPDATE tab SET eu='$eueingabe' WHERE ID_e='$key'";
    $sql = mysql_query( $query ) or die(mysql_error());
    }
    }
    DAS TUT ES NICHT, bei inserts alles wunderbar, bei while Schleifen auch
    Danke für Hilfe!

  • Richtig debuggen


    • Man bemerkt, dass ein Skript nicht das tut, was es soll.
    • Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
    • Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    • Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    • An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysql_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    • Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    • Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    • Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    • Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.


    Warum schreibst du Variablen sinnlos um?

    PHP
    $ID_e=$key;
    $eueingabe=$val;


    Und überlege, welchen Sinn diese Zeile hat:

    PHP
    $eueingabe = isset($_POST['eueingabe'])? 1 : 0;
  • Hallllooooo? Jemand zu Hause??!?!?!?!?!?

    Bei dem Sermon steht mehr als nur das Error-Reporting hochderehen!! Wenn du dir mal die Mühe machen würdest und dir mal die Variablen per echo ausgeben lassen würdest, dann würdest du den Fehler selber finden! Also erspare mir so Sprüche wie

    der Sermon war nicht nötig, - ist aber copy paste nehm ich an... wenn du des Forums müde bist, wieso die Arbeit?

  • Auweia, Zickenalaram! Die Reihenfolge, wie ich hier antwortete, überlässt du bitte mir! Wenn mich nicht alles täuscht, bist du diejenige, die ein Problem hat und Hilfe braucht. Da würde ich besser mal nicht so rumzicken!

  • Wieso sind die ärgerlich? Die sollen nur dazu anregen, solche Fehler selber zu finden. Wie heißt es doch so schön: Aus Fehlern lernt man. Durch Vorkauen lernt man eher nichts. Und ein paar echho's einbauen ist ja keine wirkliche Arbeit.

    Vielleicht als Denkanstoß: das Problem lässt sich mit 2x mysql_query ohne Schleife lösen.

  • Nach 8 Minuten schon eine Antwort darauf. Mit anderen Worten, wirklich nachgedacht hast du über meinen Hinweis nicht. Oder es fehlen die nötigen Grundlagen, was die Sache auch nicht besser macht.

    Ungetestet: