2011-09-21 142 views
1

我完全难住了。我在我的数据库中建立了两个表格,一个叫做主题,一个叫做页面。我给我的数据库中的一个subject_id页面连接到主题。我已经动态地显示了一个包含主题和子页面的导航栏。我还创建了一些删除主题,编辑主题和编辑页面的php文件。我现在在每个主题上添加了一个链接,这样当你点击主题时,它会将你带到一个页面,希望能够在所选的父主题下添加一个新页面。还值得注意的是,我在链接中添加父主题ID以添加页面。 下面是代码的一部分,我相信以某种方式给我的问题:如何将相关行插入到mysql数据库中?

if(empty($errors)){ 
$id = mysql_prep($_GET['subj']); 
$menu_name = mysql_prep($_POST['menu_name']); 
$position = mysql_prep($_POST['position']); 
$visible = mysql_prep($_POST['visible']); 
$content = mysql_prep($_POST['content']); 

$subject = get_subject_by_id($id));//This fetches the subject id from the db 

$query = "INSERT INTO 
pages WHERE subject_id = $subject 
(
menu_name, position, visible, content 
) VALUES (
'{$menu_name}', {$position}, {$visible}, '{$content}' 
)"; 
$result = mysql_query($query, $db_connect);  
if (mysql_affected_rows() == 1){ 

echo "<p>suceess</p>"; 
} else { .... 

我知道这是断章取义的,但我以为有人可能有一些运气通过发现问题。如果有人对此有任何见解,我将不胜感激。

+0

'mysql_prep()'做了什么? – NullUserException

+1

如果你明确解释你有什么问题,这将有所帮助。什么特别是不工作,它应该如何工作? –

+0

斯科特,你得到什么错误? – Jonah

回答

0

在插入语句中不能有where子句。

如果没有where子句,表格将获取插入的行。如果您试图更新现有的行,这将证明where子句,那么您需要使用更新语句。

+0

@NullUserException - mysql_prep()负责报价。 我试图插入一个页面表格行与主题表格行有关。我有主题编号工作,我只是无法弄清楚如何连接新页面到页面上的父主题插入。 – Scott

0

正确INSERT语法是:

INSERT INTO pages (subject_id, menu_name, position, visible, content) VALUES (?,?,?,?,?) 
当然

,绑定相应的参数,不要使用字符串插值

+0

正确的,我试过,并得到它插入,但我似乎无法得到它插入页码相关。例如,我希望在插入 – Scott

+0

时页面的subject_id等于主题ID,这就是为什么您必须添加'subject_id'作为参数之一。 – Javier

+0

那简单,难以置信。非常感谢,这就是诀窍。 – Scott