3Danke
ERLEDIGT
JA
JA
ANTWORTEN
11
11
ZUGRIFFE
301
301
EMPFEHLEN
-
Hallo ich habe folgendes Problem:
Ich will einen Namen ändern Script machen. Das wäre nicht das Problem. Mein Problem ist:
Wie kann ich die gesamten Datenbank tabellen nach den usernamen suchen ?
Wen ich den Namen von der cms_user_data tabelle will, mach ich das ja so :
Wie kann ich aber jetzt in allen Tabellen den namen selektieren und Updaten?PHP-Code:mysql_query("SELECT name FROM cms_user_data WHERE name = $_POST['name'] ")
Bin für jede Hilfe Dankbar.
-
02.02.12 23:11 #2
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Du solltest schon wissen, welche Tabellen du aktualisieren willst. Aber das ist nicht dein Problem. Dein Problem ist, dass du deine Datenbank nicht normalisiert hast. Der Normalfall ist nämlich, dass eine Tabelle gibt, in der der Name des Nutzers steht. Diese kann man seitens des Namen ändern wie man will, da der Nutzer ebenfalls durch eine ID erkennbar ist. Diese verwendet man dann in allen anderen Tabellen um den Nutzer zu identifizieren.
Nebenbei: so funktioniert deine SQL-Abfrage nicht, denn sie sollte eher so aussehen:
Code PHP:1
mysql_query('SELECT `name` FROM `cms_user_data` WHERE `name` = "' . $_POST['name'] . '"');
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
Okay danke habe nun verstanden.
Aber nur so als Interesse : gibt es eine Funktion womit man alle tabellen ansprechen kann ?
-
03.02.12 12:27 #4
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Du kannst erstmal alle Tabellen auslesen, dann solltest du für jede Tabelle prüfen, ob es eine Spalte namens name gibt und dann eben für jede Spalte die SQL-Abfrage abschicken. Das ist aber ziemlich dumm.
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
Ja mhm meine Eigendlich Frage war jedoch :
Kann man mit einer bestimmten Funktion alle gleichzeitig auslesen ?
Also nicht das ich für jede Tabelle immer eine query machen muss.
-
03.02.12 12:31 #6
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Soweit ich weiß, gibt es das nicht. Wie schon gesagt: das wäre ziemlich dumm.
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
Okay Vielen dank
Thema abgehakt
Geändert von Fanseite (03.02.12 um 12:36 Uhr)
-
03.02.12 12:35 #8
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
@Fanseite: bitte das Thema nur abhaken und nicht abhacken.
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
Haha okay Sorry
-
Jein. Du kannst alle Kandidaten mittels UNION zusammentragen.
Die Kandidatenliste. Du zeihst alle Tabellen die den Namen beinhalten zusammen. Benennst die Felder gleich (Aliase) und gibst noch die Quelle und die ID, Name des ID-Feldes, der Name und der Name des Naen-Feldes
Diese kannst du nun nach dem Namen filternCode sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
SELECT 'ud_id' AS id_field, ud_id AS id_value, 'name' AS name_field, name AS name_value, 'cms_user_data' AS SOURCE FROM cms_user_data UNION ALL 'up_id' AS id_field, up_id AS id_value, 'user_name' AS name_field, user_name AS name_value, 'cms_user_perm' AS SOURCE FROM cms_user_perm
Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
SELECT id_field, id_value, name_field, name_value, SOURCE FROM ( SELECT 'ud_id' AS id_field, ud_id AS id_value, 'name' AS name_field, name AS name_value, 'cms_user_data' AS SOURCE FROM cms_user_data UNION ALL 'up_id' AS id_field, up_id AS id_value, 'user_name' AS name_field, user_name AS name_value, 'cms_user_perm' AS SOURCE FROM cms_user_perm ) AS candidates WHERE name_value = 'yaslaw';
Nun kannst du dies aus PHP aufrufen und entsprechende Update durchführen
PHP-Code:$oldName = 'yaslaw';
$newName = 'Yaslaw';
$sql = <<<SQL
SELECT
id_field,
id_value,
name_field,
name_value,
source
FROM
(
SELECT
'ud_id' AS id_field,
ud_id AS id_value,
'name' AS name_field,
name AS name_value,
'cms_user_data' AS source
FROM
cms_user_data
UNION ALL
'ud_id' AS id_field,
ud_id AS id_value,
'user_name' AS name_field,
user_name AS name_value,
'cms_user_perm' AS source
FROM
cms_user_perm
) AS candidates
WHERE
name_value = '{$oldName}';
SQL;
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
$sql = <<<SQL
UPDATE {$row['source']}
SET `{$row['name_field']}` = '{$oldName}'
WHERE `{$row['id_field']}` = '{$row['id_value']}';
SQL;
mysql_query($sql);
}
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Vielen dank ich werde das mir mal durchlesen und versuchen zu verstehen.
Danke.
-
Wenn du was nicht verstehst, ruhig fragen. Achja, das Script ist nicht getestet. Wie ich mich kenne, kanns gut noch Schreibfehler, fehlende Kommas etc. drin haben.
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
Ähnliche Themen
-
Namen von Einzelunternehmen ändern
Von designor im Forum Gründung & GewerbeAntworten: 1Letzter Beitrag: 07.03.09, 09:24 -
Problem mit Namen ändern
Von FLASHStyler im Forum PHPAntworten: 2Letzter Beitrag: 20.08.05, 14:26 -
Namen ändern?
Von Michel Decker im Forum HTML & XHTMLAntworten: 4Letzter Beitrag: 28.04.05, 12:44





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren