2016-03-23 11 views
0

I unter Verwendung von Teilzeichen aber die Ergebnisse Unknown column 'Code' in 'where clause'Haben Sie eine Zeichenfolge mit einem Teil in CodeIgniter

Beispiel meines String RS0002030720160003

eine Reihe von Daten aus der Datenbank zu übernehmen versucht

ich möchte RS0002

Das ist mein Controller

public function report(){ 
    $nomor = $this->input->post('nomor_reseller'); 

    $report_data = $this->hasil_m->get_data($nomor); 
    if ($nomor == "" ) { 
     $this->session->set_flashdata('msg', 
       '<div class="alert alert-danger text-center"> 
       <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> 
       Nomor atau bulan Harus di isi &nbsp;&nbsp;</div>'); 
     redirect('admin/hasil');   
    } elseif ($report_data == NULL ) { 
     $this->session->set_flashdata('msg', 
       '<div class="alert alert-danger text-center"> 
       <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> 
       kosong &nbsp;&nbsp;</div>'); 
     redirect('admin/hasil');   
    } else {    
     $data=array('title'  =>'KOPKAR - Pelanggan', 
        'report_data' => $this->hasil_m->get_data($nomor), 
        'isi'  =>'admin/hasil' 
     );   
     $this->load->view('dashboard/wrapper',$data); 
    }  

} 
erhalten

Diese meine Ansichten

<table class="table table-hover table-striped"> 
     <thead> 
     <tr>  
      <th><div align="center">No</th> 
      <th class="text-center">Produk</th> 
      <th class="text-center">Jumlah Produk Terjual</th> 
      <th class="text-center"></th> 
      <th class="text-center"></th>     
      <th class="text-center">Rp.</th> 
      <th class="text-center">Action</div></th> 
     </tr> 
     </thead> 
     <tbody> 

     <?php 
      $no = 1;    
      foreach ($report_data as $row) {      
      ?> 
      <tr> 
       <td><?php echo $no; ?></td> 
       <td><?php echo $row->id_barcode; ?></td> 
       <td><?php echo $row->jumlah; ?></td> 
       <td class="fontCap text-center"><?php ?></td> 
       <td class="fontCap text-center"><?php ?></td> 
       <td><div align="center"></div></td> 
       <td><div align="center"> 
        <a href="#" title="delete" onclick="return confirm('Anda yakin ingin menghapus produk dengan ID pada database?');" class="btn btn-danger btn-xs"><i class="fa fa-trash-o"></i></a> 
        </div> 
       </td> 
        <?php 
        $no++; 

      } 
       ?> 
      </tr> 
    </table>  

Das ist mein Modul

function get_data($nomor) { 
    $this->db->select('SUBSTRING(id_barcode, 1, 7) as code', false); 
    $this->db->from('tb_pelanggan'); 
    $this->db->where('code',$nomor);  
    $query = $this->db->get(); 
    if ($query->num_rows() > 0) { 
     return $query->result(); 
     } else { 
     return false; 
    } 
} 
+0

sein jede Ausgabe, die Sie konfrontiert sind .. ?? – santosh

Antwort

1

Diese kaum etwas mit PHP oder CodeIgniter Rahmen zu tun hat - das ist genau das, was Sie auf die Datenbank zuzugreifen verwenden, und das Problem ist, auf der Datenbankebene ...

WHERE Bedingungen funktionieren für Spaltennamen, aber nicht für Aliase, die Sie in den Teil SELECT einer Abfrage eingegeben haben. Wenn Sie mit Daten vergleichen möchten, die bereits ausgewählt sind, sollten Sie stattdessen HAVING verwenden.

Ersetzen Sie einfach Ihre where() Anruf mit einem identischen having() eins und es sollte funktionieren.

+0

Ich glaube auch, 'CODE' könnte ein reserviertes MySQL-Wort sein. – MackieeE

+0

ist da irgendwas falsch mit unter antwort ?? – santosh

+0

@MackieEE Es ist nicht. – Narf

0

Versuchen Sie so etwas ..

$this->db->select('SUBSTRING(id_barcode, 1, 7) as code', false); 
    $this->db->where("(SUBSTRING(id_barcode, 1, 7) = '$nomor')"); 
    $this->db->from('tb_pelanggan'); 

    $A=$this->db->get(); 
    $query = $this->db->get(); 
if ($query->num_rows() > 0) { 
    return $query->result(); 
    } else { 
    return false; 
} 

Ihre Anfrage wie diese SELECT SUBSTRING(id_barcode, 1, 5) as code FROM (tb_pelanggan) WHERE SUBSTRING(id_barcode, 1, 5) 'sadsa' ausführt sollte es wie SELECT SUBSTRING(id_barcode, 1, 7) as code FROM (tb_pelanggan) WHERE (SUBSTRING(id_barcode, 1, 7) = 'sadsa')

+0

nett @santosh, kein Fehler, aber ich würde erwarten, dass die Daten nicht auf Ansichten erscheinen, –

+0

könnten Sie etwas mehr erklären .. bitte aktualisieren Sie Ihre Frage. – santosh

+0

'$ data ['report_data'] = $ dies-> hasil_m-> get_data ($ nomor);' möge das das sein wonach du suchst – santosh

Verwandte Themen