Antworten auf deine Fragen:
Neues Thema erstellen

Datenbankeinträge auslesen aus 2 verschiedenen Tabellen

BeatrixKiddo

Noch nicht viel geschrieben

Hallo,

folgendes Problem führt mich zu Euch und zwar bin ich dabei eine mysql Datenbank in einem PHP Script auslesen zu lassen.
Jetzt ist es so, dass meine Datenbank aus 4 Tabellen besteht.
Die Einträge in diesem Bereich der Seite sollen aus 2 verschiedenen Tabellen stammen.

Konkret sieht mein Skript so aus: (also der für das Problem relevante Teil)

$db = mysql_connect ($host, $user, $pass) or die ("verbindung nicht möglich");
mysql_select_db($dbase, $db) or die ("verbindung zur datenbank fehlgeschlagen");
$select = "select * from hotels_adress";
$result = mysql_query($select,$db);



if ($result){
echo"<table>";
while ($row = mysql_fetch_array($result)){
echo"<tr>
<td><img src=pics/bild_post.jpg width=25 height=25 alt=post /></td>
<td>".$row[street]."<br>".$row[zip]."".$row[city]."</td>
</tr>
<tr>
<td><img src=pics/bild_postfach.jpg width=25 height=25 alt=postfach /></td>
<td>.</td>
</tr>
<tr>
<td><img src=pics/bild_telefon.jpg width=25 height=25 alt=telefon /></td>
<td>".$row[telephone]."</td>
</tr>
<tr>
<td><img src=pics/bild_fax.jpg width=25 height=25 alt=fax /></td>
<td>".$row[fax]."</td>
</tr>
<tr>
<td><img src=pics/bild_qualitaetsbericht.jpg width=25 height=25 alt=qualitaetsbericht /></td>
<td>".$row[short_descr]."</td>
</tr>
<tr>
<td><img src=pics/bild_url.jpg width=25 height=25 alt=url /></td>
<td>".$row."</td> Alle Einträge bis auf die ...r jemand von Euch helfen könnte. Viele Grüße
 

michas

Nicht mehr ganz neu hier

AW: Datenbankeinträge auslesen aus 2 verschiedenen Tabellen

Hi,

worüber sind deine Hoteladressen (hotels_adress) mit den Reporten (hotels_reports) verknüpft? Über eine "hotel_id" ?

Kann Dir helfen, wenn Du mal die Tabellendefinitionen nennst.

Gruß micha
 

holgermerz

Nicht mehr ganz neu hier

AW: Datenbankeinträge auslesen aus 2 verschiedenen Tabellen

Du benötigst in beiden Tabellen eine Spalte mit einem identischen Wert. Also z.B. in der Tabelle hotels_adress das Feld id. Dieses id-Feld benötigst du auch in der Tabelle hotels_reports (natürlich mit dem gleichen Wert).

Über Select ... FROM hotel_adress INNER JOIN hotel_report ON hotel_adress.id=hotel_reports.id kannst du dir nötigen Infos (in deinem Fall short_descr) holen, in dem die Werte identisch sind.
 

Robbyn-

PHP / Flex Programmierer

AW: Datenbankeinträge auslesen aus 2 verschiedenen Tabellen

Du kannst das wie folgt lösen:

PHP:
"SELECT a.street, a.zip, a.city, a.telephone, a.fax, a.url, r.short_descr FROM hotels_adress as a, hotels_reports as r"

So ließt er alle angegeben Werte von den beiden Tabellen aus, die Werte werden für dich jetzt ein bisschen komisch aussehen aber alles was ein a. hat gehört zu hotels_adress und alles was ein r. hat gehört zu hotels_reports.

Wie es aber auf eine Schleife reagiert weiß ich nicht, meißtens habe ich dies zum auslesen einzelner Werte genutzt, also mit einem WHERE am ende.

Probiere es einfach aus, mehr als nicht gehen kann es nicht ;-)

MfG.Robbyn
 

lachender_engel

Aktives Mitglied

AW: Datenbankeinträge auslesen aus 2 verschiedenen Tabellen

Deine Angaben sind zu wenige um Dir eine fertige SQL-Abfarge zu liefern.
Da braucht es vor alle Infos zu "der anderen" Tabelle und am Besten das Posten der Tabellenstrucktur.

Schaue Dir die JOIN-Befehle in MySQL an
 

michas

Nicht mehr ganz neu hier

AW: Datenbankeinträge auslesen aus 2 verschiedenen Tabellen

@Robbyn-

Deine Abfrage wird mit 100% Sicherheit nicht das gewünschte Ergebnis liefern. Du joinst die Datensätze zu einem Kreuzprodukt, da Du keine Join-Bedingung angegeben hast. Wie LACHENDER_ENGEL schrieb: ohne weitere Angaben können wir hier nur schwer helfen.

Gruß Micha
 

Robbyn-

PHP / Flex Programmierer

AW: Datenbankeinträge auslesen aus 2 verschiedenen Tabellen

@Robbyn-

Deine Abfrage wird mit 100% Sicherheit nicht das gewünschte Ergebnis liefern. Du joinst die Datensätze zu einem Kreuzprodukt, da Du keine Join-Bedingung angegeben hast.

Is ja wohl klar das man eine Bedingung für jede Tabelle geben muss bevor man diese Abfrage in eine Schleifen durchlaufen lassen kann. Aber wie Ihr bereits sagtet die Angaben die man braucht sind nicht vorhanden.

MfG.Robbyn
 

BeatrixKiddo

Noch nicht viel geschrieben

AW: Datenbankeinträge auslesen aus 2 verschiedenen Tabellen

Hi,

worüber sind deine Hoteladressen (hotels_adress) mit den Reporten (hotels_reports) verknüpft? Über eine "hotel_id" ?

Kann Dir helfen, wenn Du mal die Tabellendefinitionen nennst.

Gruß micha

Hallo, vielen Dank für die zahlreichen Antworten. Also michas hat recht, die Hoteladressen werden mit den Reports über eine hotel_id verknüpft.
ich wenn jetzt schreibe
$select ="select * from hotels_hotel_adress join hotels_hotel_qualityreports";
wird zwar die [short_descr] ausgegeben, allerdings wird die gesamte Tabelle 2 mal ausgespuckt da sich 2 reports in der DB befinden. Natürlich habe ich dann 2 hintereinander ausgegeben aber 2 mal das gleiche. Muß die beiden IDs also irgendwie noch mit einfügen, sodass erst das erste dann das 2. ausgegeben wird.
 

michas

Nicht mehr ganz neu hier

AW: Datenbankeinträge auslesen aus 2 verschiedenen Tabellen

Hallo BeatrixKiddo,

kannst Du denn nicht einfach Deine Tabellendefinitionen (zumindest auszugsweise) posten?

Meine Kugel sagt:
Hast Du 3 Reports drin, wird sich das auf 3 erhöhen... :)
Versuch es doch mal ungefähr so:
Code:
select * from hotels_hotel_adress join hotels_hotel_qualityreports on hotels_hotel_adress.hotel_id_oder_wie_auch_immer_die_spalte_heisst = hotels_hotel_qualityreports.hotel_id_oder_wie_auch_immer_die_spalte_heisst
[code]
Dann solltest Du Dir noch überlegen, was Du mit den Einträgen in hotels_hotel_adress machen möchtest, welche mit keinem Report verknüpft sind

Ich mag eigentlich kein Rätselraten, dass nur nebenbei.
Gruß Micha
 

ovbb

es gibt für alles eine weg

AW: Datenbankeinträge auslesen aus 2 verschiedenen Tabellen

Schau dir mal die Joins an die lachender_engel gepostet hat.

Es kommt nämlich darauf an was genau du brauchst und welcher JOIN zum gewünschten Ergebnis führt.

Self, Inner, Outer, Natural oder doch ein Cross Join?

Falls du möchtest kann ich dir gerne einen Auszug aus meiner letzten Ausarbeitung für mein Studium bereitstellen.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.620
Beiträge
1.538.374
Mitglieder
67.544
Neuestes Mitglied
janusbarman
Oben