Arbeitsverweigerung Eines Skripts!!!

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

  • Arbeitsverweigerung Eines Skripts!!!

    moin,
    bin am verzweifeln!!! seit stunden suche ich einen fehler in meinem skript und kann ihn nicht finden!!! es sollen über drei skripte zwei datenbanktabellen geUPDATET werden.
    skript 1 hat folgendes formular:

    PHP-Code:
    <form name="updateAllgemein" action="edit_1.php" method="post">
    [...]
    <
    input type="submit" name="updateAllg" value="Speichern"
    in edit_1.php werden die datensätze mit folgendem code in die DB geschrieben nachdem eine verbindung zum datenbankserver erfolgreich hergestellt wurde:

    PHP-Code:
     if ($updateAllg) {

    $update_allgemein "UPDATE allgemein SET feld_1='$feld_1', feld_2='$feld_2', feld_3='$feld_3' WHERE id='$allgemein_id'";
    mysql_query($update_allgemein);
     } 
    hier gibt es wiederum folgendes formular:

    PHP-Code:
    <form name="kunUpdate" action="edit_2.php" method="post">
    [...]
    <
    input type="submit" name="kunst" value="Speichern"
    in edit_2 sollten die datensätze auf folgende weise gespeichert werden nachdem wieder eine verbindung zum server hergestellt wurde:

    PHP-Code:
    if ($kunst) {

    $query "UPDATE kunstler SET daten_1='$daten_1', daten_2='$daten_2', daten_3='$daten_3' WHERE id='$kunstler_id'";
    mysql_query($query);

    leider klappt dies nicht obwohl die daten in dem skript ankommen!!!! die datenbank-felder sind vom typ tinyint, die dazugehörenden formularfelder sehen so aus:

    PHP-Code:
    <input type="text" name="veg" size="2" maxlength="2">. 
    für einen schnellen durchblick bin ich sehr dankbar!!!

    streicher
    Zuletzt geändert von streicher; 07.01.2003, 03:15.

  • #2
    Hast du es schonmal mit mysql_error(); versucht?

    Dann siehst du nämlich, was für ein MySQL-Fehler vorliegt!

    Na ja aber ich hab auch einen Lösungsvorschlag und zwar gefällt mir die If-Schleife nicht!

    Schreib die mal so:

    PHP-Code:
    if ($_POST[updateAllg]=="") { } else {
    mysql_query("UPDATE allgemein SET feld_1='$feld_1', feld_2='$feld_2', feld_3='$feld_3' WHERE id='$allgemein_id'");
     } 
    Ich weiß jetzt leider nicht ob´s geht aber ich hoffe doch

    Kommentar


    • #3
      dein vorschlag hat war leider nicht erfolgreich! habe die if-schleife jetzt folgendermaßen verändert:

      PHP-Code:
      if ($updateAllg == TRUE) {
      [...] 
      das problem besteht jedoch weiterhin!
      wie funzt eigentlich der mysql_error(); code? wenn ich die zeile so wie sie ist in meinem betreffenden skript platziere, passiert nichts.

      streicher

      Kommentar


      • #4
        Ersetz mal:
        mysql_query($query);
        durch:
        mysql_query($query) or die(mysql_error());
        Wenn irgentwo ein Fehler auftritt, dann findest Du ihn so auf jeden Fall.

        Sollte das nicht helfen, dann gib mal die Abfrage mit
        echo $query;
        aus und sieh nach, ob alle Werte in der Abfragebedingung richtig gesetzt sind und ob es in der DB überhaupt einen Datensatz mit den Eigenschaften gibt.
        Of all things I've lost
        I miss my mind the most

        Kommentar


        • #5
          yo, mysql_error funzt! leider erkenn ich den fehler immer noch nicht

          PHP-Code:
          You have an error in your SQL syntax near 'double='3', bestatigt='ja', nonveg='3', veg='3', vorcat='3', anreise='3' WHERE i' at line 1 
          das update sieht folgendermaßen aus:

          PHP-Code:
          "UPDATE kunstler SET agentur='$agentur', tourm='$tourm', telefon='$telefon', mail='$mail', anzahl='$anzahl', hotel='$hotel', single='$single', double='$double', bestatigt='$bestatigt', nonveg='$nonveg', veg='$veg', vorcat='$vorcat', anreise='$anreise' WHERE id='$kunstler_id'"
          die daten werden auch korrekt an das skript übergeben!!! bei den datenfeldern der DB handelt es sich um tinyint, die laut dokumentation ganzzahlen bis 255 aufnehmen können. da lieg ich doch mit einem wert von 3 noch im grünen bereich, oder nicht, und es werden nur werte übergeben, die <=99 sind. das feld bestatigt ist vom typ varchar und soll einfach nur einen string aufnehmen.

          Kommentar


          • #6
            double ist ein MySQL begriff. daher kommt er durcheinander.
            benenne dieses feld um. double -> double2

            oder aber, du musst es bei den querys immer in spezielle anführungszeichen schreiben.

            Code:
            ....ingle', ´double´='$double', besta....
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              BINGO!!!!

              ES FUNKTIONIERT!!!

              Danke,
              Abraxax

              Kommentar

              Lädt...
              X