W telegraficznym skrócie: baza danych zwraca dziwne wyniki, nie zwraca ich wcale lub zwraca z opóźnieniem. Np po dodaniu jakiegoś wiersza i redirectie na stronę z wyświetlaniem danej bazy, dodany wiersz się nie pojawia. Po kilku odświeżeniach nagle się pojawia. Jak skasuję , to też czasem znika, czasem nie znika i dopiero po jakimś czasie znika (np. przejdę na inną zakładkę, wrócę na tą z wyświetlaniem bazy i odświeżę). A czasem nawet znów się pojawia choć jest skasowana.
Do tego dochodzą dziwne wyniki. Np w bazie jest wartość 3 a wyświetla się wartość 2 a w drugiej kolumnie zamiast zapisanego czasu wyświetla się 0000. Odświeżam kilka razy i nagle pojawiają się prawidłowe wartości.
Moje tabele
Kontroler - visits_model jest załadowany w konstruktorze
public function summary(){
$this->load->model('main_model');
$visit_id= $this->uri->segment(3);
$config['visit'] = $this->visits_model->get_visit($visit_id);
$config['client'] = $this->main_model->show_client($config['visit'][0]['visit_client']);
$config['view'] = 'visits/summary';
$this->load->view('templates/content',$config);
}
Model - reszty użytych tu tabel nie będę pokazywał. Nadmienię tylko że zawierają po kilka-kilkanaście wpisów
public function get_visit($visit_id){
$query = $this->db->select('*')->where('visit_id',$visit_id)->join('clients','clients.client_id=visits.visit_client')->join('procedures','procedures.proced_visit=visits.visit_id')->join('offers','offers.offer_id=procedures.proced_offer')->get('visits');
if ($query->num_rows()>0){
return $query->result_array();
}
else{
return FALSE;
}
}
public function show_client($id){
return $this->get_item(array('client_id'=>$id), 'clients');
}
Funkcja get_item (w rodzicu wszystkich modeli - MY_Model)
public function get_item($where,$tab_name){
$query = $this->db->select('*')->where($where)->get($tab_name);
if ($query->num_rows() > 0 ){
return $query->result_array();
}
else {
return FALSE;
}
}
A o to błędne wyniki które się wyświetlają. Czasem przez kilkadziesiąt odświeżeń jest dobrze a później przez dalsze kilkadziesiąt tak jak poniżej (oczywiście w międzyczasie w kodzie nic nie jest grzebane).
Nie wiem czy to wersja bazy jest jeszcze "za młoda" i nie jest jeszcze stabilna (MariaDB 5.5.32-2), czy dlatego że jest 64bit, czy kwestia zapytań. Z programowaniem mam do czynienia od ponad miesiąca i w tym przypadku nie wiem nawet gdzie szukać przyczyny. Testowałem na różnych przeglądarkach i jest tak samo. Czasem na Operze lub Chrome jest dobrze a na Firefoksie źle, czasem na wszystkich jest źle lub dobrze. Restartowałem demona mysqld (korzystam z linuxa Arch) i nic nie pomogło.