Autor | Zpráva | ||
---|---|---|---|
typekcz Profil |
#1 · Zasláno: 13. 2. 2012, 14:59:48
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; ?> 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 |
#2 · Zasláno: 13. 2. 2012, 15:04:52
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 |
#3 · Zasláno: 13. 2. 2012, 15:15:51
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 ekvivalentních zápisů je hodně, toto je jeden z nich |
||
typekcz Profil |
#4 · Zasláno: 13. 2. 2012, 15:34:18
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 |
#5 · Zasláno: 13. 2. 2012, 15:59:43
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
|
||
Časová prodleva: 12 let
|
0