Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Probleme mit Update einer Tabelle [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Probleme mit Update einer Tabelle


 
Icho2000
15-07-2002, 07:54 
 
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 :

// 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? :confused:

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

 
Titus
15-07-2002, 08:38 
 
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:D
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:
$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;

 
Icho2000
15-07-2002, 08:41 
 
Danke für die schnelle Antwort :)

Ich probier das gleich mal aus :)



Bis denne

Icho

 
Icho2000
15-07-2002, 08:51 
 
Das mit der Schleife klappt super:D

Danke !!:D



Bis denne

Icho


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:27 Uhr.