WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Name für Tabelle (http://www.wcm.at/forum/showthread.php?t=184820)

harry1983 06.02.2006 11:22

Name für Tabelle
 
Hallo

Hab wieder mal eine Frage.
Kann man eine Variable als Namen für eine Datenbank anlegen?
Ich will zum Beispiel das so lösen:

Man tragt einen neuen raid ein. Und Das Datum des neuen Raids (in Zahlen 10102006 zum Beispiel) soll als Name für eine neue Tabelle anegelegt werden.
Funktioniert das?

Denn mit dem Befehl
$sql="CREATE TABLE $raiddatum (.......)";
haut das nicht hin.
Kennt jemand eine Lösung?
Bitte um Hilfe
Danke

käptn 06.02.2006 11:37

Der Tabellenname muss wahrscheinlich mit einem Buchstaben oder Unterstrich beginnen.

~

harry1983 06.02.2006 11:38

Wie sollte das dann genau aussehen?
So ? sql="CREATE TABLE _$raiddatum (...)";

helios 06.02.2006 11:42

der tabellenname kann mit ziemlicher sicherheit nicht mit einer ziffer anfangen. in oracle und mysql ist das definitiv so.

helios 06.02.2006 11:44

Zitat:

Original geschrieben von harry1983
Wie sollte das dann genau aussehen?
So ? sql="CREATE TABLE _$raiddatum (...)";

welche db hast du denn? der underscore funktioniert unter oracle auch nicht, unter mysql schon.

harry1983 06.02.2006 11:47

Ich verwend mysql 4

harry1983 06.02.2006 11:51

den Fehler hier bekomme ich:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '&raiddatum (ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, UserNam...

helios 06.02.2006 11:57

naja deine variable wird offenbar nicht durch ihren wert ersetzt. php kann ich nicht, aber ich glaub das muss ungefähr so heissen:
Code:

sql="CREATE TABLE _" . $raiddatum . "(...)";

harry1983 06.02.2006 12:12

Jetzt hauts hin. Danke

harry1983 06.02.2006 12:42

Neues Problem
(Ich weiss ich nerv :) )
Folgender Befehl:

$sql="SELECT Userklasse FROM users WHERE Username = '$username'";

Ich will von dem user der gerade eingeloggt ist seine Userklasse auslesen und an einen anderen Befehl übergeben.
Nur bleibt die klasse immer leer.
Woran liegts? Ich finde einfach den Fehler nicht.

helios 06.02.2006 13:10

du kannst deine variablennamen nicht einfach so in den string reinschreiben, du musst string concatenation machen
Code:

$sql="SELECT Userklasse FROM users WHERE Username = '" . $username . "'";

harry1983 06.02.2006 13:18

Hm es tut sich nicht viel.
Tabelle bleibt ausser dem User immer noch leer.
Ansich wird die Userklasse sofern diese mal ausgelesen wurde in eine andere Tabelle gespeichert.

Mit diesen Befehl hier:

$sql="INSERT INTO _Raid (UserName, UserKlasse) VALUES ('$username', '$userklasse')";

Den user schreibt er aber die klasse bleibt immer noch leer.

harry1983 06.02.2006 14:08

Also in der Tabelle unter der Spalte UserKLasse hab ich jetzt drinnen stehen Resource id #5

Was heisst das?

harry1983 08.02.2006 12:25

Hat denn keiner eine Idee was das zu bedeuten hat?
Bitte um Hilfe
Danke

T.dot 08.02.2006 12:45

Las dir doch einfach mal deinen SQL-Befehl ausgeben, bevor du ihn ausführst. Dann weißt du zumindest mal, ob die Variablen richtig sind.
Wenn das passt würde ich versuchen das SQL-Statement nicht über PHP sondern direkt über Kommandozeile oder über PHPMyAdmin, etc. ausführen. Falls dabei das gleiche rauskommt hast du irgendein Problem mit der Tabelle.

mfg Thomas


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag