2011-09-21 101 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