it-swarm.com.de

wie lösche ich eine bestimmte Zeile in Codeigniter?

Ich bin neu in Codeigniter. Auf meiner Ansichtsseite zeige ich die Daten aus der Datenbank in einer Tabelle, in der ich zwei Ankertags zum Aktualisieren und Löschen habe. Ich möchte über die ID eine bestimmte Zeile aus der Datenbank löschen.

meine Ansichtsseite ist

 <?php foreach($query as $row){ ?>
 <tr>
 <td><?php echo $row->name  ?></td>
  <td><?php echo $row->testi  ?></td>
  <td><?php echo anchor('textarea/delete_row', 'DELETE', 'id="$row->id"'); ?></td>
  <td><a href="#ajax-modal2" data-id="delete[]" role="button" class="Delete" data-toggle="modal" onClick="confirm_delete()"><i class="icon-trash"></i></a></td>
  </tr>

<?php } ?>
</table>

meine Controller-Seite ist

function delete_row()
{

   $this->load->model('mod1');
   $this->mod1->row_delete();
   redirect($_SERVER['HTTP_REFERER']);  
}

und meine Modellseite ist

 function row_delete()
  {

      $this->db->where('id', $id);
      $this->db->delete('testimonials'); 
  }

Ich möchte die Zeile löschen, indem ich die entsprechende ID fange. Bitte sei nicht hart. Danke dir

11
Abhijit

Sie verwenden eine $id-Variable in Ihrem Modell, aber Sie rupfen sie aus dem Nichts. Sie müssen die Variable $id von Ihrem Controller an Ihr Modell übergeben. 

Regler

Lasst uns die $ id über einen Parameter der row_delete()-Methode an das Modell übergeben.

function delete_row()
{
   $this->load->model('mod1');

   // Pass the $id to the row_delete() method
   $this->mod1->row_delete($id);


   redirect($_SERVER['HTTP_REFERER']);  
}

Modell

Fügen Sie den Parametern der Model-Methoden die $ id hinzu.

function row_delete($id)
{
   $this->db->where('id', $id);
   $this->db->delete('testimonials'); 
}

Das Problem ist jetzt, dass Sie die $id-Variable von Ihrem Controller übergeben, diese aber nirgendwo in Ihrem Controller deklariert ist.

23
Jeemusu

ein einfacher Weg:

in view (übergeben Sie den ID-Wert):

<td><?php echo anchor('textarea/delete_row?id='.$row->id, 'DELETE', 'id="$row->id"'); ?></td>

im Controller (erhalten Sie die ID):

$id = $this->input->get('id');
$this->load->model('mod1');
$this->mod1->row_delete($id);

im Modell (die übergebenen Argumente bekommen):

function row_delete($id){}

Eigentlich sollten Sie mit dem Ajax POST den ID-Wert für den Controller verwenden und die Zeile löschen, nicht den GET.

3
Levin
**multiple delete not working**

function delete_selection() 
{
        $id_array = array();
        $selection = $this->input->post("selection", TRUE);
        $id_array = explode("|", $selection);

        foreach ($id_array as $item):
            if ($item != ''):
                //DELETE ROW
                $this->db->where('entry_id', $item);
                $this->db->delete('helpline_entry');
            endif;
        endforeach;
    }
2
Hemant Randive

Es wird in der URL kommen, so dass Sie es auf zwei Arten bekommen können . Faust eins

<td><?php echo anchor('textarea/delete_row', 'DELETE', 'id="$row->id"'); ?></td>
$id = $this->input->get('id');

2. eins.

$id = $this->uri->segment(3);

Aber in der zweiten Methode müssen Sie das Nein zählen. von Segmenten in der URL, auf denen keine. dein Id kommen 2,3,4 usw. dann müssen Sie bestehen. dann in der ();

1
Waseem shah

Mein Controller  

public function delete_category()   //Created a controller class //
    {      
         $this->load->model('Managecat'); //Load model Managecat here 
         $id=$this->input->get('id');     //  get the requested in a variable
         $sql_del=$this->Managecat->deleteRecord($id); //send the parameter $id in Managecat  there I have created a function name deleteRecord

         if($sql_del){

               $data['success'] = "Category Have been deleted Successfully!!";  //success message goes here 

         }

    }

Mein Modell  

public function deleteRecord($id) {

    $this->db->where('cat_id', $id);
    $del=$this->db->delete('category');   
    return $del;

}
1