tutorials.de Buch-Aktion 05/2012
Like Tree3Danke
  • 1 Beitrag von einfach nur crack
  • 1 Beitrag von Yaslaw
  • 1 Beitrag von Yaslaw
ERLEDIGT
JA
ANTWORTEN
11
ZUGRIFFE
301
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Fanseite Fanseite ist offline Mitglied Bronze
    Registriert seit
    Feb 2012
    Beiträge
    33
    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 :

    PHP-Code:
    mysql_query("SELECT name FROM cms_user_data WHERE name = $_POST['name'] "
    Wie kann ich aber jetzt in allen Tabellen den namen selektieren und Updaten?

    Bin für jede Hilfe Dankbar.
     

  2. #2
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    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'] . '"');
    Fanseite bedankt sich. 
    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.

  3. #3
    Fanseite Fanseite ist offline Mitglied Bronze
    Registriert seit
    Feb 2012
    Beiträge
    33
    Okay danke habe nun verstanden.
    Aber nur so als Interesse : gibt es eine Funktion womit man alle tabellen ansprechen kann ?
     

  4. #4
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    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.

  5. #5
    Fanseite Fanseite ist offline Mitglied Bronze
    Registriert seit
    Feb 2012
    Beiträge
    33
    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.
     

  6. #6
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    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.

  7. #7
    Fanseite Fanseite ist offline Mitglied Bronze
    Registriert seit
    Feb 2012
    Beiträge
    33
    Okay Vielen dank
    Thema abgehakt
    Geändert von Fanseite (03.02.12 um 12:36 Uhr)
     

  8. #8
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    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.

  9. #9
    Fanseite Fanseite ist offline Mitglied Bronze
    Registriert seit
    Feb 2012
    Beiträge
    33
    Haha okay Sorry
     

  10. #10
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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
    Code 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
    Diese kannst du nun nach dem Namen filtern
    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);

    Fanseite bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    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

  11. #11
    Fanseite Fanseite ist offline Mitglied Bronze
    Registriert seit
    Feb 2012
    Beiträge
    33
    Vielen dank ich werde das mir mal durchlesen und versuchen zu verstehen.

    Danke.
     

  12. #12
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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.
    Fanseite bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    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

  1. Namen von Einzelunternehmen ändern
    Von designor im Forum Gründung & Gewerbe
    Antworten: 1
    Letzter Beitrag: 07.03.09, 09:24
  2. Problem mit Namen ändern
    Von FLASHStyler im Forum PHP
    Antworten: 2
    Letzter Beitrag: 20.08.05, 14:26
  3. Namen ändern?
    Von Michel Decker im Forum HTML & XHTML
    Antworten: 4
    Letzter Beitrag: 28.04.05, 12:44