Zuletzt eingefügten DS bearbeiten.

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

  • Zuletzt eingefügten DS bearbeiten.

    Moin!

    Dies ist mein erstes Posting hier. Mir ist klar, dass Probleme dieser Art hier schon etliche Male besprochen wurden (MAX(), Sortieren und obersten Satz auslesen usw.).

    Mein Problem ist aber, dass ich die Umsetzung in PHP mit MySQL nicht hinbekomme. PHP-Version ist 5.0.1.
    PHP-Code:
    $Sqlstring "UPDATE `newsletter` SET
                        `event` = '
    $Event',
                        `date` = '
    $Date',
                        `editor` = '
    $Editor'
                        WHERE `index` = '9'"
    ;     // Anstatt 9 höchster Index

    $Result mysql_query($Sqlstring); 
    Ich möchte irgendwie an der Stelle wo jetzt die 9 steht den Index des zuletzt eingegebenen Datensatzes zur Verfügung haben.

    Das Indexfeld der Tabelle ist ein Auto-Increment-Feld.

    Hoffe, die Fragestellung ist so genehem ;-)
    Vielen Dank !

  • #2
    wenn du vorher einen datensatz einfügst, schau dir mal mysql_insert_id an

    wenn nicht, dann musst du wohl oder übel den höchsten datensatz vorher auslesen
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      mysql_insert_id funzt glaube ich nicht. Der Datensatz wird in einem anderen Php-File erzeugt. Deshalb habe ich schon damit gerechnet, den höchsten DS auslesen zu müssen. Also zurück zur Frage... :-)

      Kommentar


      • #4
        Original geschrieben von mrhappiness
        wenn nicht, dann musst du wohl oder übel den höchsten datensatz vorher auslesen
        damit wären wir wieder bei SELECT und MAX
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          wenn du wirklich sicher bist, dass du immer den datensätz mit der höchsten ID updaten willst - warum dann nicht einfach auf WHERE verzichten, und stattdessen ORDER BY id DESC LIMIT 1 verwenden ...?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Ist alles einfach gesagt. Ich bin absoluter Newbie in PHP. Bin noch am experimentieren und melde mich dann wieder.

            Kommentar


            • #7
              Ich bin absoluter Newbie in PHP.
              Kein Problem. Ist ja auch SQL

              schattenbaum.net hilft dir Grundlagen aufzubauen...

              Kommentar


              • #8
                Also, wenn ich das richtig verstanden habe seht ihr zwei Möglichkeiten:

                PHP-Code:
                $query mysql_query("SELECT Max(index) AS Maxindex FROM newsletter");

                // oder

                $query mysql_query("SELECT index FROM newsletter ORDER BY index DESC LIMIT 1"); 
                Habe alles versucht mit mysql_result irgendwie zu einem Wert zu kommen. Offensichtlich stehe ich auf dem Schlauch.

                Zum besseren Verständnis: Ich habe keine Ahnung wie ich jetzt auf eine Variable komme, die ich an besagter Stelle (s.oben) aufrufen kann.

                Habt ihr eine Idee (ideal wäre natürlich auch der entsprechende Code...)

                Kommentar


                • #9
                  joar. guck dir mal die grundlagen auf schattenbaum.net an.

                  Kommentar


                  • #10
                    Jou, habe es folgendermaßen probiert:
                    PHP-Code:
                    $ergebnis mysql_query($query);. 
                    Meinem Verständnis nach müsste dann der höchste Wert der Spalte index in der Variablen $ergebnis stehen. Tut er aber nicht (überprüft mit echo).

                    Kommentar


                    • #11
                      mysql_query haste das mal gelesen? Was steht das gibt die funktion zurück?

                      Kommentar


                      • #12
                        Original geschrieben von bub0815
                        Also, wenn ich das richtig verstanden habe seht ihr zwei Möglichkeiten:
                        [...]
                        $query = mysql_query("SELECT index FROM newsletter ORDER BY index DESC LIMIT 1");
                        nein, ich meinte eigentlich das schon direkt mit UPDATE kombiniert.

                        UPDATE newsletter SET ... ORDER BY index DESC LIMIT 1
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          @ wahsaga

                          PHP-Code:
                          $Sqlstring2 "UPDATE `newsletter` SET
                                              `event` = '
                          $Event',
                                              `date` = '
                          $Date',
                                              `editor` = '
                          $Editor'
                                              ORDER BY index DESC LIMIT 1"
                          ;

                          $Result2 mysql_query($Sqlstring2); 
                          Also so funzt es nicht.

                          Kommentar


                          • #14
                            Also so funzt es nicht.
                            soll heißen???

                            Kommentar


                            • #15
                              Sorry! Soll heißen, dass nichts passiert. Keine Fehlermeldung aber auch kein Update der Daten. Da es funzt wenn ich eine feste Zahl als Argument für die Where-Anweisung angebe, liegt es, denke ich, am Order By, oder?

                              Kommentar

                              Lädt...
                              X