JDatabase - update mit mehreren Tabellen

  • Hallo,


    meine älteren Datenbankabfragen (select/Update) funktionieren mit der aktuellen Joomla Version 3.9.26 nicht mehr. Ich habe die meisten anpassen können, scheitere aber an dem folgenden update Befehl, der zwei Tabellen involviert:

    $query = "update jos_teams t, jos_games g set t.goal_in = $team1_gi, t.goal_out = $team1_go, t.game_nr = $team1_nr, t.points = $team1_pt WHERE t.team = g.gamesteam1 and g.gamesid = $i";


    Kann mir jemand helfen, wie das Statement mit einer JDatabaseQuery aussehen müsste?


    Vielen Dank schon mal!


    Mit besten Grüßen

    singh

  • Du hast ein JOIN aber kein JOIN definiert.

    Vielleicht hilft Dir das weiter?
    https://www.mysqltutorial.org/mysql-update-join/


    PHP
    $query = "
    update jos_teams AS t, jos_games AS g
    set	t.team = g.gamesteam1,
          t.goal_in = $team1_gi,
          t.goal_out = $team1_go,
          t.game_nr = $team1_nr,
          t.points = $team1_pt
    WHERE g.gamesid = $i;
    ";

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.

  • Danke für den Hinweis. Allerdings funktionierte das Statement bisher. Was ich nicht hinbekomme ist diese Symtax:


    Das ist ein einfaches update auf eine Tabelle. Wenn ich versuche die folgende Query abzubilden, bekomme ich Fehler:

    $query = "update jos_teams t, jos_games g set t.goal_in = $team1_gi, t.goal_out = $team1_go, t.game_nr = $team1_nr, t.points = $team1_pt WHERE t.team = g.gamesteam1 and g.gamesid = $i";

  • Irgend so was. Du brauchst halt ein JOIN, wenn du mit 2 Tabellen arbeitest, wie LukasHH ja schon gesagt hat:

    Ist halt unmöglich zu testen, wenn Fragende nicht wenigstens ein paar Zeilen importierbare Datenbank-Demodaten und den Code-Kontext angeben, welche Variable was ist.

  • Oh super, läuft!! Sorry für die fehlenden Infos, bzgl. der Query Struktur war ich etwas lost...


    Ich bastle gerade noch einem weiteren Statement, welches in die JDatabase Struktur überführt werden müsste. Ich versuch es aber erst mal selber.


    Vielen Dank für eure tolle Unterstützung!!


    Beste Grüße

    singh