Ankündigung

Einklappen
Keine Ankündigung bisher.

Datensätze ändern in SQL-Datenbank

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datensätze ändern in SQL-Datenbank

    Hallo,

    ich möchte vorhandene Datensätze einer Tabelle auflisten lassen und gegf. Änderungen speichern.
    Beim auflisten werden nicht alle einträge eines Datensatzes angezeigt.
    Datum = OK
    Tag-Name = wird "-Name" ausgegeben
    Uhrzeit = OK
    Kirche = OK
    Extras = leer
    Pfarrer = OK
    K-GD = wird "-GD" ausgegeben
    Nummer (ID) = OK

    Beim Speichern wird nur die DB abfrage wiederholt.

    Wo liegt der fehler

    PHP-Code:
     <form action="aendern_calbe.php" method="POST">
    <?php
    $db_link 
    mysql_connect("localhost","DB-NAME","DB-PW");
    mysql_select_db("db");

    $abfrage "SELECT * FROM TABELLE1 order by Nummer'";
    $ergebnis=mysql_db_query("DB-NAME""select * from TABELLE1 order by Nummer");
     while(
    $row mysql_fetch_object($ergebnis))
     {
    echo <<<END
    <table><tr>
    <td><input name='Datum[]' type='date' size='10' value="
    $row->Datum"></td>
    <td><input name='Tag-Name[]' type='text' size='15' value="
    $row->Tag-Name"></td>
    <td><input name='Uhrzeit[]' type='time' size='8' value="
    $row->Uhrzeit"></td>
    <td><input name='Kirche[]' type='text' size='15' value="
    $row->Kirche"></td>
    <td><input name='Extras[]' type='text' size='15' value="
    $row->extras"></td>
    <td><input name='Pfarrer[]' type='text' size='15' value="
    $row->Pfarrer"></td>
    <td><input name='K-GD[]' type='text' size='5' value="
    $row->K-GD"></td>
    <td><input name='Nummer[]' type='int' size='11' value="
    $row->Nummer"></td>
    <td><input type="submit" name="submit" value="Abschicken!"></td>

    </tr></table>
    END;
    }

    echo 
    "</form>";
    $name $_POST["name"]; 
    $id $_POST["id"]; 
    $sqlab="UPDATE TABELLE1 SET name = '".$name."' WHERE id='".$id."'";
    mysql_db_query("DB_NAME"$sqlab); 
    ?>
    Vielen Dank im Voraus!

    MfG
    René Kindermann

    P.S.: Wie heißt es in der Regel: Ich will kein Experte werden!

  • #2
    In der Regel möchte mal als Entwickler aber auch, dass die Applikation eine Weile lang läuft, ohne dass es Probleme gibt.

    Die älteste der drei mysql-Erweiterungen ist veraltet (mysql_*-Funktionen, nicht die MySQL-Datenbank) und wird in den kommenden Versionen aus PHP entfernt. Aktuell wirft sie schon E_DEPRECATED-Fehler bei einer Verbindung zur Datenbank. Des Weiteren stehen dir sehr viele tolle Features von mysql mit diesen Funktionen nicht zur Verfügung! Weiterführende Links:
    Choosing an API
    Warum man mysql* generell nicht (mehr) nutzen sollte.
    Wie man von mysql* auf PDO umsteigt
    Wissenswertes zum Thema SQL-Injection

    Kommentar


    • #3
      In der Regeln mögen Computer, und vorallem Programmiersprachen es nicht wenn man - benutzt, deshalb lieber _ benutzen, dann wird es (vielleicht) funktionieren.
      - Laravel

      Kommentar


      • #4
        Nee, das wird trotzdem nicht funktionieren...

        Die Felder im Formular sind nicht die, die in PHP abgefragt werden. Im HTML wird Arraynotation verwendet.

        POST Daten anschauen! var_dump($_POST);
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Hallo,

          erstmal Danke für die hilfe.

          Wenn ich das richtig verstanden habe, nutze ich in meinem script ein php was in der nächsten Version nicht mehr funktioniert? Die DB kann auch weiterhin MySQL bleiben?

          Dann benötige ich noch mehr Hilfe als ich dachte!

          Kann mir jemand aktiv helfen den code umzubauen und auf den neusten stand zu

          DANKE.

          MfG
          René Kindermann

          Kommentar


          • #6
            Wenn ich das richtig verstanden habe, nutze ich in meinem script ein php was in der nächsten Version nicht mehr funktioniert? Die DB kann auch weiterhin MySQL bleiben?
            Dann hast Du das leider nicht ganz richtig verstanden. PHP bringt drei Erweiterungen für MySQL-Datenbanken mit. Du nutzt die mysql_*-Funktionen von PHP, die veraltet sind ( damit ist erstmal nicht MySQL selbst gemeint! ).
            Steig um auf MySQLi oder - mein Favorit - PDO. Die Links hat rkr Dir gepostet!

            Was das Ausgangsproblem betrifft, so vermute ich zusätzlich eine Problematik in Deinem HereDoc:
            PHP-Code:
            echo <<<END 
            <table><tr
            <
            td><input name='Datum[]' type='date' size='10' value="$row->Datum"></td
            // ...
            END
            für meine Begriffe musst Du mit Brackets auf Variablen zugreifen:
            PHP-Code:
            echo <<<END 
            <table><tr
            <
            td><input name='Datum[]' type='date' size='10' value="{$row->Datum}"></td
            // ..
            END
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              @Arne Drews:
              bin mit dem ganzen in der Scriptbörse, da es ja 2. scribte sind die ich erstellen wollte und noch 2 die an den neuen Standard mit angepasst werden müssen.
              Mir fehlt die Zeit um mich da einzuarbeiten.

              Kommentar

              Lädt...
              X