Datenbank Update per Formular

Liebe Traumprojekt Benutzer,

wie Ihr sicherlich bemerkt habt, ist das Traumprojekt eine gewisse Zeit nicht erreichbar gewesen.
Der Hauptgrund dafür ist, dass es einen Betreiberwechsel gegeben hat.
Nähere Info´s dazu bekommt Ihr in einem separaten Thema.

Bitte gebt uns etwas Zeit den Wechsel reibungslos über die Bühne zu bringen.

Mit freundlichen Grüßen Traumprojekt-Team
  • Hallo Zusammen,

    Ich bin neu hier und habe ein Problem.

    Ich bastel gerade an meinem ersten PHP/MySQL Projekt und muss dort in einer Tabelle in jeder Zeile 4 Spalte in einer Datenbank updaten.

    Ich gebe euch der einfachheithalber mal meinen Code zum auslesen aus der Datenbar an.

    Es müssen folgende Spalten geupdatet werden

    • Anwessend?
    • Tagungsunterlagen?
    • Referent?
    • Bemerkung

    Diese Updates müssen aber Zeile für Zeile durchgeführt werden können.


    Mein problem ist das ich gefüllte 1000 Dinge ausprobiert habe die ich im Internet gefunden habe aber leider ohne Erfolg.


    Daher bitte ich Euch um Hilfe.


    Ich bedanke mich schon im Voraus für eure Hilfe.


    MfG

    Marcel

  • Wenn ich das richtig sehe, dann hast Du einen Submit-Button pro Zeile. Korrekt?


    Ich würde auf der Ergebnis-Seite folgendes mal einbauen:

    Code
    1. print_r($_POST);

    Damit siehst Du, was genau übergeben wird, wenn jemand auf submit klickt.


    Mit dieser Info kannst Du Dich dann an das Zusammenstellen der Update-Statements dranmachen.

    Grüße vom Griechen,
    Cybergreek!

    Einmal editiert, zuletzt von Cybergreek ()

  • Mein problem ist das ich gefüllte 1000 Dinge ausprobiert habe die ich im Internet gefunden habe aber leider ohne Erfolg.

    und was hast du wirklich ausprobiert? von 1000 Sachen sehe ich hier: 0. Wenn das PRoblem nicht nachvollziehbar ist kann dir auch keiner helfen. (ausser er macht deine Arbeit)

  • Ich danke dir Cybergreek

    ich habe es Dank deiner Hilfe hinbekommen. Mein Code sieht jetzt wie folgt aus.


    Nun habe ich noch das Problem das ich ja noch irgendwie die Checkbox auslesen muss ob diese aktiv ist.

    Wenn sie aktiv ist soll in die DB eine 1 und wenn nicht soll die 0 drin bleiben.


    Auslesen mache ich wie folgt.


    PHP
    1. <?php if ($row["anmeldungen_referent"]==1) {echo "<input type=\"checkbox\" name=\"anmeldungen_referent\" value=\"1\" checked=\"checked\" /><span style=\"color:green;\">&nbsp;Ist Referent</pan>";} else {echo "<input type=\"checkbox\" name=\"anmeldungen_referent\" value=\"0\" /><span style=\"color:red;\">&nbsp;Kein Referent</span>";} ?>

    aber wenn ich nun die Checkbox anklicke bekomme ich aber leider mit deinem Code keine Ausgabe.

    Wie müsste ich das denn ändern das ich das verwenden kann denn ich möchte ungern da auch ein textfeld machen das dann Ja/nein eingetragen werden muss.


    Danke im Voraus

    MfG

    Marcel

  • In der Datenbank habe ich entweder "0" oder "1" stehen

    Beim auslesen aus der DB soll bei "1" die Checkbox aktiv sein und bei "0" ohne hacken.

    Aber es soll auch möglich sein durch das betätigen des Update Button das ganze zu ändern.

  • In der Datenbank habe ich entweder "0" oder "1" stehen

    Beim auslesen aus der DB soll bei "1" die Checkbox aktiv sein und bei "0" ohne hacken.

    Aber es soll auch möglich sein durch das betätigen des Update Button das ganze zu ändern.

    Und welcher von diesen Punkten funktioniert nicht?

    Grüße vom Griechen,
    Cybergreek!

  • Im HTML Quellcode wirst Du auch nichts finden, da der statisch ist.


    Du musst nach dem anklicken der Checkbox auf Deinen Submit-Button klicken, damit diese Änderung am Server ankommt.

    In dem Update, das Du hier oben gepostet hast, aktualisierst Du aber nur anmeldungen_bemerkung und nicht anmeldungen_referent. D.h. das müsste dort ergänzt werden.


    Um hier aber vernünftig zu helfen wäre der vollständige Code gut.

    Grüße vom Griechen,
    Cybergreek!

  • Ja genau darum geht es mir ja das ich nicht weiss wie ich per php auslesen kann ob checked oder nicht.

    Wie gesagt bei checked soll eine "1" in die datenbank geschrieben werden und wenn nicht dann die "0".


    PS: Ich bin leider momentan nicht zuhause um den kompletten Code zu posten aber es ist im Grunde der Code aus dem ersten Post ergänzt durch den Code im vierten Post

  • Das mit den Checkboxen habe ich jetzt hinbekommen.

    Nun habe ich ein weiteres Problem.

    Beim Update soll auch das aktuelle Datum und die Uhrzeit in die DB eingetragen werden aber auch nur wenn die Checkbox "anmeldungen_anwesend" geändert wird. Bei allen anderen Änderung die auch im Nachhinein erfolgen könnten soll aber der Zeitstempel nicht geändert werden.

    ich hoffe ich habe mich jetzt richtig ausgedrückt. 8o


    Hier mal meinen kompletten Code wie er momentan aussieht.

    Wenn ich jetzt ein Update mache bekomme ich folgende Ausgabe


    Code
    1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'anmeldungen_tagungsunterlagen = '', anmeldungen_referent = '', anmel' at line 5Array ( [anmeldungen_orderID] => 47 [anmeldungen_bemerkung] => ---NA--- [update] => Update )

    Nehme ich die Zeile "anmeldungen_anwesenddatum = '$anmeldungen_anwesenddatum';" raus geht das update natürlich ohne Zeitstempel

    Die Spalte "anmeldungen_anwesenddatum" hat in der DB den Typ "datetime".


    Ich hoffe du kannst mir bei diesem Problem genauso gut und schnell helfen wie bei den anderen Problemen.


    Danke im Voraus

    Marcel

    Einmal editiert, zuletzt von Wszene.de ()

  • Der Fehler kommt dadurch zustande, dass da ein Semikolon statt nem Komma im Update ist (rot markiert):


    Zitat
    1. $sql_update = "UPDATE gb_anmeldungen
    2. SET
    3. anmeldungen_anwesend = '$anmeldungen_anwesend',
    4. anmeldungen_anwesenddatum = '$anmeldungen_anwesenddatum';
    5. anmeldungen_tagungsunterlagen = '$anmeldungen_tagungsunterlagen',
    6. anmeldungen_referent = '$anmeldungen_referent',
    7. anmeldungen_bemerkung = '$anmeldungen_bemerkung'
    8. WHERE
    9. anmeldungen_orderID = $anmeldungen_orderID
    10. ";

    Das mit dem Datum würde ich anders machen.

    Mal in "php-prosa":

    Ich hoffe, das reicht Dir schon so aus.

    Grüße vom Griechen,
    Cybergreek!

  • Ich habe es leider gestern Abend nicht mehr geschafft aber jetzt habe ich es eingebaut und es funktioniert.

    Danke dafür aber, ja leider wieder ein aber, leider aktualisiert sich die Zeit bei jedem Klick auf den Updatebutton.

    Kann man das evtl. noch so ändern die sich nur ändert wenn die unchecked Box gescheckt wird? Also wenn sie schon checked ist soll sich die Zeit nicht ändern.


    Danke im Voraus

    Marcel

  • Probier mal das $sql_update mit folgendem zu ersetzen:

    Code
    1. $sql_update_addon = " anmeldungen_anwesenddatum = IF(anmeldungen_anwesend=1, anmeldungen_anwesenddatum, NOW()), ";

    Ist ungetestet, aber Du bist ja auf einem Testsystem unterwegs, oder?


    Das prüft beim Update den Inhalt von anmeldungen_anwesend vor dem Update und schreibt da entweder anmeldungen_anwesenddatum in anmeldungen_anwesenddatum rein (wenn in anmeldungen_anwesend eine 1 stand) oder NOW().

    Grüße vom Griechen,
    Cybergreek!