Probleme mit Update einer Tabelle

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

  • Probleme mit Update einer Tabelle

    Hallo,
    ich hab ein kleines Problem mit meinem Script.

    Ich habe 2 Tabellen mit folgendem Inhalt:

    Tabelle 1:

    Name Punkte
    Name1 20
    Name2 20
    Name3 20
    Name4 20
    Name5 20
    Name6 20
    usw..

    Tabelle 2:
    Name Punkte
    Name2 5
    Name4 5
    Name7 5
    Name31 5


    Tabelle 1 beseht aus einer festen anzahl an Namen (derzeit 119)
    Tabelle 2 enthält eine unterschiedliche Anzahl von Namen die aber auf jedenfall in Tabelle 1 vorkommen.

    Ich will nun per Update Befehl die Punkte aus Tabelle 2 zu den Punkten in Tabelle 1 addieren.

    Hier der entsprechende Teil des Scripts :

    PHP-Code:
    // Wenn Logfile Erfolgreich eingetragen --> Punkteliste updaten

    if ($sucess == 1) {
       echo 
    "<p>Logfile wurde in die Datenbank eingetragen. Weiter mit den nächsten Schritt</p><br><br>";
       echo 
    "<p>Aktualisieren der Punkteliste........</p><br><br>";
       
        
    $addieren "Update Punkteliste
            SET Punkte = Punkteliste.Punkte + Punkteliste2.Punkte
            WHERE Punkteliste.Name = Punkteliste2.Name"
    ;
        
    $ergebnis mysql_query($addieren$conn); 
        
        
    // Auskommentieren um Debug Info zu erhalten 
    //   
    //            or die("<b>Fehler-Nr. : </b>: " . mysql_errno($conn) .
    //               "<br><b>Meldung: </b>: " . mysql_error($conn));
    //           return $ergebnis;


    // Wenn Update ok --> temp. Tabelle wieder löschen
        
    if($ergebnis) {
        echo 
    "<p>Punkteliste wurde aktualisiert.Die Punkte aus dem Logfile wurden dazu addiert.</p><br><br>";
        echo 
    "<p>Temporäre Tabelle (Punkteliste2) wird nun gelöscht............</p><br><br>";        
        }
    // FM falls Update der Punkteliste fehlschlägt
        
    else {
            echo 
    "<p>Fehler beim Update der Tabelle: Punkteliste</p><br><br>";
    }        

    // FM falls eintragen des Logfiles in die Datenbank fehlschlägt   
    } else {
       echo 
    "<p> Fehler beim eintragen des Logfiles in die Datenbank.</p><br><br>";

    Folgende Fehlermeldung bekomm ich beim Ausführen des Scriptes:
    Fehler-Nr. : : 1109
    Meldung: : Unknown table 'Punkteliste2' in where clause

    Ich kann mir die Fehlermeldung nicht erklären. Die Tabelle Punkteliste2 existiert auf jedenfall. Etwas früher im Script trägt er in diese Tabelle ohne Probleme die Daten aus meinem Logfile ein.

    Hat jemand ne Idee was an dem Befehl falsch ist?

    Ich denke mal das das wieder ein typischer Anfängerfehler ist

  • #2
    Re: Probleme mit Update einer Tabelle

    Original geschrieben von Icho2000
    $addieren = "Update Punkteliste
    SET Punkte = Punkteliste.Punkte + Punkteliste2.Punkte
    WHERE Punkteliste.Name = Punkteliste2.Name";
    $ergebnis = mysql_query($addieren, $conn);

    Ich denke mal das das wieder ein typischer Anfängerfehler ist
    Ist es ... die Tabelle Punkteliste2 mag existieren,
    sie wurde aber in der Query vorher nirgends erwähnt.

    Könnte funktionieren, hab ich aber nie ausprobiert:
    update Punkteliste set Punkte = Punkteliste.Punkte+Punkteliste2.Punkte
    left join Punkteliste2 on Punkteliste2.Name=Punkteliste.Name


    oder mit einer Schleife:
    PHP-Code:
    $q mysql_query('select Name, Punkte from Punkteliste2');
    while (
    $r mysql_fetch_row($q))
      
    mysql_query("update Punkteliste set Punkte=Punkte+$r[1]
        where Name='
    $r[0]'"); 
    oder (rein in SQL) mit einer dritten Tabelle "Puntkeliste3"
    insert into Punkteliste3 (Name,Punkte)
    select Punkteliste.Name, Punkteliste.Punkte+ifnull(Punkteliste2.Punkte,0)
    from Punkteliste
    left join Punkteliste2 on Punkteliste.Name=Punkteliste2.Name


    und dann
    delete from Punkteliste;
    insert into Punkteliste(Name,Punkte) select Name, Punkte from Punkteliste3;
    drop table Punkteliste2;
    drop table Punkteliste3;
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Danke für die schnelle Antwort

      Ich probier das gleich mal aus



      Bis denne

      Icho

      Kommentar


      • #4
        Das mit der Schleife klappt super

        Danke !!



        Bis denne

        Icho

        Kommentar

        Lädt...
        X