Autor | Zpráva | ||
---|---|---|---|
XolyCZ Profil |
Ahoj, potřebuju vytáhnout jména hráčů z databáze podle toho, jestli jsou přihlášení do hry nebo ne. Po vytažení je potřebuju vypsat do tabulky a to nejspíše přes cyklus který bude vypisovat pole do kterého se ty vytažnené jména z databáze uloží. Nevím ale úplně jak to do toho pole uložit, našel jsem tady i jeden starý příspěvek, ale to mi nefunguje, píše to tohle: Uncaught Error: Call to undefined function MySQL_Fetch_Array(). Našel jsem to tady, ikdyž už je to celkem staré: výpis databáze do pole.
No a můj kód vypadá takhle: function registrovani_solo_nick(){ $registrovani_solo_nick_database = Db::queryOne('SELECT Nickname FROM hraci_online WHERE solo_jointed=1'); global $registrovani_solo_nick; while ($solo_nick = MySQL_Fetch_Array($registrovani_solo_nick_database)) $registrovani_solo_nick = array($solo_nick['Nickname']); } Poradí mi někdo prosím? Děkuji moc. |
||
T-fon Profil |
#2 · Zasláno: 13. 7. 2018, 14:17:41
Máš na serveru PHP7, ne? Tam už tahle funkce není, viz. php.net/function.mysql_fetch_array
|
||
XolyCZ Profil |
Mám no. Zkusím se na to ještě nějak podívat.
Něco jsem si o tom přečetl, ale asi jsem to úplně nepochopil. Hlavně nevím, proč to píše tuto chybu:Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, array given in...zdroj souboru mám to teď upravené takhle: function registrovani_solo_nick(){ $registrovani_solo_nick_database = Db::queryOne('SELECT Nickname FROM hraci_online WHERE solo_jointed=1'); global $registrovani_solo_nick; while ($solo_nick = mysqli_fetch_array($registrovani_solo_nick_database, MYSQL_NUM)) $registrovani_solo_nick = array($solo_nick['Nickname']); } |
||
Keeehi Profil |
#4 · Zasláno: 13. 7. 2018, 17:35:29
Tak se podívej pořádně do dokumentace. Funkce rodiny mysql_* měli parametr pro určení připojení do databáze jako nepovinný. Jelikož se většinou používalo jen jedno, nebylo třeba ho zadávat a tak ho uvidíš málo kde. U rodiny mysqli_* už je ale povinný a tak ti tam chybí.
Ale hlavně, ty používáš na práci s databází knihovnu, tak využij ji. Uvnitř interně používá PDO, takže ani kdyby jsi tu mysqli_* funkci měl správně, tak ti to nebude fungovat. A nakonec, zapomeň že slovo global existuje. Ještě jsem neviděl legitimní případ, kdy by bylo potřeba. Předej si to klasicky jako parametr funkce. |
||
Časová prodleva: 5 dní
|
|||
XolyCZ Profil |
#5 · Zasláno: 18. 7. 2018, 13:01:50
Keeehi:
Zkoušel jsem pohledat, ale nefunguje to úplně přesně... Dal jsem dohromady tohle: function registrovani_solo_nick(){ $spojeni = mysqli_connect('...'); if (!$spojeni) die('Spojení s MySQL databází se nezdařilo.'); mysqli_set_charset($spojeni,"utf8"); $registrovani_solo_nick_database = mysqli_query($spojeni, 'SELECT Nickname FROM hraci_online WHERE solo_jointed=1', MYSQLI_USE_RESULT); while($solo_nick = mysqli_fetch_array($registrovani_solo_nick_database, MYSQLI_BOTH)) { $registrovani_solo_nick = array($solo_nick['Nickname']); } return $registrovani_solo_nick; mysqli_close($spojeni); } Když chci vypsat to pole registrovani_solo_nick, vypíše mi to vždycky první prvek v poli, který má ale zároveň poslední pořadí při čtení z databáze. Jakože je třeba 10. z 10ti a v poli je na prvku 0. Nic jiného se do toho nezapíše. Potom to pole už doufám vypisuju a předávám dobře. <?php $registrovani_solo = registrovani_solo_nick(); ?> <?php for($i=0;$i<$_SESSION['solo_max'];$i++){ echo("<tr> <td>#"); echo($i+1); echo("</td> <td>"); echo ($registrovani_solo[$i]); echo("</td> </tr>"); } ?> |
||
T-fon Profil |
#6 · Zasláno: 18. 7. 2018, 14:13:07
Zkus toto:
$registrovani_solo_nick[] = $solo_nick['Nickname']; |
||
XolyCZ Profil |
#7 · Zasláno: 18. 7. 2018, 15:35:08
T-fon:
Jo tohle funguje. Můžu se zeptat ale proč? Pořád je to pole ne? |
||
juriad Profil |
$registrovani_solo_nick = array($solo_nick['Nickname']); $registrovani_solo_nick[] = $solo_nick['Nickname']; |
||
XolyCZ Profil |
#9 · Zasláno: 18. 7. 2018, 15:58:21
juriad:
Jo tak, už to chápu. Díky moc :) |
||
Časová prodleva: 6 let
|
0