| Autor | Zpráva | ||
|---|---|---|---|
| Flek Profil |
#1 · Zasláno: 28. 4. 2012, 07:58:43 · Upravil/a: Flek
Dobrý den,
mám následující dvě tabulky: awards (Tabulka vytvořených ocenění) -> id, name, icon_name u_awards (Tabulka zaznamenávající uživatele kteří ocenění získali) -> id, award_id, user_id, description =================================== Tabulky z databáze vytahuju pomocí DIBI klasickým způsobem. Mám tedy dvě proměnné pojmenované podle tabulek naplněné 'awards' a 'u_awards'. A já teď nemůžu pořádně zkloubit funkci, která mi bude vracet čisté html s obrázkem (tagem img). ====================== Zde je to co jsem napatlal, ale vrací mi to 4 stejné ikonky i když je v databázi u uživatele uložena pouze jedna. function getUserAwards($user_id)
{
return $this->db->select('*')
->from('u_awards')
->where('u_id = %i', $user_id)
->fetch();
}
function getAward()
{
return $this->db->select('*')
->from('awards')
//->where('id = %i', $award_id)
->fetch();
}
function getUsersBadges($user_id)
{
//$badges = array();
$user_awards = $this->getUserAwards($user_id);
$award_data = $this->getAward();
$badges = '';
foreach ($user_awards as $award)
{
$badges.= '<img src="/img/awards/'.$award_data[1]['icon_name'].'">';
}
return $badges;
}Tak jsem to nakonec vyřešil. function getUserAwards($user_id)
{
return $this->db->select('*')
->from('u_awards')
->where('u_id = %i', $user_id)
->fetchAll();
}
function getAward($award_id)
{
return $this->db->select('*')
->from('awards')
->where('id = %i', $award_id)
->fetch();
}
function getUsersBadges($user_id)
{
$users_awards = $this->getUserAwards($user_id);
$data = '';
foreach ($users_awards as $user_award)
{
$award = $this->getAward($user_award['award_id']);
$data.= '<img src="/img/awards/'.$award['icon_name'].'" />';
}
return $data;
} |
||
| Keeehi Profil |
#2 · Zasláno: 29. 4. 2012, 17:51:26
Flek:
Lepší by bylo to spojení uživatel - odznaky nechat udělat už databázi: function getUsersBadges($user_id)
{
$db_data = $this->db->select('*')
->from('u_awards')
->leftJoin('awards')->on('u_awards.award_id = awards.id')
->where('u_awards.user_id = %i', $user_id);
$data = '';
foreach ($db_data as $row)
{
$data.= '<img src="/img/awards/'.$row['icon_name'].'" />';
}
return $data;
}Netestováno. Pravděpodobně bude potřeba správně pojmenovat názvy sloupců a zjistit si, co přesně obsahuje proměnná $row. |
||
|
Časová prodleva: 13 let
|
|||
0