Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: korabro 21. 05. 2020, 16:27:05

Název: MySQL a PHP vytvoření pole hodnot
Přispěvatel: korabro 21. 05. 2020, 16:27:05
Pomoci joinu dvou tabulek dostavam vsechny group_id do kterych objekt patri

Kód: [Vybrat]
object_name | object_id | group_id
   test123     |     1        |   20 
   test123     |     1        |   30 
   test123     |     1        |   40 

V php bych potreboval pole pojmenovanych hodnot s vnorenym polem, ktere obsahuje vsechny group_id. Existuje nejaka elegantnejsi cesta nez pomoci while cyklu?
Název: Re:MYSQL+PHP vytvoreni pole hodnot
Přispěvatel: AoK 21. 05. 2020, 18:55:10
array_map? PHP má spousty array funkcí i s ukázkami, mrkni https://www.php.net/manual/en/ref.array.php

Není mi zatím moc jasné co chceš a proč nechceš while.
Název: Re:MySQL a PHP vytvoření pole hodnot
Přispěvatel: BoneFlute 22. 05. 2020, 23:53:19
Obvykle a nejčastěji se použvá foreach. Ale jak říká AoK, není tak docela jasné, o co se snažíš.
Název: Re:MySQL a PHP vytvoření pole hodnot
Přispěvatel: korabro 23. 05. 2020, 10:33:24
Chtel jsem v zaveru dostat pole:

Kód: [Vybrat]
array(
object_name=test.123
object_id=1
group_id=array[20,30,40];
)

ty prvky vnoreneho pole jsem vytvarel pomoci while cyklu a array_push. Zajimalo me jestli je nejaka elegantejsi metoda.




V zaveru to tedy delam takto
Kód: [Vybrat]

// Ze vsech radku vracenych z DB, ziskat vsechny id skupin
$group_id= array_map(function($obj){ $tmpArr=array(); array_push($tmpArr,$obj['group_id']); return $tmpArr; }, $query_result);
// Z radku 0 sestavit zakladni info o objektu a pripojit group_id
$object_info=array("objectName"=> $query_result[0]['object_name'],"objectId"=> $query_result[0]['object_id'],"group_id"=>$group_id);


 

Název: Re:MySQL a PHP vytvoření pole hodnot
Přispěvatel: Kit 23. 05. 2020, 10:50:50
Kód: [Vybrat]
$select = $pdo->prepare("SELECT object_id, object_name, group_id FROM test");
$select->execute();
$info = $select->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP);