Ankündigung

Einklappen
Keine Ankündigung bisher.

Insert mit Sub-Select

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Insert mit Sub-Select

    Ich hab mal eine Frage. Kann ich bei INSERT INTO einen Sub-Select mit benutzen. In der Mysql Doku steht nur

    INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    SELECT ...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

    Ich habs dann mal so versucht.

    $sql_detail = "INSERT INTO tb_detail (detail_nickname, detail_firstname, detail_lastname, detail_age, detail_city, detail_zip, detail_status, detail_membertype, detail_country, detail_language, detail_background, detail_color, detail_date)
    VALUES ('".$_POST['nickname']."', '".$_POST['firstname']."', '".$_POST['lastname']."', '".$_POST['age']."', '".$_POST['city']."', '".$_POST['zip']."', '2', '4', SELECT country_id FROM tb_country WHERE country_name LIKE '".$_POST['country']."', '', '', '', NOW())";
    Leider funktioniert das nicht. Kann mir jemand einen Tipp geben wie es funktioniert/ funktionieren könnte?
    Schonmal danke im vorraus.

  • #2
    "SELECT ".$_POST['nickname'].",column FROM table"
    geht

    Kommentar


    • #3
      also im prinzip mit der insert into table select ... syntax

      Kommentar


      • #4
        Zitat von Raito Beitrag anzeigen
        $sql_detail = "INSERT INTO tb_detail (detail_nickname, detail_firstname, detail_lastname, detail_age, detail_city, detail_zip, detail_status, detail_membertype, detail_country, detail_language, detail_background, detail_color, detail_date)
        VALUES ('".$_POST['nickname']."', '".$_POST['firstname']."', '".$_POST['lastname']."', '".$_POST['age']."', '".$_POST['city']."', '".$_POST['zip']."', '2', '4', 'SELECT country_id FROM tb_country WHERE country_name LIKE '".$_POST['country']."', '', '', '', NOW())";
        geht es dann?
        Under Construktion

        Kommentar


        • #5
          Korrekter Post folgt
          Gruss
          L

          Kommentar


          • #6
            Zitat von [url=http://dev.mysql.com/doc/refman/5.1/de/subqueries.html]Syntax von Unterabfragen[/url]
            Eine Unterabfrage muss immer in Klammern stehen
            Ausserdem würdest du es erleichtern, dir zu helfen, wenn du deine Abfrage etwas formatieren würdest. Du wirst ja nicht bestreiten, dass
            PHP-Code:
            $sql_detail "
                INSERT INTO 
                    tb_detail (
                        detail_nickname, 
                        detail_firstname, 
                        detail_lastname, 
                        detail_age, 
                        detail_city, 
                        detail_zip, 
                        detail_status, 
                        detail_membertype, 
                        detail_country, 
                        detail_language, 
                        detail_background, 
                        detail_color, 
                        detail_date
                    )
                VALUES (
                    '" 
            $_POST['nickname'] . "',
                    '" 
            $_POST['firstname'] . "',
                    '" 
            $_POST['lastname'] . "', 
                    '" 
            $_POST['age'] . "', 
                    '" 
            $_POST['city'] . "', 
                    '" 
            $_POST['zip'] . "', 
                    '2', 
                    '4', 
                    (
                        SELECT 
                            country_id 
                        FROM 
                            tb_country 
                        WHERE 
                            country_name = '" 
            $_POST['country'] . "'
                    ),
                    '', 
                    '', 
                    '', 
                    NOW()
                )"

            lesbarer ist.
            Ich hoffe übrigens, dass du die Benutzereingaben vor dem Insert noch überprüfst und escapest. Aber das hat nichts mit der Frage zu tun.
            Gruss
            L

            Kommentar

            Lädt...
            X