Welcome Guest, Not a member yet? Register   Sign In
[solved] Why just initial letter from db table (JOIN)
#1

[eluser]Jan_1[/eluser]
Hello together,
I don't understand why I just get initial letters instead of words.
Think I'm doing something wrong with data-Array in the model.
Could someone give me a hint? Thank you!

Screen/OutputSadTable)
WG Strasse / Nummer Plz Ort von bis
2 2 2 2 2 2 2
G G G G G G G
D D D D D D D
2 2 2 2 2 2 2
2 2 2 2 2 2 2
P P P P P P P
R R R R R R R
2 2 2 2 2 2 2
2 2 2 2 2 2 2
2 2 2 2 2 2 2

MySQL-Table 'wg_liste':
id geschoss strasse hsnr plz ort name
1 EG links Alsenstrasse 27 22769 Hamburg WG Alsenstrasse
2 G2 rechts Diesterwegstr 21 25421 Pinneberg Romina&Jan;<br>
MySQL-Table 'wg_member':
id user_id wg_id von bis
2 2 2 2009-03-01 NULL
1 2 1 2008-04-01 2009-02-28

Controller:
Code:
function meine_wg()
    {
        $this->load->model('FreakAuth_light/profil_model');
        $formdata['heading'] = 'Meine Wohngemeinschaften';
        $formdata['page'] = $this->config->item('FAL_template_dir').'template/profil/wg_member_temp';
        $data['wg_membership'] = $this->profil_model->get_wg_membership();
        $this->load->vars($data);
        $this->load->view($this->_container, $formdata);
    }
Model:
Code:
function get_wg_membership()
    {
      $sql = $this->db->query(" SELECT *
                                FROM wg_liste
                                INNER JOIN
                                wg_member ON wg_liste.id=wg_member.wg_id
                                WHERE wg_member.user_id=".$this->db_session->userdata('id')."
                                  ");
      if ($sql->num_rows() > 0)
        {
          $data = $sql->row();
        }
      return $data;
    }
View:
Code:
<table>
          <tr><td></td>
          <td>Wohngemeinschaft</td>
          <td width='10'>&nbsp;</td>
          <td colspan='2'>Strasse / Nummer</td>
          <td width='10'>&nbsp;</td>
          <td>Plz</td>
          <td>Ort</td>
          <td width='10'>&nbsp;</td>
          <td>von</td>
          <td>bis</td>
          </tr>
&lt;?php
  if (isset($wg_membership))
        {foreach($wg_membership as $wg ):?&gt;
          <tr><td></td>
          <td>&lt;?=$wg['name']?&gt;</td>
          <td width='10'>&nbsp;</td>
          <td>&lt;?=$wg['strasse']?&gt;</td>
          <td>&lt;?=$wg['hsnr']?&gt;</td>
          <td width='10'>&nbsp;</td>
          <td>&lt;?=$wg['plz']?&gt;</td>
          <td>&lt;?=$wg['ort']?&gt;</td>
          <td width='10'>&nbsp;</td>
          <td>&lt;?=$wg['von']?&gt;</td>
          <td>&lt;?=$wg['bis']?&gt;</td>
          </tr>
          &lt;?php endforeach;
        }?&gt;
</table>
#2

[eluser]Bogdan Tanase[/eluser]
Hi Jan,

$sql->row() function returns one row object (the first one returned by your query) and it's not an array.

the following code should work better:

Code:
if ($sql->num_rows() > 0)
        {
          $data = $sql->result();
        }

$data will now contain an array of row objects. to access the data in your view use smth like this:

Code:
// foreach stuff
...

<td>&lt;?=$wg->name ?&gt; </td>

...
#3

[eluser]Jan_1[/eluser]
and it works fine. Thank you!




Theme © iAndrew 2016 - Forum software by © MyBB