PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 Datenbanken, 1 Session = Problem


rauch_b
15.05.2007, 11:50:19
<?php
// Session starten
session_start ();

// Datenbankverbindung aufbauen

$connectionid = mysql_connect ("localhost:3306", "srst", "----");
$connectionidscg = mysql_connect ("localhost:3306", "scg", "----");


if (!mysql_select_db ("srst", $connectionid))
{
die ("Keine Verbindung zur Datenbank SRST");
}
if (!mysql_select_db ("scg", $connectionidscg))
{
die ("Keine Verbindung zur Datenbank SCG");
}

$sql = "SELECT ".
"`Id`, `Nickname`, `Nachname`, `Vorname`, `Modus` ".
"FROM ".
"`login` ".
"WHERE ".
"(`Nickname` like '".$_REQUEST["name"]."') AND ".
"(`Kennwort` = '".md5 ($_REQUEST["pwd"])."')";

// Erste Datenbank
$result = mysql_query ($sql);

// zweite Datenbank
$scg= mysql_query("SELECT `mandanten_id`,`mandant` FROM `mandanten` WHERE `mandanten`.`mandanten_id` = '". $_REQUEST['id6'] ."' ");



if ((mysql_num_rows ($result) > 0) && (mysql_num_rows ($scg) > 0) ) // Problem da
immer in Else Schleife geht sobal && .... eingefügt ist, da Array leer ist!
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($result);

// Porblem Array ist LEER
$datascg = mysql_fetch_array ($scg);

// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nickname"] = $data["Nickname"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
$_SESSION["user_modus"] = $data["Modus"];

// PROBLEM da hier keien Werte mitgegeben werden
$_SESSION["user_bankid"] = $datascg["mandanten_id"];
$_SESSION["user_bank"] = $datascg["mandant"];

header ("Location: ./de/pages/users/u_index.php");
}
else
{
header ("Location: u_fehler.php");
}
?>

// 2 Datei u_login.php und gebe durch POST Werte weiter ... hier nur für 2 Datenbank

<form action="u_loginsql.php" method="post">
<tr><td><span class="Stil1">Id Mandant: </span></td>
</tr>
<tr><td><input type="text" name="id6" size="20"></td>
</tr>
</form>



Nun mein Problem liegt darin dass von der ersten tabelle id, nachname, Vorname usw mit in die Session übernommen werden aber die zweite Datenbank obwohl der SQL Befehl stimmt keine Werte ausgibt und somit
mandanten_id und mandant
leer bleibt ......
Er greift aber auf die Datenbanken zu und gibt keinen Fehler aus auch wenn ich statt
'". $_REQUEST['id6'] ."' eine statische zahl eingebe passiert nichts ......

Ich weiss nicht ob das hier reinpasst habe mal ein wenig gesucht aber nichts passendes gefunden .....

Hoffe auf Hilfe

Raketenmann
15.05.2007, 12:06:24
Wenn der Aufruf von
mysql_num_rows ($scg)
einen Wert zurückgibt, der nicht größer als 0 ist, heißt das nicht automatisch, dass dein MySQL-Statement syntaktisch falsch ist...

...vielleicht wird über den Wert, der in $_REQUEST['id6'] übergeben wird, einfach nix gefunden?! ...oder du suchst an der falsche Stelle nach $_REQUEST['id6']?!


Jedenfalls hat dein Problem nichts mit der Session zu tun. Wenn schon die Bedingung in der "if"-Zeile nicht erfüllt wird, hast du schlicht und einfach ein leeres MySQL-Result.

rauch_b
15.05.2007, 12:11:55
ja aber das kann nun wieder nicht sein da ich mit den GUi Tools für meine Datenbank das SQL Statement geprüft habe und bei einer statischen Variable den gewünschten Wert ausgibt auch wenn ich den Datensatz aus mandaten rauslese und in eine Liste packe werden die Datensätze angezeigt ...... Aber sie werden nicht in das Array geschrieben bzw. in die Variable

Weiss nciht weiter

rauch_b
15.05.2007, 12:48:20
fehler gefunden -.-

Habe beim Datenbankaufbau

<?php

// Session starten
session_start ();

//''#########################NEU##########################
// Mandanten-Datenbank
$user = "scg"; # Username für die MySQL-DB
$pass = "---"; # Kennwort für die MySQL-DB
$server = "localhost:3306"; # Adresse/IP/Name des MySQL-Server
$dbase = "scg"; # Name der standardmäßig verwendeten Datenbank

$conn = @mysql_connect($server, $user, $pass);
if (!mysql_select_db ("scg", $conn))
{
die ("Keine Verbindung zur Datenbank");
}

// Wenn eine Verbindung aufgebaut werden konnte dann ....
if($conn) {
mysql_select_db($dbase, $conn);
$query_kunde = "SELECT * FROM `mandanten` WHERE `mandanten_id` LIKE '".$_REQUEST["id6"]."' ";
$result_kunde = mysql_query($query_kunde);
$kunde = mysql_fetch_array($result_kunde);
}
//''#########################NEU##########################


// Login-Datenbank
$connectionid = mysql_connect ("localhost:3306", "srst", "---");

if (!mysql_select_db ("fiducia", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
else{
$sql = "SELECT `Id`, `Nickname`, `Nachname`, `Vorname`, `Modus` FROM `login` WHERE (`Nickname` like '".$_REQUEST["name"]."') AND (`Kennwort` = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
$data = mysql_fetch_array ($result);
}


if ((mysql_num_rows ($result) > 0) && (mysql_num_rows ($result_kunde) > 0))
{
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nickname"] = $data["Nickname"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
$_SESSION["user_modus"] = $data["Modus"];
$_SESSION["user_bankid"] = $kunde["mandanten_id"];
$_SESSION["user_bank"] = $kunde["mandant"];

header ("Location: ./de/pages/users/u_index.php");
}
else
{
header ("Location: u_fehler.php");
}
?>


eingefügt also das ganze bissl ausgeweitet und nun klappt es! *juhu*

Danke für die schnelle Antwort eben .......