kostenloser Webspace werbefrei: lima-city


JOIN Problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    tobiworlds

    Kostenloser Webspace von tobiworlds

    tobiworlds hat kostenlosen Webspace.

    Ich habe zwei Tabellen in einer MySQL-Datenbank.
    Die eine (tobiphp_user_connections) enthält Beziehungen zwischen Benutzern in der Form:
    user_id+++++connected_id+++++connection
    ---------------------------------------
    100000       100001           friend


    Die andere Tabelle (tobiphp_users) enthält die Informationen der einzelnen Nutzer:
    user_id+++++username ............
    ---------------------------------
    100000       Tobi
    100001       Nutzer2


    Nun möchte ich die Freunde von einem Benutzer ausgeben. Dafür schaue ich in
    tobiphp_user_connections
    nach Verbindungen des Typs "friend" und gebe die
    connected_id
    aus.
    Wenn ich jetzt aber die Namen der Freunde ausgeben will, müsste ich einzeln neue Abfragen stellen, deshalb versuche ich mich an JOINs, bekomme aber kein Ergebnis.
    Meine Versuch:
    <?php
    $result = $GLOBALS['DB']->query(" SELECT tobiphp_users.* FROM tobiphp_user_connections LEFT JOIN tobiphp_users ON tobiphp_user_connections.user_id = tobiphp_users.user_id ");
        while ($row = $result->fetch_assoc())
        {
            echo $row['connected_id'] ."-". $row['user_id'];
        }
    ?>


    Dadurch bekomme ich aber immer als user_id die tobiphp_user_connections.user_id.
    Hat jemand eine Idee?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Mir fällt gerade auf, wie lange es her ist, dass ich das gemacht habe und die Erinnerung daran ist ziemlich schwach, also sei bitte nicht sauer, falls es nicht funktioniert.

    Verwende das in deiner SQL-Abfrage:
    SELECT
        tobiphp_users.user_id as id,
        tobiphp_users.username as name


    Dann fragst du in PHP die Array-Elemente id und name ab. Ich weiß nicht mehr, ob man die Bezeichnungen auch überschreiben kann, aber das kannst du dann ja rausfinden, wenn du willst.
  4. Autor dieses Themas

    tobiworlds

    Kostenloser Webspace von tobiworlds

    tobiworlds hat kostenlosen Webspace.

    Das funktioniert zwar, liefert aber auch nicht das richtige Ergebnis, die ID ist wieder die Gleiche.

    EDIT:
    Ich habe jetzt bemerkt, dass ich eigentlich gar nicht auf tobiphp_users.user_id angewiesen bin.
    Ich kann ja auch einfach connected_id verwenden.

    Also funktioniert jetzt alles; ich würde mich trotzdem freuen, wenn jemand erklären könnte, ob mein gedachtes Vorhaben überhaupt zu realisieren ist.

    Beitrag zuletzt geändert: 26.10.2012 20:46:31 von tobiworlds
  5. deine UserId dürfte nicht die gleiche sein. In der ersten reihe 10000 und in der zweiten 10001.

    aber natürlich kannst du dass. Eine möglichkeit wäre z.B. ein group by zu nehmen und dann mittels group_concat die userid hintereinander anzugeben

    eine andere möglichkeit ist, dass du drafed-maps Idee verfolgst nur die werte aus der entsprechenden Tabelle nimmst
  6. Autor dieses Themas

    tobiworlds

    Kostenloser Webspace von tobiworlds

    tobiworlds hat kostenlosen Webspace.

    Mir wird aber die gleiche ID ausgegeben, auch wenn es mich selbst verwundert hat, ich bin mir sicher.

    Aber egal, ich werde mir Deine Lösung nochmal anschauen, auch wenn es wie gesagt jetzt ja leicht getrickst auch ohne diese Funktion möglich ist.

    Danke, kann geschlossen werden
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!