0

持っているホームページからメッセージを削除しようとしていますが、削除ボタンを押すと、宣言されたフィールドがすべて無効であるというphpエラーメッセージと、データベースエラーが表示されます-不明な列'='メッセージ'' 'where句'。ホームページだけでなく、データベースからもメッセージを削除しようとしています。私はmessagesTable配列のfrom、to、およびmessageフィールドを明確に述べましたが、なぜそれらは無効と言っているのですか?私の関数はと呼ばれdelete($messageTable)ます。

私のモデル:

class Messages extends CI_Model
{

   private $messagesTable = 'messages'; 

   function Messages()
   {
      parent::__construct();
   }


   function addMessage($from, $to, $message)
   {
      $record = array(
        'to' => $to,
        'from' => $from,
        'message' => $message);
      $this->db->insert('messages', $record);   
   }


   function getMessages($user)
   {

      $this->db->select('*');
      $this->db->from('messages');
      //$this->db->where('to', $user);
      $messagesSet = $this->db->get();

      $messages = array ();

      foreach ($messagesSet->result() as $row)
      {
      $messages[] = array('from' => $row->from, 'message' => $row->message);

      } 

      return $messages;
   }


   function delete($messagesTable) {

      $messagesTable = array(
        $from  => 'from',
        $to  => 'to',
        $message => 'message');

          $this->db->select('*')->from('messages')->where($messagesTable);
          $this->db->delete($messagesTable);
    }

}

私の見解:

 <div id="maincontent">
  <div id="primary">     
    <h2> Friends </h2> 
    <ul> 
       <?php foreach ($friends['mutual'] as $name):?>
       <li> 
       <?=anchor("profile/view/$name", $name)?>, (<?=anchor("home/drop/$name", 'drop')?>)
       </li>
        <?php endforeach?>
     </ul>
   <h2> Following </h2> 
    <ul>
      <?php foreach($friends['following'] as $name):?>
        <li>  <?=anchor("profile/view/$name", $name)?>, (<?=anchor("home/drop/$name", 'drop')?>)</li>
      <?php endforeach?>
    </ul>
    <h2> Followers </h2> 
    <ul>
     <?php foreach($friends ['followers'] as $name):?>
        <li>
          <?=anchor("profile/view/$name", $name)?>
        </li>
      <?php endforeach?>
    </ul>
  </div>  
  <div id="secondary">
    <h2> Messages</h2> 
    <ul> 
      <?php foreach($messages as $message):?>
          <li><?=$message['from']?> says...: "<?=$message['message']?>"(<?=anchor("home/delete/{$message['from']}", 'delete')?>)</li>      
         <?php endforeach?>    
    </ul>      
  </div>
</div>

コントローラ:

 class Home extends CI_Controller 
 {
 function Home()
 {
 parent::__construct();
 $this->load->model('messages');
 $this->load->model('friends');
 $this->load->model("profiles");


 }

   function drop($member)
  {
   $username = $this->session->userdata('username');
   $this->friends->deleteFriend($username, $member);
   redirect('home');
  }



   function delete($messagesTable) {

$this->messages->delete($messagesTable);
$this->index();

    }


function index()
{

 $username = $this->session->userdata('username');
 $membername = $this->session->userdata('membername');
 $viewData['membername'] = $membername;
 $viewData['username'] = $username;
 $viewData['following'] = $this->friends->getFollowing($username);
 $viewData['followers'] = $this->friends->getFollowers($username);
 $viewData['messages'] = $this->messages->getMessages($membername);
 $viewData['friends'] = $this->friends->getFriends($username);


 $this->load->view('shared/header');
 $this->load->view('home/hometitle', $viewData);
 $this->load->view('shared/nav');
 $this->load->view('home/homeview', $viewData);
 $this->load->view('shared/footer');
}

  } 
4

1 に答える 1

0

これはいけません

$messagesTable = array(
    $from  => 'from',
    $to  => 'to',
    $message => 'message');

なれ

$messagesTable = array(
    'from'  => $from,
    'to'  => $to,
    'message' => $message);

??

于 2012-12-02T23:09:13.170 に答える