badcoder: MySQL Update funktioniert nicht...

Hallo zusammen!

Ich möchte ein bestimmtes Feld (z1) in einem bestimmten Datensatz (id='$rv[0]') unter einer bestimmten Bedingung (array_shift($ff) < array_pop($ff)) per PHP in meiner MySQL-Datenbank updaten. Leider funktioniert der Code nicht mehr, obwohl vorhin noch alles klappte. Was habe ich abgeändert, dass das jetzt nicht mehr funktioniert?

if ( array_shift($ff) < array_pop($ff) ) {  
mysql_query("UPDATE tabelle SET z1='$y1' WHERE id='$rv[0]'") or die(mysql_error());  
echo "Der Datensatz mit der id=$rv[1] wurde in der Tabelle ver&auml;ndert. </br >";  
} else {  
  
}

Danke!

  1. if ( array_shift($ff) < array_pop($ff) ) {

    mysql_query("UPDATE tabelle SET z1='$y1' WHERE id='$rv[0]'") or die(mysql_error());
    echo "Der Datensatz mit der id=$rv[1] wurde in der Tabelle ver&auml;ndert. </br >";
    } else {

    }

      
    Was steht in `$ff`{:.language-php}, `$y1`{:.language-php}, `$rv`{:.language-php}? Was steht in der Tabelle? Was ist mit sinnvollen Variablennamen?  
    Gibt es einen Fehler oder eine Ausgabe?  
      
    In dem MySQL Statement schreibst du `$rv[0]`{:.language-php}, in der Ausgabe danach `$rv[1]`{:.language-php}.  
      
    Gibt es einen Grund dafür, dass du `&auml`{:.language-html}; statt `ä`{:.language-html} schreibst? Oder verschleierst du ein Zeichensatz problem.
    
    1. SET z1='$y1'

      Ist auch auffällig.

      1. SET z1='$y1'

        Ist auch auffällig.

        Wieso?
        Im String steht dann

        SET z1='InhaltVonY1' ...

        1. Wieso?
          Im String steht dann

          SET z1='InhaltVonY1' ...

          Ich schätze das war so gemeint, weil du in ein Feld namens z den Inhalt y schreibst. Könnte ebenfalls eine Fehlerquelle sein, denn naheliegender wärs wenn man eine Variable für ein Feld z1 auch $z1 nennt und nicht $y1.

    2. In dem MySQL Statement schreibst du $rv[0], in der Ausgabe danach $rv[1].

      Danke, das habe ich übersehen! Nun klappt es :)

      Gibt es einen Grund dafür, dass du &auml; statt ä schreibst? Oder verschleierst du ein Zeichensatz problem.

      Mein XAMPP zeigt es sonst nicht korrekt an. Warum, weiß ich nicht. Bin völlig neu, was PHP angeht.

      1. Hallo,

        Gibt es einen Grund dafür, dass du &auml; statt ä schreibst?

        Mein XAMPP zeigt es sonst nicht korrekt an.

        aha, also ...

        ... verschleierst du ein Zeichensatzproblem.

        ... das man eigentlich lösen sollte.

        Warum, weiß ich nicht.

        Ganz einfach: Weil dein Apache eine andere Codierung für das Dokument angibt, als du beim Schreiben tatsächlich verwendest.
        Entweder solltest du also das Dokument auch tatsächlich in der Codierung speichern, die dein Server übermittelt; oder deinen Apachen so umstellen, dass er die Codierung angibt, die du auch tatsächlich verwendest. Da du das Dokument mit PHP erzeugst, kannst du den richtigen Header natürlich auch mit PHP erzeugen, ohne dass du in die Serverkonfiguration eingreifen musst.

        Bin völlig neu, was PHP angeht.

        Das macht nichts. Mit PHP hat das auch nichts zu tun.

        So long,
         Martin

        --
        F: Kennt jemand ein Automobil-Märchen?
        A: Radkäppchen und der böse Golf.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Ganz einfach: Weil dein Apache eine andere Codierung für das Dokument angibt, als du beim Schreiben tatsächlich verwendest.
          Entweder solltest du also das Dokument auch tatsächlich in der Codierung speichern, die dein Server übermittelt; oder deinen Apachen so umstellen, dass er die Codierung angibt, die du auch tatsächlich verwendest. Da du das Dokument mit PHP erzeugst, kannst du den richtigen Header natürlich auch mit PHP erzeugen, ohne dass du in die Serverkonfiguration eingreifen musst.

          Stimmt, der DOCTYPE fehlt. Ups. ;-)

          Bin völlig neu, was PHP angeht.

          Das macht nichts. Mit PHP hat das auch nichts zu tun.

          Richtig, das musste man auch schon bei HTML. Grins!