Variable beim erstellen von Tabellen verwenden?!

Oli-bt

Mitglied
Hi zusammen!

Ich will anhand eines "Scripts" eine Tabelle in einer Datenbank erstellen. Das hat den Sinn das wenn sich ein User auf meiner Seite registriert, ein Postfach in Form einer Tabelle in meiner Datenbank angelegt werden soll. Dazu müsste ich aber wissen wie ich da eine Variable benutzen kann, da diese vom User genommen wird.
Der Code sieht bis jetzt so aus:
Code:
$username = "xyz";
$sql = 'CREATE TABLE `$username` ('
        . ' `id` INT(11) NOT NULL AUTO_INCREMENT, '
        . ' `user` VARCHAR(255) NOT NULL, '
        . ' `betreff` VARCHAR(255) NOT NULL, '
        . ' `text` TEXT NOT NULL, '
        . ' `datum` VARCHAR(255) NOT NULL,'
        . ' PRIMARY KEY (`id`)'
        . ' )';
mysql_query($sql);

echo "Wurde erfolgreich angelegt!";
Wie kann ich jetzt die Variable $username einbauen. Wenn ich das so mache wie es oben steht geht es nicht... Da kommt dann "$username" statt "xyz".....

Wäre super wenn Ihr mir weiterhelfen könnt.
Gruß, Oli
 
Und kann ich dann später mit nem Befehl überprüfen ob die Tabelle xyz vorhanden ist ohne das ich z.B. erst in MySQL Admin gehe?

Gruß, Oli
 
Warum willst du für jeden User eine !eigene! Tabelle erstellen? Das ist totaler Schwachsinn. Mach eine Tabelle, in der du noch den Usernamen/UserId speicherst.
 
hast du die vorherigen beiträge gelesen? Dann wüsstest Du das dich die Tabellen von dem Postfach meine.... Jeder User der sich registriert wird in eine Tabelle eingetragen wo alle User mit allen Informationen drinstehen. Gleichzeitig wird eine Tabelle für jeden User als eine art "Postfach" angelegt. Somit können sich registrierte User untereinander Nachrichten schreiben. Dazu benötige ich eben für jeden User noch ne Tablle. Und dafür bräuchte ich nen Befehl ob diese vorhanden ist. Egal ob es schwachsinnig für dich ist oder nicht... ich habe meine Gründe dafür ;)
 
Ähm... bin ich jetzt völlig benebelt oder hast du grad eben gesagt du willst für JEDEN User eine Tabelle anlegen?

Damit ruinierst du dir das DB-Design und ausserdem wirst du bei jeder Tabelle neue Indizes setzen müssen und überhaupt und grausam!

Überleg dir ein DB-Design bei dem du alle Mails in einer Tabelle hast und alle User in einer tabelle
dann kannst du noch eine "Metatabelle" nehmen die 1. Empfänger und Absender zweist und 2. Flags wie "zugestellt" oder ähnliches enthalten kann..

Zum überprüfen ob eine Tabelle existiert oder nicht kannst du folgendes beim erstellen machen
create xy if not exists database .. blablubb.. so müssts glaub ich heißen :)

MfG Dominik

..Frag ruhig weiter... muss selbst in ein paar Tagen ein PM-System schreiben ;)

edit: nochmal.. du brauchst 3 Tabellen... mehr nicht.. selbst mit 2 würds Funktionieren.. ist aber nicht so schön! (wobei man wegen DB-Performance u.U. sogar zur 2 Tabellenlösung übergehen würde)
 
Zurück