werbeklaus: UPDATE einer MySQL-Datenbank mit PHP

Zum wiederholten mal heute hab ich eine Frage zu PHP mit MySQL.

Ich lasse eine Datenbank auslesen und gebe die Ergebnisse mit

while (list($thumbnails,$images,$sdescription,$ldescription) = mysql_fetch_row($erg))

wider.

Jetzt möchte ich, dass innerhalb dieser Schleife ein UPDATE Befehl ausgeführt wird, z.B. so:

"UPDATE tabelle SET IN='$i' WHERE ID='$id;"

Wie muss ich dass einbauen, damit der das ausführt?

Ich habe schon einiges herumprobiert und nichts geschafft.

  1. Moin,

    Jetzt möchte ich, dass innerhalb dieser Schleife ein UPDATE Befehl ausgeführt wird, z.B. so:

    "UPDATE tabelle SET IN='$i' WHERE ID='$id;"

    Wie muss ich dass einbauen, damit der das ausführt?

    Ich habe schon einiges herumprobiert und nichts geschafft.

    Was hast Du denn ausprobierrt?
    Und welche Fehlermeldungen kamen denn?
    Und hat das mit dem Zähler geklappt?
    WEaas machst Du da überhaupt?

    TomIRL

    1. "UPDATE tabelle SET IN='$i' WHERE ID='$id;"

      Wie muss ich dass einbauen, damit der das ausführt?

      Ich habe schon einiges herumprobiert und nichts geschafft.

      Was hast Du denn ausprobierrt?

      Wie gesagt, ich hab kaum Ahnung von MySQL und so, aber ich habe den
      UPDATE tabelle [...]

      einfach so also <? ... ?> reingesetzt, in die Schleife,

      (Fehlermeldung: Parse error: parse error, unexpected T_STRING in c:\inetpub\wwwroot\Lukas\homepageII\bilder\bildermenue3.php on line 17)

      und auf www.selfphp.info nach lösungen gesucht, bin aber wie gesagt nicht fündig geworden.

      Und hat das mit dem Zähler geklappt?

      Der Zähler geht weil ich ihn auch schon anderweitig verwende.

      »»WEaas machst Du da überhaupt?

      Ich habe eine Datenbank mit den Pfaden von Bilder und ihre Vorschaubilder und beschreibungen und so weiter, und möchte mit diesem UPDATE immer wieder eine Vorüpbergehende Reihenfolge der Bilder festlegen.

  2. Hi,

    while (list($thumbnails,$images,$sdescription,$ldescription) = mysql_fetch_row($erg))

    [...]

    "UPDATE tabelle SET IN='$i' WHERE ID='$id;"

    Wie muss ich dass einbauen, damit der das ausführt?

    woher hast du denn die Variable $id? In der Schleife dürfte die ja kaum zur Verfügung stehen, bzw. immer mit dem selben Wert belegt sein. Und was ist $i? Immer der gleiche Wert für unterschiedliche IDs? Dann nämlich würde eine DB-Anfrage am Ende der Schleife reichen.

    Gruß,
    Andreas.

    1. woher hast du denn die Variable $id?

      Diese Variabel wird im SELECT befehl aus der Datenbank ausgelesen.

      »»In der Schleife dürfte die ja kaum zur Verfügung stehen, bzw. immer mit dem selben Wert belegt sein.

      eigentlich nicht, s.o.

      Und was ist $i? Immer der gleiche Wert für unterschiedliche IDs?

      $i ist ein "Zähler", der schon anderweitig in der Datei verwendet wird und innerhalb der Schleife auch den Befehl $i++ hat, dadurch ändert er sich auch pro Schleifendurchlauf.

      1. Hallo Klaus.,

        woher hast du denn die Variable $id?
        Diese Variabel wird im SELECT befehl aus der Datenbank ausgelesen.

        Davon ist in Deinem Code nichts zu sehen.

        »»In der Schleife dürfte die ja kaum zur Verfügung stehen, bzw. immer mit dem selben Wert belegt sein.
        eigentlich nicht, s.o.

        dito

        Und was ist $i? Immer der gleiche Wert für unterschiedliche IDs?
        $i ist ein "Zähler", der schon anderweitig in der Datei verwendet wird und innerhalb der Schleife auch den Befehl $i++ hat, dadurch ändert er sich auch pro Schleifendurchlauf.

        dito

        Bitte poste zwar nur relevanten Code, aber auch sämtlichen relevanten Code. Ein Schleifenkopf hilft herzlich wenig. Ich bevorzuge zusätzlich die Zuweisung innerhalb der Schleife.

        Freundliche Grüsse,

        Vinzenz

        1. Bitte poste zwar nur relevanten Code, aber auch sämtlichen relevanten Code. Ein Schleifenkopf hilft herzlich wenig. Ich bevorzuge zusätzlich die Zuweisung innerhalb der Schleife.

          Sorry, ich dachte das reicht, weil es ja nur um des Update geht. Also:

          $abfrage = "SELECT thumbnails,images,sdescription,ldescription FROM frankreichaustausch #WHERE stichwoerter LIKE '%Empfang%'";
          $erg = mysql_db_query("werbeklaus",$abfrage,$verbindung);
          $i = 1;
           while (list($thumbnails,$images,$sdescription,$ldescription) = mysql_fetch_row($erg)) {
            if($i%3==1) {echo "<tr>\n";}
          -->  UPDATE frankreichaustausch SET IN='$i' WHERE ID='$id';?> <-- BEi dieser Zeile liegt das Problem
           <td width="180" align="center" valign="top">
            <a href="bild.php?images=<? echo "$images"; ?>&beschreibung=<? echo "$ldescription"; ?>">
            <img src="<? echo "$thumbnails"; ?>" title="<? echo "$sdescription"; ?>" alt="<? echo "$sdescription"; ?>" border="0"><br>
            <font size="2"><? echo "$sdescription"; ?></font></a>
           </td>
          <? if($i%3==0) {echo "</tr>\n";}
             $i++;?>
          <? } ?>

          davor wurde lediglich noch die verbindung aufgebaut.

          1. Hi,

            $abfrage = "SELECT thumbnails,images,sdescription,ldescription FROM frankreichaustausch #WHERE stichwoerter LIKE '%Empfang%'";

            ^ Fehler

            $erg = mysql_db_query("werbeklaus",$abfrage,$verbindung);

            mysql_db_query() ist veraltet, benutze lieber mysql_select_db() i.V.m. mysql_query().

            $i = 1;
            while (list($thumbnails,$images,$sdescription,$ldescription) = mysql_fetch_row($erg)) {
              if($i%3==1) {echo "<tr>\n";}
            -->  UPDATE frankreichaustausch SET IN='$i' WHERE ID='$id';?> <-- BEi dieser Zeile liegt das Problem

            Genau wie oben auch:

            $abfrage = "UPDATE ...";
            $erg = mysql_query($abfrage, $verbindung);

            --- schnipp ---
            davor wurde lediglich noch die verbindung aufgebaut.

            Genau - und von $id keine Spur. D.h., du bleibst die Erklärung, wo $id herkommt, schuldig:

            woher hast du denn die Variable $id?

            Diese Variabel wird im SELECT befehl aus der Datenbank ausgelesen.

            In der Schleife dürfte die ja kaum zur Verfügung stehen, bzw. immer mit dem selben Wert belegt sein.

            eigentlich nicht, s.o.

            It's your turn ;-)

            Gruß,
            Andreas.

            1. Genau - und von $id keine Spur. D.h., du bleibst die Erklärung, wo $id herkommt, schuldig:

              Oh, die muss
               while (list($thumbnails,$images,$sdescription,$ldescription,$id) = mysql_fetch_row($erg))
                                    da noch mit rein, hat aber nix geändert ^

              1. hi,

                Genau - und von $id keine Spur. D.h., du bleibst die Erklärung, wo $id herkommt, schuldig:

                Oh, die muss
                while (list($thumbnails,$images,$sdescription,$ldescription,$id) = mysql_fetch_row($erg))
                                      da noch mit rein, hat aber nix geändert ^

                wenn du in deiner datenbankabfrage _vier_ spalten abfragst, macht es doch wohl gar keinen sinn, hier jetzt _fünf_ werte auswerten zu wollen, oder?

                du scheinst wenig bis gar kein konzept von dem zu haben, was du da eigentlich tust.
                vielleicht beschäftigst du dich erst noch mal ein wenig ausführlicher mit den grundlagen der von dir verwendeten techniken, bevor du dich an eine aufgabe heranwagst, deren schwierigkeitsgrad offenbar deinen fähigkeiten noch nicht angemessen ist.

                gruß,
                wahsaga

                --
                "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
                1. wenn du in deiner datenbankabfrage _vier_ spalten abfragst, macht es doch wohl gar keinen sinn, hier jetzt _fünf_ werte auswerten zu wollen, oder?

                  Ich habe selbstverständlich die Abfrage der Spalten auch auf _fünf_ erhöht!

                  1. hi,

                    Ich habe selbstverständlich die Abfrage der Spalten auch auf _fünf_ erhöht!

                    davon war hier nichts zu sehen.

                    und als "selbstverständlich" war das auch nicht anzunehmen, wenn man deine anderen ausführungen hier liest.

                    gruß,
                    wahsaga

                    --
                    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
                2. Hallo wahsaga,

                  du scheinst wenig bis gar kein konzept von dem zu haben, was du da eigentlich tust.
                  vielleicht beschäftigst du dich erst noch mal ein wenig ausführlicher mit den grundlagen
                  der von dir verwendeten techniken, bevor du dich an eine aufgabe heranwagst, deren
                  schwierigkeitsgrad offenbar deinen fähigkeiten noch nicht angemessen ist.

                  </faq/#Q-23>

                  Grüße,
                   CK

                  --
                  Der Verstand steht ueber allem. Was durch die Vorstellungskraft nicht geschaffen werden kann, existiert nicht.
                  http://wwwtech.de/
                  1. hi,

                    </faq/#Q-23>

                    in https://forum.selfhtml.org/?t=93862&m=567692 konnte ich dem verweis auf diesen teil der FAQ eine gewisse berechtigung nicht unbedingt absprechen - aber hier sehe ich nicht, was du mir damit sagen willst.

                    wenn ich den eindruck habe, dass sich jemand an einer sache versucht, die einfach noch "zu groß" für ihn ist, weise ich auch gelegentlich darauf hin. und dies scheint mir hier definitiv ein solcher fall zu sein.

                    gruß,
                    wahsaga

                    --
                    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
  3. Hello,

    Jetzt möchte ich, dass innerhalb dieser Schleife ein UPDATE Befehl ausgeführt wird, z.B. so:

    "UPDATE tabelle SET IN='$i' WHERE ID='$id;"

    Wie muss ich dass einbauen, damit der das ausführt?

    Schon mal was von 'Funktionen' gehört?

    Delegier das Problem, dann bleibt der Code auch lesbar.
    Und wenn Du nicht mit einfachen Scriptvariablen, sondern mit einem Array arbeiten würdest, denn könntest Du das gesamte Datensatzarray zu geeigneter Zeit an diese Funktion übergeben, und gut wär's...

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau