PHP zapytanie do bazy z dwóch tabel


(Banix1993pl) #1

Witam jak wykonać zapytanie do bazy z dwóch tabel

<?php
	$id=$_SESSION['username'];
  $result3 = mysql_query("SELECT ownerID, charname, level FROM characters LEFT JOIN accounts ON ownerID.characters=accounts.accountID WHERE username=$id");
while($rowtt = mysql_fetch_array($result3))
{   
$charname = $rowtt->charname;

}
?>
<table width="398" border="0" align="center" cellpadding="0">
  <tr>
    <td height="26" colspan="2">Twoje Dane Profilu </td>
  </tr>
  <tr>
    <td width="82" valign="top"><div align="left">Postać:</div></td>
    <td width="165" valign="top"><b><?php echo $charname ?></b></td>
  </tr>
</table>

w pierwszej tabeli o nazwie accounts mam accountID, username

w drugie tabeli o nazwie characters mam ownerID(jest to accountID uzywkonika z tabeli accounts), charname, level, gold, fame

 

i teraz jak wyświetlić postacie które są przypisane zalogowanemu danemu użytkownikowi po id czyli jeżeli ownerID zgadza sie z accountID to wyświetla mi tego użytkownika postacie i dane z tabeli characters

 


(ra-v) #2
<?php
 
$id=$_SESSION['username'];
$result3 = mysql_query("SELECT ownerID, charname, level FROM characters LEFT JOIN accounts ON characters.ownerID=accounts.accountID WHERE username=$id") or die(mysql_error());
?>
 
<table width="398" border="0" align="center" cellpadding="0">
<tr>
<td height="26" colspan="2">Twoje Dane Profilu </td>
</tr>
 
<?php
while($rowtt = mysql_fetch_assoc($result3))
{
$charname = $rowtt['charname'];
?>
<tr>
<td width="82" valign="top"><div align="left">Postać:</div></td>
<td width="165" valign="top"><b><?php echo $charname ?></b></td>
</tr>
<?php
}
?>
 
</table>

 

Miałeś zamienioną tabelę z polę - ownerID.characters.

"or die(mysql_error())" na końcu wyświetli ewentualnie błędy MySQL.

 

Jeśli wykorzystujesz tyko tablice asocjacyjne (czyli $zmienna['klucz']) to lepiej użyć mysql_fetch_assoc().

 

Pętla musi obejmować

...., bo jak rozumiem chcesz wyśweitlić w linii Postać: nazwa / poziom itp.

 

Nie odpowiadam za ewentualne błędy - sam pisze "z łapy" na forum.