Philip Naggert: Auslesen aus mehreren Datenbanken

Hallo,
ich möchte bei meinem Newssystem die News sowie die User aus 2 Datenbanken auslesen und das mit einer SELECT-Abfrage:

$tmp="SELECT * FROM news_posts, liga_user WHERE news_posts.user = liga_user.id AND rubrik='$rubrik' ORDER by timestamp DESC LIMIT 0,5";
    }

$connect->do_query($tmp);
while($connect->getrow()) {

$id=$connect->field("id");
                $titel=$connect->field("titel");
                $artikel=$connect->field("artikel");
                $datum=$connect->field("datum");
                $img=$connect->field("img");
                $nickname=$connect->field("nickname");
                $profilid=$connect->field("id");

.... hier gehts dann halt weiter, ist aber nicht relevant!

Nun sehr Ihr vielleicht schon das Problem, denn in beiden Tabellen gibt es einen Wert namen "id", einmal in news_posts und einmal in liga_user...

liga_user: id = userid
news_posts: id = newsid

Jetzt habe ich das Problem beim zuordnen, denn der Wert "id" wird nun einmal $id und einmal $profilid zugeordnet.

Wie kann ich dem Script nun klarmachen, dass $id die ID von news_posts sein soll und $profilid die ID von liga_user?

Hoffe, ich hab mich nicht zu kompliziert ausgedrückt, danke für Eure Hilfe

Philip

  1. hi,
    ich weiss nicht, ob ich dich genau verstehe..
    aber du kannst mit mysql beim auslesen die spaltennamen ändern. z.b.

    SELECT liga_user.id as userid, news_posts.id as newsid FROM liga_user,news_posts

    du hättest somit die feldee userid und newsid als resultat..

    gruss chrigu

    1. Hi Philip

      Ja das hätt ich auch geschrieben:

      SELECT liga_user.id as userid, news_posts.id as newsid FROM liga_user,news_posts

      Ist ein reines SQL "Problem". Hier kannst Du nachlesen:

      http://www.little-idiot.de/mysql/mysql-117.html

      cheers
      kaepten

  2. hi philip

    zum einen liest du mit deiner abfrage aus 2 verschieden tabellen einer datenbankaus

    SELECT * FROM news_posts, liga_user WHERE news_posts.user = liga_user.id AND rubrik='$rubrik' ORDER by timestamp DESC LIMIT 0,5

    $connect->do_query($tmp);
    while($connect->getrow()) {

    $id=$connect->field("id");
                    $titel=$connect->field("titel");
                    $artikel=$connect->field("artikel");
                    $datum=$connect->field("datum");
                    $img=$connect->field("img");
                    $nickname=$connect->field("nickname");
                    $profilid=$connect->field("id");

    und zur lösung deines problems, musst du die tabellennamen mit angeben

    so z.b.

    $profilid=$connect->field("tabelle.id");

  3. Hi,

    ich möchte bei meinem Newssystem die News sowie die User aus 2 Datenbanken auslesen und das mit einer SELECT-Abfrage:

    ichz habe schon wer weiss was gedacht und nun sehe ich dass DU zwei Tabellen meist, nicht 2 Datenbanken ;)

    $tmp="SELECT * FROM news_posts, liga_user WHERE news_posts.user = liga_user.id AND rubrik='$rubrik' ORDER by timestamp DESC LIMIT 0,5";
        }

    $id=$connect->field("id");

    Du machst es doch schon in der Abfrage richtig, was spricht gegen
    $id=$connect->field("new_posts.id");

    bzw. (ich kenne jetzt dein dbms nicht) kann man bei der Abfrage schon direkt aliasse vergeben
    a la : select new_posts.id as pid, ...  (pid wäre dann dein Afragename)

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
    Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
    Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
  4. Super, hat wunderbar geklappt, danke Euch!!! War schon am verzweifeln... Dieses Forum ist einfach genial