JOIN Mysql fehler

PowerCheat

Erfahrenes Mitglied
Hallo,

ich habe ein problem, undzwar habe ich 2 Tabellen, in denen die felder gleich benannt wurden.

so um jetzt konkret zu werden hier der code:
PHP:
<?php
/* daten hier hinein */
$sql = "SELECT `bank_kredit`.*,  `bank_guthaben`.*
FROM bank_kredit AS a, bank_guthaben AS b
WHERE ((a.userid='".$_SESSION["user_id"]."') AND (b.userid='".$_SESSION["user_id"]."'))"; 
$result = mysql_query ($sql); 
if (mysql_num_rows ($result) > 0) 
{ 
  // Benutzerdaten in ein Array auslesen. 
  $data = mysql_fetch_array ($result); 

  // Sessionvariablen erstellen und registrieren 
  $money = $data["a.betrag"]; 
	$cardrivelizenz = $data["drivelizenz"];
	echo $money;
	exit;
	} 
else 
{ 
  header ("Location: index.php?acp=1");
	exit; 
}?>

nur so wie oben läuft es nicht, es kommt folgender fehler:
Code:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/html/worldracer.edu.tc/inc/game/bank.php on line 7

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/worldracer.edu.tc/checkuser.php:15) in /var/www/html/worldracer.edu.tc/inc/game/bank.php on line 20

Leider weiß ich auch nicht wie ich die daten von tabelle 1 und 2 auslesen kann. und bitte Sie um ihre vorzügliche hilfe!
 
Mach doch nach
PHP:
$result = mysql_query ($sql);
mal
PHP:
echo mysql_error();
Dann wird er Dir sagen, wo (ungefähr) der Fehler in Deinem Query ist.
Das kannst Du hier posten.
Die header-Fehlermeldung ist nur ein Folgefehler.
Deine Syntax sieht im übrigen merkwürdig aus, habe ich so noch nicht gesehen. Versuch doch mal
PHP:
$sql = "SELECT * 
FROM bank_kredit, bank_guthaben 
WHERE ((bank_kredit.userid='".$_SESSION["user_id"]."') AND (bank_guthaben.userid='".$_SESSION["user_id"]."'))";

Gruß hpvw
 
also, nun habe ich das problem fast gelöst, keine fehler meldung mehr... jedoch kann ich immer noch nicht die daten übergeben :(

$money = $data["bank_kredit.betrag"];
oder wie muss ich das machen?
 
PHP:
while ($row = mysql_fetch_array($result)) {
    $money = $data["feldnameOhneTabellenname"]; 
    echo $money;
}
Also konkret bei Dir müßte das wohl so aussehen:
PHP:
while ($row = mysql_fetch_array($result)) {
    $money = $data["betrag"]; 
    echo $money;
}
Sollten die Tabellen teilweise gleiche Feldnamen haben (z.b. Tabelle1.irgendeinfeld und Tabelle2.irgendeinfeld) dann müßtest Du Dein SELECT anpassen:
Anstatt
PHP:
SELECT * ...
musst Du die Felder dann explizit angeben:
PHP:
SELECT Tabelle1.irgendeinfeld AS Tabelle1irgendeinfeld, Tabelle2.irgendeinfeld AS Tabelle2irgendeinfeld ...
Ansonsten wird das Feld aus der letzten in FROM angegebenen Tabelle übernommen.

Gruß hpvw
 
Vielen dank ich habe es jetzt anders gemacht nämlich mit zahlen ^^ geht auch aber man weiß halt nicht was was ist aber egal...

danke für eure hilfe!
 
Ich würde Dir trotzdem empfehlen das noch auf ein assoziative Array umzustellen, wenn Du noch mal an den Code ran musst ist es dann wesentlich einfacher.
 
Zurück