PajurPL
(Banix1993pl)
28 Wrzesień 2014 14:51
#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
(ra-v)
1 Październik 2014 19:36
#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ć <tr>…</tr>, bo jak rozumiem chcesz wyśweitlić w linii Postać: nazwa / poziom itp.
Nie odpowiadam za ewentualne błędy - sam pisze “z łapy” na forum.