Datenbankzelle um 1 erweitern
Andi
- php
0 Samuel Vogel0 Andi0 wahsaga0 Samuel Vogel0 Andi0 Samuel Vogel0 Andi
0 Samuel Vogel
Ich habe 2 Tabellen die komplett gleich aufgebaut sind. Nun will ich es reaslisieren, dass bestimmte Werte der einen Tabelle zur anderen dazuaddiert werden. Wie mache ich das?
Hier mal mein bisheriger Ansatz. Aber leider funktioniert er nicht...
$host = "127.0.0.1";
$dbuser = "root";
$dbpasswort = "";
$dbName = "test";
$tabellenName = "Umfragen";
$tabellenName2 = "Aktuelle_Umfrage";
$db = mysql_connect("$host","$dbuser","$dbpasswort");
mysql_select_db("$dbName",$db);
$result = mysql_query("SELECT * FROM $tabellenName, $tabellenName2);
while ($myrow = mysql_fetch_row($result)) {
mysql_query("UPDATE $tabellenName, $tabellenName2 set $tabellenName.Ja = $tabellenName.Ja + $tabellenName2.Ja WHERE $tabellenName.UmfrageNr=$tabellenName2.UmfrageNr");
}
Kann mir jemand helfen?
Danke im Voraus.
Gruß Andi
Gude,
MySQl führt dir doch keine rechenoperationen durch!
Das musst du in PHP machen!
$i = 1;
$var1 = array();
$var2 = array();
$result = mysql_query("SELECT * FROM $tabellenName);
while ($myrow = mysql_fetch_row($result)) {
$var1[$myrow]['UmfrageNr'] = $myrow['Ja'];
$i++;
}
$i = 1;
$result = mysql_query("SELECT * FROM $tabellenName2);
while ($myrow = mysql_fetch_row($result)) {
$var2[$myrow]['UmfrageNr'] = $myrow['Ja'];
$i++;
}
for($j=1; $j<$i; $j++) {
mysql_query("UPDATE $tabellenName2
SET Ja
= ".$var1[$j]+$var1[$j]." WHERE UmfrageNr = $j");
}
Vorsicht ist ungetestet!
Das funktioniert leider nicht. Ich bekomme einen Fehler...
Illegal offset type in den Zeilen
$var1[$myrow]['UmfrageNr'] = $myrow['Ja'];
$var2[$myrow]['UmfrageNr'] = $myrow['Ja'];
Weißt du woran es liegen kann?
Danke im Voraus.
Gruß Andi
hi,
MySQl führt dir doch keine rechenoperationen durch!
so generell wäre ich mit der aussage vorsichtig - natürlich kann mysql auch rechnen.
z.b.
UPDATE tabelle SET spalte1 = spalte2 + spalte3
sollte kein problem sein.
und http://dev.mysql.com/doc/mysql/de/Numeric_Functions.html gibt's ja sicher auch nicht ganz umsonst ...
gruß,
wahsaga
Gude,
Ok hab mich geirrt, aber ich würds trotzdem mit PHP machen.
samy,
Ich hab schon so ziemlich alles probiert aber funktionieren tuts immer noch nicht :(
Jemand noch ne Idde?
Es Problem is, dass es den Inhalt der einen Zelle nicht zur andren addiert in dem Beispiel oben. Womöglich würds mir schon helfen wenn ich die Zellen addieren könnt...
Gude,
Probiers doch nochmal hiermit:
$var = array("wert" => array(),
"uid" => array()
);
$i = 1;
$result = mysql_query("SELECT * FROM $tabellenName ORDER BY UmfrageNr
ASC");
while ($myrow = mysql_fetch_row($result)) {
$var['wert'][$i] = $myrow['Ja'];
$var['uid'][$i] = $myrow['UmfrageNr'];
$i++;
}
$i = 1;
$result = mysql_query("SELECT * FROM $tabellenName2 ORDER BY UmfrageNr
ASC");
while ($myrow = mysql_fetch_row($result)) {
$var['wert'][$i] = $var['wert'][$i]+$myrow['Ja'];
$i++;
}
for($j=1; $j<$i; $j++) {
mysql_query("UPDATE $tabellenName2
SET Ja
= ".$var['wert'][$j]." WHERE UmfrageNr = ".$var['uid'][$j]);
}
Auch mit dem Quellcode funktioniert es leider nicht.
Hast noch ne Idee?
Gruß Andi
Gude,
Was passwirt denn? Und was komtm für ne Fehlermeldung?
samy,
Jetzt kommt keine Fehlermeldung mehr aber es addiert den Wert der Zelle $tabellenName2.Ja nicht zu dem Wert $tabellenName.Ja hinzu.
Weißt du worans liegen könnte?
Andi
Hi, ich habe jetzt mal ein wenig rumprobiert und habe das Problem gelöst. Jetzt funktioniert alles wie ich es wollte. Danke für eure Hilfe :)
Gruß Andi
Gude,
Ich hab noch ein paar sachen koriegiert:
$var1 = array("wert" => array(),
"uid" => array()
);
$i = 1;
$result = mysql_query("SELECT * FROM $tabellenName ORDER BY UmfrageNr
ASC");
while ($myrow = mysql_fetch_row($result)) {
$var['wert'][$i] = $myrow['Ja'];
$var['uid'][$i] = $myrow['UmfrageNr'];
$i++;
}
$i = 1;
$result = mysql_query("SELECT * FROM $tabellenName2 ORDER BY UmfrageNr
ASC");
while ($myrow = mysql_fetch_row($result)) {
$var['wert'][$i] = $var['wert'][$i]+$myrow['Ja'];
$i++;
}
for($j=1; $j<$i; $j++) {
mysql_query("UPDATE $tabellenName2
SET Ja
= ".$var['wert'][$j]." WHERE UmfrageNr = ".$var['uid'][$j]);
}