Supportnet / Forum / Skripte(PHP,ASP,Perl...)
update table
Frage
Habe da einen Denkfehler:
global $textarea;
global $dauer;
include("db/icb.php");
$db = @mysql_pconnect($host, $user, $pass)
or die ("Verbindung mit der MySql-Server fehlgeschlagen!");
@mysql_select_db($database, $db)
or die ("Verbindung mit der Datenbank fehlgeschlagen!");
foreach($_POST['knummer'] as $key => $value) {
mysql_query("insert into icb_message (knummer, datum) values ('$key', '$yyyy-$mm-$dd')");
}
mysql_query("update icb_users, icb_message set icb_users.message = '$textarea', icb_users.mcount = '$dauer' where icb_users.knummer = icb_message.knummer");
Wie man sieht trage ich in die Tabelle icb_message alle knummern, die ich im vorherigen Formular angehakt habe. Ausserdem wird das Datum ein Text und die Dauer mitgeliefert.
Ich möchte jetzt in die Tabelle icb_users überall dort den Text und die Dauer eintragen, die die gleiche knummer haben wie die in der Tabelle icb_message. Kann doch nicht so schwer sein. ICh komm nicht drauf.
Bitte nochmal um Hilfe
MFG
kingluui
Antwort 1 von EdgarM
Hi, wenn dein Fehler der ist, das in der where klausel mehrere knummer 'n stehen, dann schreibe einfach statt
= icb_message.knummer"
in ( *knummer_liste*)
und *knummer_list* muß eine Kommaseperierte Liste der knummern sein.
grüße
edgarm
= icb_message.knummer"
in ( *knummer_liste*)
und *knummer_list* muß eine Kommaseperierte Liste der knummern sein.
grüße
edgarm
Antwort 2 von thomasoop
update icb_users a, icb_message b set a.feld = b.feld, a.feld2 = b.feld2 where a.knummer = b.knummer
würd mir spontan einfallen
dann brauchst du das for each auch nicht mehr ;-)
feld und feld2 durch die jeweiligen feldnamen ersetzen
würd mir spontan einfallen
dann brauchst du das for each auch nicht mehr ;-)
feld und feld2 durch die jeweiligen feldnamen ersetzen
Antwort 3 von MickK
Versuch's mal damit:
1. deine tabellenfelder enthalten zahlenwerte:
mysql_query("update icb_users, icb_message set icb_users.message = ".$textarea.", icb_users.mcount = ".$dauer." where icb_users.knummer = icb_message.knummer");
oder
2. deine tabellenfelder enthalten stringwerte:
mysql_query("update icb_users, icb_message set icb_users.message = '".$textarea."', icb_users.mcount = '".$dauer."' where icb_users.knummer = icb_message.knummer");
Dein Sql wird als String übergeben. Stringverknüpfungen werden mit . gemacht.
Gruss Mick
1. deine tabellenfelder enthalten zahlenwerte:
mysql_query("update icb_users, icb_message set icb_users.message = ".$textarea.", icb_users.mcount = ".$dauer." where icb_users.knummer = icb_message.knummer");
oder
2. deine tabellenfelder enthalten stringwerte:
mysql_query("update icb_users, icb_message set icb_users.message = '".$textarea."', icb_users.mcount = '".$dauer."' where icb_users.knummer = icb_message.knummer");
Dein Sql wird als String übergeben. Stringverknüpfungen werden mit . gemacht.
Gruss Mick
Antwort 4 von MickK
Nachschlag:
bei fall 2 die kombination aus doppelten und einfachen kommata beachten.
Gruss
Mick
bei fall 2 die kombination aus doppelten und einfachen kommata beachten.
Gruss
Mick

