2013-05-20 3 views
0

Je peux insérer des données dans la base de données en utilisant CodeIgniter et obtenir également les données de la base de données, mais le problème est que je ne peux pas obtenir les données de date 1-9 (les données sont présentes dans la base de données). Après le 9 du mois, les données sont récupérées avec succès.Le contenu n'est pas visible dans le calendrier CodeIgniter

Controller:

function display($year=null,$month=null){ 
    if (!$year) { 
     $year = date('Y'); 
    } 
    if (!$month) { 
     $month = date('m'); 
    } 

    $this->load->model('Calendar_model'); 

    if ($day = $this->input->post('day')) { 
     $this->Calendar_model->add_calendar_data("$year-$month-$day",$this->input->post('data') 
     ); 
    } 

    $this->load->model('calendar_model'); 
    $data['calendar']=$this->calendar_model->generate($year,$month); 
    $data['viewName']=('Student/s_calendar'); 
    $this->load->view('Student/template',$data); 
} 

Modèle:

function get_cal_data($year,$month){ 
    $query=$this->db->select('date,data')->from('student_calender')->like('date',"$year-$month")->get(); 
    $cal_data=array(); 
    foreach($query->result() as $row){ 
     $cal_data[substr($row->date,8,2)]=$row->data; 
    } 
    return $cal_data; 
} 

Répondre

0

J'ai eu le même problème via zend framework finalement je me suis point que les données de MySQL est dans ce format:

YYYY-MM-DD HH:ii:ss 

Et ma requête était dans ce format:

YYYY-m-d h:i:s 

Cela signifie par exemple que je hade

2013-01-02 13:02:30 

dans la base de données et je cherchais temps entre

2013-1-2 13:2:30 and 2013-1-3 13:2:30 

qui m'a donné des réponses erronées. utilisez vardump et voyez vos valeurs de l'année et du mois!

+0

http://rahatprojects.hostei.com/Main/index.php/Student/Mycal/display visitez ce lien et voir la problem..in réelle du site supérieur i juste testé que les données sont présent sur le db .. –

1

utilisez cette fonction pour vos données de calendrier le codeignitor ne sélectionne que les valeurs supérieures à 9 car il compare les deux caractères de la page html aux deux caractères de jours de votre base de données. Tout nombre inférieur à 10 ne correspond pas car dans votre base de données, il enregistre un jour inférieur à 10 avec un zéro. utiliser cette

function get_calender_data($year,$month) 
{ 

    $query = $this->db->select('date, data')->from('calendar') 
->like('date',"$year-$month",'after')->get(); 

    $cal_data = array(); 

    foreach ($query->result() as $row) { 
     if(substr($row->date,8,1)==0) 
     { 
      $cal_data[substr($row->date,9,1)] = $row->data; 
     } 
     else{ 
     $cal_data[substr($row->date,8,2)] = $row->data; 
     } 
    } 
    return $cal_data; 
} 
Questions connexes