Zwei UNTERSCHIEDLICHE Tabellen mit PHP auslesen
Olaf Heinrich
- php
Hallo zusammen,
da ich noch recht neu bin in MySQL Datenbankabfragen und PHP, hier mal meine Frage an Euch:
Ich möchte zwei GRUNDVERSCHIEDENE Tabellen einer Datenbank auslesen.
Die Tabellen "news" und "users" haben absolut GAR NICHTS mit einander gemeinsam.
Auf der Linken Seite meiner PHP Seite befindet sich eine <table>, diese soll den Inhalt aller news ausgeben, auf der rechten Seite eine weitere <table> die den Inhalt der gesamten Tabelle "users" ausgeben soll.
Nun, eine Möglichkeit wäre zwei verschiedene Abfragen zu erstellen und diese an zwei Stellen zu includen. Problem: Über der Newstabelle befinden sich Links für einen eingeloggten Benutzer, der auf seine Daten zugreifen soll. Ich muss in den Link die UserID des Benutzers eintragen, damit er auf der nächsten Seite seine Daten UND auch wieder die gleichen News sehen kann.
Die beiden MySQL Tabellen beinhalten unterschiedliche Anzahlen von Spalten und Werten. Wie also gesagt, haben diese beiden Tabellen nur eine Gemeinsamkeit: Sie stehen in einer Datenbank, haben sonst aber NICHTS miteinander zu tun.
Kann mir Da einer einen Lösunsansatz geben? Mit JOIN bin ich nicht weiter gekommen. Da beim kombinieren dann der Fehler auftritt, das alle News und alle Userdaten doppelt und dreifach ausgegeben werden.
Hier mal der Quelltext eines anderen Versuches, der Ebefalls in der Mehrfachen Darstellung aller Daten endet:
<?php
error_reporting(E_ALL);
@mysql_connect("localhost", "root", "Lockheed") OR die(mysql_error());
mysql_select_db("parafun") OR die(mysql_error());
$sql = "SELECT * FROM news JOIN users";
$result = mysql_query($sql) OR die(mysql_error());
echo "News in der Datenbank:<br />\n";
if(mysql_num_rows($result))
{ // gucken ob was im Query drinsteckt
while($row = mysql_fetch_assoc($result))
{
echo $row['NewsLink'] . '<br>'
. $row['UserName']. '<br><br>';
}
}
else
{
echo "Es sind keine News in der Datenbank vorhanden<br />\n";
}
?>
Danke schon mal im Voraus
Gruß
Olli
Moin!
Ich möchte zwei GRUNDVERSCHIEDENE Tabellen einer Datenbank auslesen.
Die Tabellen "news" und "users" haben absolut GAR NICHTS mit einander gemeinsam.
Dann machst du zwei SQL-Querys, und gut ist.
JOINS sind dazu da, Tabellen zu verknüpfen, die was miteinander zu tun haben. Beispielsweise eine Tabelle für User, und dann noch eine Tabelle, wo für jeden User eine Liste seiner Telefonnummern drinsteht. Solche Tabellen kann man per JOIN verknüpfen und erhält sinnvolle Ergebnisse.
Auf der Linken Seite meiner PHP Seite befindet sich eine <table>, diese soll den Inhalt aller news ausgeben, auf der rechten Seite eine weitere <table> die den Inhalt der gesamten Tabelle "users" ausgeben soll.
Dann mach das doch.
Nun, eine Möglichkeit wäre zwei verschiedene Abfragen zu erstellen und diese an zwei Stellen zu includen.
Genau das ist die Lösung.
Problem: Über der Newstabelle befinden sich Links für einen eingeloggten Benutzer, der auf seine Daten zugreifen soll. Ich muss in den Link die UserID des Benutzers eintragen, damit er auf der nächsten Seite seine Daten UND auch wieder die gleichen News sehen kann.
Nein, du mußt eine Session benutzen, in der du einträgst, dass der Benutzer mit der ID 23 sich ordnungsgemäß mit korrektem Usernamen und Passwort eingeloggt hat. Wenn du nur einen Link mit der User-ID erzeugst, und auf der nachfolgenden Seite nicht prüfst, ob der User sich ordentlich eingeloggt hat, kann jeder Benutzer diese Seite aufrufen und vermutlich auch Änderungen vornehmen.
- Sven Rautenberg
Moin Sven,
klar, da muss bei mir ein Blackout gewesen sein.
Über Sessions arbeite ich eh schon die ganze Zeit. Und den Link brauche ich so oder so nicht mit einer Id versehen. Ich brauche nur die Session ID mit der in der Datenbank abgelegten UserSession vergleichen und die Tabellenabfrage über die WHERE Klausel der SessionIs machen. Schon bekomme ich die richtigen Daten.
War ein Denkfehler von mir. Bei all den vielen Abfragen und verschiedenen Bedignungen die ich eingebaut habe, habe ich fast den Überblick über meine eigenen Scripte verlohren.
Danke Dir
Gruß
Olli