Autor | Zpráva | ||
---|---|---|---|
XolyCZ Profil |
#1 · Zasláno: 2. 9. 2018, 09:52:22
Ahoj, potřeboval bych odstranit z mojeho pole, ve kterém jsou vnořené další jedno z těch vnořených polí, ale podle toho co obsahuje. Ukázka toho pole je taková...
Array ( [0] => Array ( [0] => Array ( [Hrac_id] => 35 [Nickname] => XolyCZ ) [1] => Array ( [Hrac_id] => 17 [Nickname] => Klacek ) [2] => Array ( [Hrac_id] => 19 [Nickname] => Adis24 ) ) [1] => Array ( [team_id] => 1 [team_name] => FTW ) ) No a já bych potřeboval odstranit to pole 0 v poli 0. V tomto případě vím přesně které to je, ale potom už to bude náhodné, takže by to muselo být podle id. Našel jsem funkci unset, ale nevím jak udělat, aby to vymazalo vždycky automaticky podle ID ze $_SESSION['player_id']. Ví někdo jak na to? Nebo jestli to jde ošetřit přímo v sql dotazu... Předem díky :) |
||
RastyAmateur Profil |
XolyCZ:
Pokud ta data vybíráš z databáze, tak tam bude asi jednodušší napsat to WHERE id != xx . Jinak to pole projedeš přes foreach a zkontroluješ, jestli daný prvek vyhovuje, případně ho odstraníš (třeba tím unset()em)
$array = array( array( array("id" => 1, "name" => "jedna"), array("id" => 2, "name" => "dvě"), array("id" => 3, "name" => "tři") ), array( "foo" => "bar", "foo2" => "bar2" ) ); $id_to_delete = 3; foreach ($array[0] as $key => $val) { if ($val["id"] == $id_to_delete) { unset($array[0][$key]); break; } } |
||
XolyCZ Profil |
RastyAmateur:
Beru to z databáze no a vidíš, tohle mě nenapadlo.. dal jsem tam druhou podmínku k tomu WHERE a funguje to přesně jak jsem chtěl. Děkují Teď mi tu naskočil ten kód co jsi napsal. Chápu co tím myslíš, ale úprava toho sql příkazu je jednodšší... WHERE team_id =" . $team_parametrs['team_id'] . " AND Hrac_id !=" . $_SESSION['Hrac_id_online'] |
||
RastyAmateur Profil |
#4 · Zasláno: 2. 9. 2018, 17:54:10
Googli mysql injection (doufám, že se to tak jmenuje). Řešením je buď prepared statement, nebo real_escape_string()
|
||
Časová prodleva: 6 let
|
0