mmofacts.com

2 DB verwenden?

gepostet vor 17 Jahre, 3 Monate von Dorgo
Hallo,
Also ich habe da mal ne Frage, hoffe ihr versteht was ich meine.
Also ich verbinde mich nun per php mit meiner DB so:

mysql_connect("localhost","root","") or die("Konnte die Datenbankverbindung nicht herstellen.");
mysql_select_db("dm") or die("Konnte datenbank nicht auswaehlen.");
?>
ok also ich wähle hier die DB: DM.
Erklärung:
ich habe 2 Projekte:
Projekt DM: Enthält die User Daten (PW, mail, name...) + die Daten für ein Spiel
Projekt BB: Enthält nur die Daten für ein Spiel, soll aber die selben Daten wie DM für die User verwenden.
Also mein Problem:
Wenn ich nur ein Projekt habe gehts ja leicht aber bei zwei henge ich.
Ich dachte mir ich könnte immer meine Hauptverbindung zu den Daten als entweder DM oder BB anhaben und wenn ich auf BB bin und mich einlogge noch die verbindung DM für die User daten. Doch ich weis nicht wie ich dies umsetzen soll damit der Server dann auch weis was ich gerade ansprechen will...
Wisst Ihr was ich meine? Also ich versuche 2 Datenbanken die am selben server sind zu verbinden.
Zusammen geben kann ich es nicht, das würde alles durcheinanderbringen, also es muss getrennt bleiben.
Vieleicht gibt es da ja einen trick, so wie:
habe immer BB offen wenn man sich auf BB befindet und nur bei Login DM verbunden für user, aber das eben mit der art code, vieleicht hat ja da wer ne idee oder link .
Wäre echt supper, danke, versuchs schon seit 5 stunden aber schafs ned^^.
Danke.
mfg,
Dorgo
PS: Sorry wegen Rechtschreibfehlern bin aber leider legasteniker bemühe mich eh
gepostet vor 17 Jahre, 3 Monate von TheUndeadable
Schau dir nochmals mysql_connect genau an.
$h1 = mysql_connect ( .... );
$h2 = mysql_connect ( .... );
Mit Hilfe der Handles kannst du deine Befehle exakt auf einer Datenbank ausführen.
Eine andere, meiner Meinung nach bessere Methode ist die Tabelle vollständig auszuschreiben:
Aus SELECT * FROM users; wird SELECT * FROM dm.users;
gepostet vor 17 Jahre, 3 Monate von Toby
Nen gescheiten DB-Wrapper und dann eben zwei Instanzen davon erzeugen.
gepostet vor 17 Jahre, 3 Monate von Dorgo
Danke für die schnelle hwerde mich gleich mit den neuen Informationen auseinandersetzen und bei fragen, fragen.
Thx,
mfg, Dorgo
gepostet vor 17 Jahre, 3 Monate von Amun Ra
Mal wild zusammen kopiert...
mysql_connect("localhost","root","") or die("Konnte die Datenbankverbindung nicht herstellen.");

mysql_select_db("dm") or die("Konnte datenbank nicht auswaehlen.");
mach_was();
mysql_select_db("andere_db") or die("Konnte datenbank nicht auswaehlen.");
mach_was_anderes();
mysql_select_db("dm") or die("Konnte datenbank nicht auswaehlen.");
# usw
?>
gepostet vor 17 Jahre, 3 Monate von raufaser
Kurz zusammenkopiert wie ich es machen würde...

// Datenbank Klasse
class db_core
{
var $db_host;
var $db_database;
var $db_user;
var $db_password;
var $db_connect;
// Init
function db_core( $db_host, $db_database, $db_user, $db_password )
{
$this -> db_host = $db_host;
$this -> db_database = $db_database;
$this -> db_user = $db_user;
$this -> db_password = $db_password;
$this -> db_connect = $this -> db_verbinde();
}
// Mit Datenbank verbinden
function db_verbinde()
{
$dbret = @mysql_connect( $this -> db_host, $this -> db_user, $this -> db_password ) or die( "Keine Verbindung zur Datenbank möglich!\n" );
@mysql_select_db( $this -> db_database ) or die( "Fehler: Datenbank \"" . $this -> db_database . "\" nicht gefunden" );
return $dbret;
}
// Funktion macht einen DB_QUERY
function db_query( $befehl )
{
$retstr = @mysql_query( $befehl, $this -> db_connect );
return $retstr;
}
}
?>
Und dann:

$db1 = new db_core( "localhost", "DM", "user", "pass" );
$db2 = new db_core( "localhost", "BB", "user", "pass" );
$db1 -> db_query( "SELECT ..." );
$db2 -> db_query( "SELECT ..." );
Müsste eigentlich funktionieren so, wenn ich nicht gerade einen Brainbug habe ... ist schon so spät...
Gruß,
Marc
gepostet vor 17 Jahre, 3 Monate von Dorgo
WOOW super danke, habs nun dank eurer hilfe super verstanden .
Noch ne kleine andere Frage die zu dem Projekt dazugehört.
Also ich habe ein eingabeformular, da gibt man nun einen URL ein zb:
orf.at ok dann klickt man auf absenden und dann soll die php datei die kaywords der seite orf.at ausgeben ohne das diese aufgerufen wird (ersichtlich für den User) im hintergrund muss es ja geschehen, ist soetwas möglich ich habe da schon einiges gegoogelt nur leider standen da immer nur befehle für die kaywords ausgabe der seite auf der man sich befindet.
Vieleicht weis ja wer nen tipp oder so
.
Ich weis ich nerve und hoffe es sied nich so aus als ob ich euch ausnützen würde, ich komme nur bei diesen 2 Problemen ned weiter.
Danke für eure hilfe.
mfg,
Dorgo
Editt: @duschendestroyer: Danke, für die hilfe, wollte ned nen neuen Beitrag machen kann ja spamm sein
.
gepostet vor 17 Jahre, 3 Monate von duschendestroyer
einfach per file() oder file_get_contents() seite holen (VORSICHT: fopenwrappers oder wie das heisst muss aktiviert sein) und dann den quelltext mit regex parsen

Auf diese Diskussion antworten