Eintrag in Datenbank suchen und aktualisieren...

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

  • Eintrag in Datenbank suchen und aktualisieren...

    Hallö allerseits!

    Hab folgendes Problem:
    Ich bekomme vom Server die Variablen $name und $mtid.
    $mtid steht bereits irgendwo in der SQL-DB drinnen aber der $name nicht.

    Deshalb soll jetzt solange gesucht werden bis eine Übereinstimmung von $mtid in der DB gefunden wurde (Spalte wo gesucht werden soll heißt MTIDmm) und dann dort in der Spalte NAMEmm der Inhalt der Variablen $name eingetragen werden.

    Könnt ihr mir da weiterhelfen??

    Hier ein biederer Ansatz meinerseits:
    if {
    ($mtid ==
    $lesen = mysql_query("select MTIDmm from headrotation");
    $row = mysql_fetch_array($lesen)
    $eintrag = mysql_query(" update headrotation set NAMEmm='$name' where MTIDmm='$row[MTIDmm]' ");
    }
    $PHP resource 4ever$

  • #2
    hmm,

    lass doch den Overhead weg, so geht es doch direkt :

    $query = "UPDATE headrotation SET NAMEmm = '$name' WHERE MTIDmm = '$mtid'";

    Kommentar


    • #3
      OK. Dann sieht das ganze so aus:

      if {
      ($mtid ==
      $lesen = mysql_query("select MTIDmm from headrotation");
      $query = "UPDATE headrotation SET NAMEmm = '$name' WHERE MTIDmm = '$mtid'"; }


      Aber paßt der If-Vergleich so überhaupt??
      Bevor ich update muss ich ja rausbekommen, mit welchem DS in der Datenbank die Variable $mtid (die ich vom unwissenden Server bekomm) übereinstimmt.




      $PHP resource 4ever$

      Kommentar


      • #4
        hmm,

        noe, MySQL ist intelligent, es weiss ja das du den Satz Updaten willst wo WHERE MTIDmm = '$mTID' ist !!

        Genau dafür sind die DBs doch da um dir arbeit ab zu nehmen, also der Code siht so aus

        Code:
        $query = "UPDATE headrotation SET NAMEmm = '$name' WHERE MTIDmm = '$mtid'";
        $result = mysql_query($query,$conn);
        if ($result) { echo "Upgedated !" }

        Kommentar


        • #5
          DANKE, das ist ja SAUGEIL! Ein Hoch auf SQL!
          hab's grad eingebaut und werd's später (hab da noch 'n JavaScript-Problem) dann mal testen!!!

          Geht das ganze auch bei SELECT??
          Die Variante brauch ich nämlich auch?
          Also ich bekomm wieder die $mtid Variable vom Server und muss mir aber diesmal beim übereinstimmenden DS den Namen und das Datum in Variablen speichern.
          Oder haben die Variablen $name und $date dann schon ihren Wert wenn ich das so mache:
          $anfrage = "SELECT headrotation SET NAMEmm = '$name', DATEmm = '$date' WHERE MTIDmm = '$mtid'";

          Die php-Varialblen verlieren aber hoffentlich eh nicht ihren wert wenn ich die verbindung mit "mysql_close($verbindung);" kappe, oder??

          [Editiert von Metallica am 23-11-2001 um 16:48]
          $PHP resource 4ever$

          Kommentar


          • #6
            if {
            ($mtid ==
            $lesen = mysql_query("select MTIDmm from headrotation");
            $query = "UPDATE headrotation SET NAMEmm = '$name' WHERE MTIDmm = '$mtid'"; }

            Was ist das denn für ein Konstrukt? Ich blick überhaupt nicht, was das machen soll.

            CAT Music Files

            Kommentar


            • #7
              vergiß es, Sky. Ich hab da was falsch verstanden.

              Die Lösung meines ersten Problem's sieht jetzt folgendermaßen aus und müßte funken:
              --------------------------------------------------
              $name = "Frank"; //diesen wert bekomm ich vom Server
              $mtid = "345"; //diesen wert bekomm ich ebenfalls vom Server
              $query = "UPDATE headrotation SET NAMEmm = '$name' WHERE MTIDmm = '$mtid'"; //er soll mir "Frank" bei dem DS dazuspeichern wo die $mtid vom Server mit dem DS übereinstimmt
              --------------------------------------------------

              Und die Lösung meines zweiten Problem's sieht so aus wobei ich mir nicht sicher bin ob's so geht:
              --------------------------------------------------
              $mtid = "345"; //hier bekomme ich NUR die $mtid vom Server und hole mir den Namen und das Datum aus der Datenbank
              $query = "SELECT headrotation SET NAMEmm = '$name', DATEmm = '$date' WHERE MTIDmm = '$mtid'"; //die Variablen $name und $date müßten dann die richtigen Values beinhalten
              --------------------------------------------------

              Hoffentlich war die Erklärung jetzt besser?!?!?!

              [Editiert von Metallica am 24-11-2001 um 11:27]
              $PHP resource 4ever$

              Kommentar


              • #8
                Sky??
                $PHP resource 4ever$

                Kommentar


                • #9
                  $query = "UPDATE headrotation SET NAMEmm = '$name', DATEmm = '$date' WHERE MTIDmm = '$mtid'";

                  Mit SELECT kannst du keine Daten updaten... Das wäre in etwa, als würdest du in nen Gemüseladen gehen und dann systematisch Äpfel durch Mangos ersetzen

                  CAT Music Files

                  Kommentar


                  • #10
                    netter Vergleich,

                    nur etwas ungenau

                    Wenn schon dann ist SELECT das rausnehmen eines Apfels aus der Kiste und UPDATE das reinlegen einer Mango. Metallica du versuchst nun genau jedem Apfel eine Mango zu zu ordnen, dies geht so aber nicht Was du machst ist einen bestimmten Apfel raus zu nehmen, ihn sich zu betrachten (Das ist das SELECT) und dann legst du den Apfel zurück und nimmst irgendeinen Apfel raus und legst eine Mango rein (Das UPDATE). Ich hoffe es wird klar. Mit SELECT kann man nur lesen man kann aber nix beeinflussen.

                    Kommentar


                    • #11
                      Yo, das war jetzt schön *g*

                      CAT Music Files

                      Kommentar


                      • #12
                        Ich glaube, dass ihr mich jetzt falsch verstanden habt.
                        Bei der 2.Variante will ich nicht's in die DB eintragen, sondern über die Variable $mtid (die ich vom Server bekomme) Datum und Name des entsprechenden Datensatzes in zwei Variablen speichern.

                        Code:
                        $mtid = "345"; //hier bekomme ich NUR die $mtid vom Server und hole mir den Namen und das Datum aus der Datenbank
                        $query = "SELECT headrotation SET NAMEmm = '$name', DATEmm = '$date' WHERE MTIDmm = '$mtid'"; //die Variablen $name und $date müßten dann die richtigen Values beinhalten
                        $PHP resource 4ever$

                        Kommentar


                        • #13
                          $query = "SELECT NAMEmm,DATEmm FROM headrotation WHERE MTIDmm = '$mtid'";
                          $data = mysql_result($query,0);
                          $name = $data[NAMEmm];
                          $date = $data[DATEmm];

                          CAT Music Files

                          Kommentar


                          • #14
                            Yeeep, das funtzt.

                            DANKE
                            $PHP resource 4ever$

                            Kommentar

                            Lädt...
                            X