Ich entschuldige mich, wenn dies zuvor beantwortet wurde (und würde es sehr schätzen, wenn jemand mich darauf hinweisen könnte), aber wie würde ich in eine viel- zu-viele Join-Tabelle?Codeigniter Einfügen in Viele-zu-Viele Joining Table/Pivot Table
Im Wesentlichen habe ich einen Wettbewerb basierend auf Sportveranstaltungen, und daher haben Sie eine Join-Tabelle, um die contest_id mit der entsprechenden sports_events_id übereinstimmen. Wenn ich einen neuen Wettbewerb erstellen würde, wie würde ich auch gleichzeitig in die Join-Tabellendatenbank einfügen?
Oder müsste ich zuerst den Wettbewerb erstellen, um die contest_id zu erhalten, und dann (und nur dann) alle relevanten sports_events_id in die Beitrittstabelle einfügen?
Ich schätze jede Hilfe und Beratung, die Sie zur Verfügung stellen könnten.
Vielen Dank.
Lösung
Ok, so muss ich jetzt die folgende Lösung in die Verbindungstabelle
-Controller
function add()
{
$this->form_validation->set_rules('contest_name', 'Contest Name', 'required|trim|xss_clean');
if ($this->form_validation->run() == FALSE) {
$data['view_file'] = 'add_contest';
$this->load->module('template');
$this->template->cmslayout($data);
} else {
$data1 = array(
'contest_name' => $this->input->post('contest_name'),
);
$data2 = $this->input->post('game');
if ($this->_transactions_new_contest($data1, $data2)) {
return $query;
}
redirect('/contests/');
}
}
function _transactions_new_contest($data1, $data2) {
$this->load->model('mdl_contests');
$this->mdl_contests->_transactions_new_contest($data1, $data2);
}
Modell
function _transactions_new_contest($data1, $data2){
$this->db->trans_start();
$this->db->insert('contests', $data1);
$contest_id = $this->db->query('SELECT contests.id FROM contests ORDER BY contests.id DESC limit 1');
foreach ($contest_id->result() as $row) {
$contest_result_id = $row->id;
$this->db->query('INSERT INTO contests_has_sports_events (contests_id, sports_events_id) VALUES (' . $contest_result_id . ', ' . $data2 . ')');
}
$this->db->trans_complete();
}
einfügen
Nun ist das Problem, wie schleife ich jetzt die $ data2, wenn ich mehrere sports_events_id oder post ('Spiel') habe?
Noch einmal, wenn Sie mich in die richtige Richtung zeigen könnten, würde es sehr geschätzt werden.
Meinst du eine Pivot-Tabelle nach Join-Tabelle? Wenn Sie dies tun, brauchen Sie in diesem speziellen Fall keine Pivot-Tabelle. Verwenden Sie nur Fremdschlüssel. – Corona
Ja, natürlich. Das hat mich total vermisst. Wäre das einfach wie eine foreach-Schleife, wo jeder eingegebene Eintrag (innerhalb des gleichen Wettbewerbs) eine andere ID und eine andere sports_events_id hätte, aber dieselbe ausländische Constraint-ID? Leistungsmäßig, was wäre mehr zu empfehlen? –