Autor Zpráva
typekcz
Profil
Dělám ban list pro náš server. Server bany zapisuje do MYSQL do tabulky player_ban tam je ale není jméno hráče ale ID hráče, IDčka přiřazené k jménům jsou v další tabulce player a já potřebuju vydolovat to jméno podle toho ID, toto je kód:
<?PHP
mysql_connect("1.2.3.4", "user", "pass") or die("Nelze se připojit k MySQL: " . mysql_error());
mysql_select_db("db") or die("Nelze vybrat databázi: ". mysql_error());  
$result = mysql_query("SELECT player_id, admin, reason, until FROM player_ban"); //player_id je to IDčko
    while ($vysledek=MySQL_Fetch_Array($result)):  //toto má vypsat všechny bany
        $jmeno = mysql_query("SELECT player FROM player WHERE player_id=".$vysledek["player_id"]);  //tady asi někde bude ta chyba tady hledám jméno hráče podle ID
        echo $vysledek["player_id"]." - ".$jmeno["player"]." - ".$vysledek["admin"]." - ".$vysledek["reason"]; //a tady to vypisuju...
    endwhile;
?>
vždycky dostanu jen toto: 73 - - Console - zkouska
nemůžu přijít na to kde je chyba, prosím poraďte
PS. je to poprvé co se v php napojuju na mysql takže jsem ještě lama
Kajman
Profil
V proměnné jmeno máte indetifikátor výsledku, udělejte si také např. mysql_fetch_array, ať máte konkrétní data.

Jinak se to takhle nedělá. Lepší je udělat jediný dotaz, ve kterém si díky join jméno z druhé tabulky připojíte.
juriad
Profil
můžeš to udělat jediným dotazem:
SELECT p.player, b.admin, b.reason, b.until FROM player_ban b, player p WHERE p.player_id = b.player_id
když znáš řešení, zkus si zjistit, proč to funguje
ekvivalentních zápisů je hodně, toto je jeden z nich
typekcz
Profil
už to sice jede ale moc chytrý z toho nejsem :D nechápu proč nefungoval ten můj kód, ale už aspoň vím jak to strčit do jednoho dotazu
díky moc
juriad
Profil
typekcz:
Kajman už chybu popsal, proměnná $jmeno obsahuje jen výsledek dotazu (stejně jako proměnná $result), k jednotlivým řádkům výsledku se dostaneš stejně jako na řádku 5

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0