Mehrere Tabellen abfragen

dezz

Mitglied
Morgen,
ich kann jetzt alle Namen der Tabellen abfragen mit:
PHP:
while ($row = mysql_fetch_array($ausgabe)){
    $tables[] = $row[0];
}  
echo implode(',', $tables);

$tables[1] z.b ist "admin", $tables[2] ist dann "events" usw..

Das Problem ist, dass ich mit jedem Benutzer eine neue Tabelle dazu bekomme.. ist es irgend wie realisierbar dass man dennoch aus allen Tabellen auslesen kann?
(falls das überhaupt geht)
So ungf ist es momentan..
PHP:
$sql = "SELECT * FROM $tables";
$sqle = "SELECT * FROM $tables  WHERE $tables[1].type = 'einmal'' AND $tables[2].type ='einmal' AND $tables[3].type = 'einmal'";
$sqlf = "SELECT * FROM $tables  WHERE $tables[1].type = 'wöchentlich'' AND $tables[2].type ='wöchentlich' AND $tables[3].type = 'wöchentlich'";
 
Ja das ist möglich. Aber warum legst du für jeden Benutzer eine neue Tabelle an? Da gibt es doch bestimmt eine bessere Lösung.
 
Ich will dass jeder Benutzer seine "Daten" (nicht password usw) in einer eigenen Tabelle speichert..
Denke nochmal nach und entscheid mich für eine andere Variante.. falls es so zu schwer ist :)
 
Was is das denn für eine Begründung? Da die Daten doch immer den gleichen Aufbau haben, macht das absolut keinen Sinn. Füg der Daten-Tabelle noch eine Spalte für die UserID hinzu, um den entsprechenden User zu referenzieren und fertig ist die Sache. Das erleichtert auch das Arbeiten an sich ungemein.
 
Genau darauf wollte ich hinaus.
Tabelle users:
Code:
userid|name|password|age|location
-----1|hans|-----xyz|-23|--Berlin
-----2|Anna|-----xyz|-45|-München
-----3|Paul|-----xyz|-18|-Hamburg

PHP:
//Daten von Anna
$result = mysql_query("SELECT * FROM `users` WHERE `userid` = 2");
$row   = mysql_fetch_assoc($result);
echo "Das ist {$row["name"]}, er/sie ist {$row["age"]} Jahre alt und wohnt in {$row["location"]}";

Einfach für das Feld userid auto_increment aktivieren. Dann kannst du bequem neue Nutzer hinzufügen
PHP:
mysql_query("INSER INTO `users` (`userid`,`name`,´password´,`age`,`location`) VALUES(NULL,'Bernd','abcdef',25,'Bremen)
 
nee ihr habts glaub ich falsch verstanden. in user sind die daten drin, password, name, vorname usw.
in admin-> (wobei das der name eines users ist) ist drin: beiträge von admin, status usw.
ich wollte für jeden user eine tabelle haben, da dort dann unzählige daten, beiträge usw drin sind und wenn ich alles in eine stopfe hat man dort 30k zeilen
 
Also entweder solltest du dich mal genauer mit den Prinzipien von Relationalen Datenbanksystemen auseinandersetzen (Stichwort: Normalisierung) ODER aber du verfolgst dein Ziel weiter, aber mit einem geeignet System wie Cassandra, CouchDB, MongoDB, HBase oder eine der vielen Vertreter der "NoSQL" Schiene.
 
naja ich werde es doch anders machen, nicht die tabellenaufteilung da..
lese mir die normalisierung bei wikipedia aber erstmal durch :)
 
Ich hab dich keineswegs falsch verstanden, deswegen hab ich dir auch gesagt, füg einfach eine Spalte in deine Datentabelle hinzu. Die Datentabelle bei dir ist ja die Tabelle, die wie ein User heißt. Mach einfach eine allgemeine Tabelle (also nicht mit einer Userbezeichnung, sondern eine die passt, z.B. Beiträge) und füg da eine Spalte ein, in die die UserID kommt. Dadurch wird der Datensatz mit einem User verknüpft, du kannst also über die UserID herausfinden, zu welchem User der Datensatz gehört.

Übrigens brauchst du die Normalisierung auf Wikipedia gar nicht nachlesen, der Text ist so mieserabel und unverständlich, spar dir die Mühe. Ich wette jeder User hier im Forum kann das schneller und leichter erklären.
 
Zurück