php codeigniter не обновляет переменную до mysql - PullRequest
0 голосов
/ 04 июля 2019

У меня проблема с моим проектом PHP с CodeIgniter.

У меня есть форма, в которой я передаю переменные в базу данных и выполняю запрос UPDATE, изменяя данные в базе данных.

Проблема в том, что, когда я вставляю новые данные, они не выдают ошибку, они показывают мне представление, в котором отображаются данные таблицы, но данные не изменяются.

Может кто-нибудь помочь мне понятьпожалуйста?

МОДЕЛИ Hello_Model.php

function displayrecordsById($id)
 {
 $query=$this->db->query("SELECT * FROM Todolist WHERE id='".$id."'");
 return $query->result();
 }

 function updaterecords($testo,$stato,$id)
 {
     $this->db->query("update Todolist SET testo='$testo',stato='$stato' WHERE id='".$id."'");

 } 

Просмотры update_records.php

<html>
<head>
<title>Registration form</title>
</head>

<body>
 <?php
  //$i=1;
  foreach($data as $row)
  {
  ?>
    <form method="post">
        <table width="600" border="1" cellspacing="5" cellpadding="5">
  <tr>
    <td width="230">Id </td>
    <td width="329"><input type="text" name="id" value="<?php echo $row->id; ?>"/></td>
  </tr>
  <tr>
    <td>Testo </td>
    <td><input type="text" name="testo" value="<?php echo $row->testo; ?>"/></td>
  </tr>
  <tr>
    <td>Stato</td>
    <td><input type='text' name='stato' value= "<?php echo $row->stato; ?> "/></td>
  </tr>
  <tr>
    <td colspan="2" align="center">
    <input type="submit" name="update" value="Update Records"/></td>
  </tr>
</table>
    </form>
    <?php } ?>
</body>
</html>
</html>

Контроллеры Hello.php

public function updatedata()
 {
 $id=$this->input->get('id');
 $result['data']=$this->Hello_Model->displayrecordsById($id);
 $this->load->view('update_records',$result); 

 if($this->input->post('update'))
 {
 $n=$this->input->post('testo');
 $e=$this->input->post('stato');
 $this->Hello_Model->updaterecords($id,$n,$e);
 redirect("http://simone.fabriziolerose.it/index.php/Hello/dispdata");
        echo "Success!";

 }
 }

Я взял код из этого учебника

1 Ответ

0 голосов
/ 04 июля 2019

Я думаю, что проблема в вызове функции проверки модели:

измените это:

$this->Hello_Model->updaterecords($id,$n,$e);

На

 $this->Hello_Model->updaterecords($n,$e,$id);

, и вы измените свой пользовательский запрос на запрос CI, например::

Для обновления

$this->db->where("id",$id);
$this->db->update("Todolist",array("testo"=>$testo,"stato"=>$stato));

Для выбора:

$this->db->where("id",$id);
$query=$this->db->get("Todolist");
$row=$query->row();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...