Erstellen foreach-Schleifen mit Code Igniter-controller und anzeigen
Dies ist eine situation, ich habe mich ein paar mal und ich möchte es klar, bis ein für alle mal.
Besten nur um dir zu zeigen was ich tun muss, einige Beispiel-code.
Mein Controller
function my_controller()
{
$id = $this->uri->segment(3);
$this->db->from('cue_sheets');
$this->db->where('id', $id);
$data['get_cue_sheets'] = $this->db->get();
$this->db->from('clips');
$this->db->where('sheet_id', ' CUE SHEET ID GOES IN HERE ??? ');
$data['get_clips'] = $this->db->get();
$this->load->view('show_sheets_and_clips', $data);
}
Meiner Sicht
<?php if($get_cue_sheets->result_array()) { ?>
<?php foreach($get_cue_sheets->result_array() as $sheetRow): ?>
<h1><?php echo $sheetRow['sheet_name']; ?></h1>
<br/>
<?php if($get_clips->result_array()) { ?>
<ul>
<?php foreach($get_clips->result_array() as $clipRow): ?>
<li><?php echo $clipRow['clip_name']; ?></li>
<?php endforeach; ?>
</ul>
<?php } else { echo 'No Clips Found'; } ?>
<?php endforeach; ?>
<?php } ?>
Also im Grunde bin ich versucht, die Anzeige einer Anzahl von Blättern und dann innerhalb jedes dieser Blätter die clips, die gehören auf das Blatt.
Ich hoffe das macht Sinn für jemanden da draußen.
Dank,
Tim
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen Benutzer auf der Code-Igniter-Foren kam auf die Lösung unten. Der ursprüngliche thread ist hier.
Es ist nicht effizient, um sich die clips für jedes Blatt einzeln. Verwenden einer JOIN-Abfrage zu bekommen, beide Listen gleichzeitig.
Nun in Ihrer Ansicht können Sie eine Schleife durch die Blätter, und innerhalb dieser, eine Schleife über die clips:
Nochmals vielen Dank,
Tim
Sollten Sie eine Verknüpfung in Ihrem Modell für beide Tabellen, und erstellen Sie ein Ergebnis, das Sie bewegen wird später nach Ihrer Ansicht durch den controller.
Denken Sie daran, Sie nicht zu stellen-Abfragen im controller.
vielleicht so etwas wie dieses:
Oder etwas ähnliches.
Dann bringen Sie es an die Steuerung
und schließlich nach Ihrer Ansicht
Hoffe es hilft
Soweit ich weiß, es ist nicht wirklich ein Weg, um die übergabe der Daten an den controller von der view. Ich selbst habe nicht immer das Bedürfnis zu spüren. Dein controller sollte das sammeln der Daten und übergabe an die view. Wenn Sie zusätzliche Daten zu erhalten, die aus Ihrer Datenbank die Ergebnisse, zuerst tun und dann geben Sie auf Ihre anzeigen zusammen mit den original-Daten.
Vielleicht bin ich nicht das Verständnis Ihrer Frage und zwar...
Ich bin nicht voll sicher, dass ich dich verstehen, aber ich denke, Sie wollen Holen Sie sich alle "clips" von allen "Blättern" durch die erste db-Aufruf. Vielleicht kann Folgendes funktionieren: