Codeigniter en database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dymo Masta

Dymo Masta

24/08/2018 21:00:01
Quote Anchor link
Beste allen,

Ik ben nog een beginner met CI en heb jullie hulp nodig. In een van mijn View pagina's heb ik verschillende Tabs staan en iedere Tab wordt gevuld met gegevens uit verschillende tabellen.

Sommige gegevens worden in een input veld weergegeven en andere weer in een select option. Over verschillende Tabs heb ik ruim 20 verschillende select options (dus gegevens uit ruim 20 verschillende tabellen worden opgehaald).

Tot heden deed ik dat op onderstaand manier gedaan waarbij ik de class aanroep en vervolgens tabelnaam doorgeef:

Quote:
foreach ($cliens_data->fetch_all("tabelnaam") as $aRow):
<option value="'.$aRow["ID"].'" '.$selected.'>'.$aRow["item"].'</option>
endforeach;


Nu heb ik in CI het volgende:

In de Controller (Clients.php) heb ik dit staan:
Quote:
public function load_client_data() {
$client_id = $_POST['id'];

$client_data = $this->user_model->get_client_data($client_id);
$fetch_all = $this->user_model->fetch_all();

$this->template->loadAjax("clients/client_data.php", array(
"client_data" => $client_data,
"fetch_all" => $fetch_all)
);


In de Model (User_model.php) heb ik dit staan:
Quote:
public function fetch_all() {
return $this->db->get();
}


In de View heb ik dit staan:
Quote:
foreach($fetch_all->result() as $o) : ?>
<option value="echo $o->ID " if ($o->ID == $r->ID) echo "selected" > echo $o->item </option>
endforeach;


Het bovenste wat ik in CI heb geeft mij de gewenste resultaat voor één select option veld. Wat ik eerder heb gezegd, ik heb ruim 20 van deze velden. Hoe kan ik verschillende tabelnamen doorgeven zodat ik in de View de juiste gegevens, uit juiste tabel in de juiste select option veld kan weergeven?

Als ik in de View dit verander:
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php foreach($fetch_all[b]("TABEL NAAM")[/b]->result() as $o) : ?>
, dan werkt het niet.

Ik hoop dat iemand mij hiermee kan helpen.
Gewijzigd op 24/08/2018 21:04:08 door Dymo Masta
 
PHP hulp

PHP hulp

22/12/2024 09:44:50
 
Thomas van den Heuvel

Thomas van den Heuvel

24/08/2018 21:55:43
Quote Anchor link
Kun je de model niet een parameter voor tabelnaam meegeven? Zodat je -zover als dat gaat- tabellen op eenzelfde wijze kan aanspreken? Of eventueel een parameter voor tabelnaam, keys en values.
 
Bart V B

Bart V B

25/08/2018 10:08:11
Quote Anchor link
Je vergeet in je model je tabelnaam en je model mee te geven.
Dus je model:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
public function get_all() {

  return $this->db->get('table_name');
}

?>


Je controller:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
public function  load_client_data() {

  $users = $this->model_name->get_all();
  $this->load->view('template_name', $user);
 
}

?>


Je view:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<select name="userlist">
<?php foreach($users->result() as $o) : ?>
  <option value="<?php echo $o->ID;?>"><?php echo $o->item;?></option>
<?php endforeach; ?>
</select>


EDIT
Nu ik koffie op heb zie ik pas je echte probleem.. meerdere tabellen aanspreken.
Dat gaat niet met $this->db->get().
Of je joint de tables, of je moet een query omheen brouwen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query
= $this->db->query("SELECT table1.ID, table2.name FROM table1, table2");
?>

En dan telkens je gewoon opnieuw de foreach aanspreken. Volgens mij moet dat werken.
Rest blijft het zelfde..
Gewijzigd op 25/08/2018 11:02:35 door Bart V B
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.