Der Tabellenname ist "evaluation
" mit Spalte player_id
, player_eval
und eval_date
.
Ich werte Spieler sagen wir jeden Tag, wenn ich also den bestimmten Spieler auswerte, werden die Daten in der Datenbank gespeichert. Wenn ich denselben Player am selben Tag speichern möchte, werden die Daten nicht mit player_id und eval_date eingefügt.
Irgendeine Idee, wie man es macht? Danke
PS: player_id ist kein Primärschlüssel, also kann ich den Spieler in die gleiche Tabelle mit der gleichen ID in anderem Datum einfügen.Wie verhindert man das Einfügen, wenn ID und Datum bereits in der Datenbank vorhanden sind?
public function update() {
$players = array();
foreach ($this->input->post('checkbox') as $checkbox) {
list($value, $player_id) = explode('::', $checkbox);
self::update_player($players, $player_id, 'player_att1', $value);
}
foreach ($this->input->post('checkbox2') as $checkbox) {
list($value, $player_id) = explode('::', $checkbox);
self::update_player($players, $player_id, 'player_att2', $value);
}
foreach ($this->input->post('checkbox3') as $checkbox) {
list($value, $player_id) = explode('::', $checkbox);
self::update_player($players, $player_id, 'player_att3', $value);
}
foreach ($this->input->post('checkbox4') as $checkbox) {
list($value, $player_id) = explode('::', $checkbox);
self::update_player($players, $player_id, 'player_att4', $value);
}
$this->load->model('Evaluation_model');
foreach ($players as $player_id => $data) {
$this->Evaluation_model->editview($player_id, $data);
}
redirect(base_url('Evaluations/evaluate'));
}
static function update_player(&$players, $id, $property, $value) {
if (!isset($players[$id])) {
$players[$id] = array(
'player_id' => $id,
'player_att1' => 0,
'player_att2' => 0,
'player_att3' => 0,
'player_att4' => 0,
'player_atotal' => 0
);
}
$players[$id][$property] = $value;
$players[$id]['player_atotal'] += $value;
}
Wie kann ich dies ausführen? "$ playerAlreadyExistsCount = $ this-> db" startet gerade. – Kate
Sie müssen den obigen Code in Ihr Codeigniter-Modell einfügen. Hier habe ich eine Verkettung gemacht, die auch in einer Zeile geschrieben werden kann als $ this-> db-> where() -> where() -> count_all ('table_name'); Wenn Sie verketten, wird es viel einfacher. –