Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Mysql Insert Select + Concat

Einklappen

Neue Werbung 2019

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

  • Hu5eL
    hat ein Thema erstellt [Erledigt] Mysql Insert Select + Concat.

    [Erledigt] Mysql Insert Select + Concat

    Hi, habe mal wieder ein Problem mit MYSQL...

    Ich will ein INSERT befehl asuführen...
    PHP-Code:
    INSERT INTO log(usertext) .... 
    dabei ist user eine simle php-variable. text setzt sich aus mehreren teilen zusammen. Aus mehreren Abfragen, bzw festen texten...
    in etwa so:
    PHP-Code:
     CONCAT("test"SELECT date FROM action WHERE id=,"test2"SELECT ...); 
    PHP-Code:
    INSERT INTO log(usertext) .... SELECT "hallo"CONCAT("test"SELECT date FROM action WHERE id=,"test2"SELECT ...) 
    das der ganze insert so aussehen würde:

    leider funktioniert in CONCAT keine sql-abfragen, hat da jemand eine lösung?

    thx schonmal

  • Hu5eL
    antwortet
    ok danke an alle die geholfen haben

    Einen Kommentar schreiben:


  • Chriz
    antwortet
    So gut steht der EUR nun auch wieder nicht, ausserdem werd ich in Dollar bezahlt ..

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Zitat von Chriz Beitrag anzeigen
    Neuer Laptop halt.
    [OT]
    Macbook Air? *g*

    Einen Kommentar schreiben:


  • Chriz
    antwortet
    Neuer Laptop halt.

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    Zitat von Chriz Beitrag anzeigen
    Wofuer denn eigentlich der aeussere SELECT?
    Das war vermutlich nur zum Testen, er will ja einen INSERT machen

    Nur komischerweise habe ich keine Propleme damit:
    Code:
    mysql> SELECT * FROM tab1;
    +--------+-------+------------+-----------+--------+--------+
    | id     | runid | generation | durchlauf | caseno | result |
    +--------+-------+------------+-----------+--------+--------+
    | 100095 |     0 |          7 |         3 |      4 |      7 | 
    | 100003 |     0 |          1 |         2 |      4 |      6 | 
    | 100030 |     0 |          2 |         1 |      4 |     13 | 
    | 100042 |     0 |          3 |         3 |      3 |      8 | 
    | 100021 |     0 |          2 |         2 |      3 |      4 | 
    | 100080 |     0 |          4 |         1 |      3 |      5 | 
    | 100037 |     0 |          4 |         2 |      2 |      5 | 
    | 100045 |     0 |          4 |         1 |      2 |      7 | 
    | 100014 |     0 |          1 |         1 |      1 |     25 | 
    | 100036 |     0 |          1 |         2 |      1 |     12 | 
    | 100040 |     0 |          2 |         3 |      1 |      8 | 
    | 100094 |     0 |          3 |         4 |      1 |      3 | 
    +--------+-------+------------+-----------+--------+--------+
    12 rows in set (0.00 sec)
    
    mysql> SELECT 
        CONCAT(
            'xyz ',
             (
                SELECT 
                    generation 
                FROM 
                    tab1 
                WHERE 
                    id = 100040
            ), 
            ' abcd ', 
            (
                SELECT 
                    result 
                 FROM
                    tab1 
                WHERE 
                    id = 100094
              )
        ) AS concat;
    +--------------+
    | concat       |
    +--------------+
    | xyz 2 abcd 3 | 
    +--------------+
    1 row in set (0.00 sec)
    [OT]
    @cycap
    Die ß´s hab ich auch noch nicht gefunden

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Zitat von Chriz Beitrag anzeigen
    Wofuer denn eigentlich der aeussere SELECT?
    Sind den Amis die ü`s, ä´s und ß´s ausgegangen? xD

    Einen Kommentar schreiben:


  • Chriz
    antwortet
    Wofuer denn eigentlich der aeussere SELECT?

    Einen Kommentar schreiben:


  • Hu5eL
    antwortet
    mein mysql
    PHP-Code:
    SELECT CONCAT('a', (SELECT prj_id FROM project_keyword WHERE id=2)); 
    fehler
    PHP-Code:
    ERROR 1064 (00000): You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT prj_id FROM project_keyword WHERE id=2))' at line 1 

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    Zitat von Hu5eL
    leider funktioniert in CONCAT keine sql-abfragen, hat da jemand eine lösung?
    Wer behauptet das?
    PHP-Code:
    $sql "
        INSERT INTO 
            log(user, text) 
        VALUES (
            
    $user,
            CONCAT(
                'test', 
                (SELECT 
                    date 
                FROM 
                    action 
                WHERE 
                    id=2) ,
                'test2', 
                (SELECT 
                    ...
                )
            )"

    Einen Kommentar schreiben:


  • HPR1974
    antwortet
    Wenn Du irgendwann mal in der Lage bist Dein Problem ausführlich und verständlich zu artikulieren melde Dich. (datenstruktur, vorher nacer zustand)

    Ich denke es ist total einfach umzusetzen, allerdings kann ich Deinen Beschreibungen nicht wirklich folgen.

    Einen Kommentar schreiben:


  • Hu5eL
    antwortet
    für eine sache z.b
    PHP-Code:
    SELECT description FROM project p1shortnumber s1 WHERE s1.project=p1.id AND s1.id=5
    ich schreibe eine id in das feld project von der tabelle shortnumber, will aber halt die bezeichnung... deswegen das verknüpfen

    Einen Kommentar schreiben:


  • HPR1974
    antwortet
    zeig mal das Statement mit dem Du die alten werte aus der DB holst

    Einen Kommentar schreiben:


  • Hu5eL
    antwortet
    versuch es ma genauer zu erklären:
    also ich will nen insert machen, es geht um das loggen bestimmter aktionen (bzw änderungen).
    PHP-Code:
    INSERT INTO logg (nummerusertext) ... 
    dabei hab ich die "nummer" und den "user" ganz einfach in einer php-variable...
    das problem ist der "text". hier sollen die alten werte aus der db ausgelesen werden und die neuen dahintergeschrieben (die neuen wiederrum stehen in einfachen variablen).
    der "text" sollte dann so aussehen:
    Code:
    Aenderung: nummer: 12345 -> 23123; anzahl: 4 -> 3 ...
    also alter wert -> neuer wert.
    und den alten wert muss ich aus einer datenbank auslesen.

    hoffe man versteht es jetzt..

    Einen Kommentar schreiben:


  • HPR1974
    antwortet
    statt
    CONCAT("test", SELECT date FROM action
    SELECT CONCAT("test",date) FROM action

    etc.
    evt musst Du auch joinen, aber Deine INFOs sind sehr dürftig

    Einen Kommentar schreiben:

Lädt...
X