2014-04-11 68 views
0

使用MVC框架,我做了一些代码,旨在将信息添加到数据库。无法提交到数据库

在index.php文件(意见)

<form method="post" action="<?php echo URL;?>note/updatetopic"> 
    <select> 
    <option value="1">Coasts</option> 
    <option value="2">Energy Demand</option> 
    </select> 
    <input type="submit" name="topic_selection" value="Choose" /> 
</form> 

上面的代码是要发布什么用户想修改信息。

在note.php(控制器)

public function updatetopic() { 

    if (isset($_POST['topic_selection'])) { 
      $note_model = $this->loadModel('Note'); 
      $note_model->updatetopic($_POST['topic_selection']); 
     } 
    header('location: ' . URL . 'note'); 
} 

上述代码是指从在index.php中的代码获取信息,并将它转发到它运行的函数的note_model。

在note_model.php(型号)

public function updatetopic($topic_selection) 
{ 
$topic_selection = strip_tags($topic_selection); 

$sql = "INSERT INTO users (topic_revising) VALUES (:topicselected) WHERE user_id=:user_id"; 
$query = $this->db->prepare($sql); 
$query->execute(array(':topicselected' => $topic_selection, ':user_id' => $_SESSION['user_id'])); 

$count = $query->rowCount(); 
if ($count == 1) { 
    return true; 
} else { 
    $_SESSION["feedback_negative"][] = TOPIC_UPDATE_FAILED; 
} 
// default return 
return false; 
} 

这是为了验证所提交的信息,并将其插入到数据库中,但它输出:

$_SESSION["feedback_negative"][] = TOPIC_UPDATE_FAILED; 

能有人帮我,告诉我什么即时做错了?谢谢。

回答

1

你是不是选择适合您的选择标记的任何名称:

尝试这样的:

<select name="topic"> 
    <option value="1">Coasts</option> 
    <option value="2">Energy Demand</option> 
</select> 

并立即上你的下降的值下拉列表:

if (isset($_POST['topic'])) { 
      $note_model = $this->loadModel('Note'); 
      $note_model->updatetopic($_POST['topic']); 
// $_POST['topic'] == 1 or 2 depends upon selection 
     } 

你可以改变它:

<select name="topic"> 
    <option value="coasts">Coasts</option> 
    <option value="Energy_Demand">Energy Demand</option> 
</select> 

现在日子会把你得选择的列表项的实际价值,可进一步移动....

+0

看到我更新的答案......并且你能告诉我发生了什么问题?你有什么异常?如果是的话那么它张贴更多clarificatons –

+0

现在要把它 - 我会发布一个更新... –

+0

仍然没有工作,表示作为数据库NULL,仍然显示的index.php错误 –

1

为您所标记mysql不支持这种语法的你的SQL查询将不工作:

INSERT INTO users (topic_revising) VALUES (:topicselected) WHERE user_id=:user_id 

基本上没有在MySQL(MySQL Insert Where query

您应该检查重复无论是在选择查询,或者有独特的按键没有WHERE - 使用ON DUPLICATE KEY。也看看链接的主题