Abfrage von 2 Datenbanken ?

  • Themenstarter Themenstarter starfoxfs
  • Beginndatum Beginndatum
S

starfoxfs

Hi zusammen,

Ich will von 2 Datenbanken eine Abfrage machen und das ganze als While Schleife ausgeben lassen funktioniert aber noch nicht wirklich hier mal mein Code den ich gebastelt hab:

PHP:
include "inc/dbzugriff1.php"; 
include "inc/dbzugriff2.php";

$abfrage = "SELECT * FROM datenbank1.dbo.bb1_threads WHERE boardid = '104' and visible = '1' ORDER by starttime DESC LIMIT 3 JOIN datenbank2.dbo.bb1_threads WHERE boardid = '40' and visible = '1' ORDER by starttime DESC LIMIT 3 ";
$ergebnis = mysql_query($abfrage);
while ($data = mysql_fetch_array($ergebnis))
{

Ich hoffe ihr habt ne Idee
 
[phpf]mysql_error[/phpf] könnte eventuell Aufschluss geben, aber auch das Query sieht nicht wirklich gut aus. Rein von dem, was ich mir jetzt denken kann, was erreicht werden soll, ist ein Join nicht das Mittel zum Zweck - Entweder ein Union-Select oder zwei getrennte Queries, abhängig davon, was Sinn und Zweck ist. Bei ersterem lässt sich so einfach nämlich keine effiziente Trennung durchführen, was aus DB #1 kommt und was aus #2.

SQL:
(
  SELECT
      *
  FROM
      `datenbank1`.`dbo`.`bb1_threads`
  WHERE
      `datenbank1`.`dbo`.`bb1_threads`.`boardid` = '104' AND
      `datenbank1`.`dbo`.`bb1_threads`.`visible` = '1'
  ORDER BY
      `datenbank1`.`dbo`.`bb1_threads`.`starttime` DESC
  LIMIT 3
)
UNION
(
  SELECT
      *
  FROM
      `datenbank2`.`dbo`.`bb1_threads`
  WHERE
      `datenbank2`.`dbo`.`bb1_threads`.`boardid` = '40' AND
      `datenbank2`.`dbo`.`bb1_threads`.`visible` = '1'
  ORDER BY
      `datenbank2`.`dbo`.`bb1_threads`.`starttime` DESC
  LIMIT 3
)

Was mir spontan noch einfällt, wäre die Verwendung eines USING-Äquivalents, wie der PHP-Funktion [phpf]mysql_select_db[/phpf], der dazu führen kann, dass die Datenbankbezeichnungen im falschen Kontext stehen. Einfach diese Funktion weglassen und entsprechend immer die Datenbanknamen mitschreiben (Wie gehabt).
 
Ich habs mal so gemacht wie du es beschrieben hast mit Union.

Jetzt ist es allerdings so das Php meckert und mit dem mysql_fetch_array nichtmehr zurecht kommt.

:Edit: Ich will die Posts die in der Thread von der einen Datenbank und der Thread von der anderen Datenbank als News anzeigen lassen und zwar zusammen in einer Ausgabe
 
Zuletzt bearbeitet von einem Moderator:
Nochmal zum Verständniss was das ganze bewirken soll:
Ich hab 2 unterschiedliche Foren die auch auf 2 unterschiedlichen Datenbanken sind.
In beiden Foren gibt es ein Board mit Neuigkeiten (News) ich will aus beiden Foren die News auf einer Homepage anzeigen lassen und zwar nach Startzeit des Threads sortiert Limitiert auf 3 News je Forum.
 
Zurück