2015-10-26 68 views
0

我試圖爲CD集合創建一個搜索表單..我們有3個表格,所有鏈接都是通過ID號碼..但是對於開始我想要兩個表格先工作從不同的表中搜索表格

對於Search.php,我很努力地獲得Desc定義。我已經從這兩個表中定義了ID,但是如何讓ID鏈接到Desc?

+1

由於沒有對用戶提交的數據進行驗證,所以您對該代碼的SQL注入攻擊是一個喋喋不休,它甚至沒有逃脫! – SpacePhoenix

+0

不用擔心,我現在正在學習php課程...我們還沒有開始在PHP的安全部分:) –

回答

1

因爲你沒有選擇的選擇查詢的catDesc這會導致不確定的指數錯誤。重寫你的代碼如下

$sqlCD = "SELECT nmc_cd.CDID, nmc_cd.CDTitle, nmc_cd.CDYear, nmc_cd.CDPrice, nmc_cd.catID, nmc_category.catDesc 
FROM nmc_cd 
JOIN nmc_category on (nmc_cd.catID = nmc_category.catID) 
WHERE nmc_cd.CDTitle = '$pCDTitle' OR nmc_cd.CDYear = '$pCDYear' OR   
nmc_category.catDesc = '$pCDCategory'"; 

將根據需要顯示結果。如果你有任何進一步的錯誤讓我知道。

+0

謝謝..它工作:) –

0

我認爲你正試圖將3張桌子連在一起,你幾乎都有。

您需要將第二個連接添加到描述表中,就像您對類別具有的一樣。然後在你的select語句中添加來自連接表的列。下面的例子,我對你的數據庫和列名作了假設,你需要糾正這些。

SELECT nmc_cd.CDID, nmc_cd.CDTitle, nmc_cd.CDYear, nmc_cd.CDPrice, nmc_cd.catID, nmc_description.description 
FROM nmc_cd 
JOIN nmc_category on (nmc_cd.catID = nmc_category.catID) 
JOIN nmc_description on (nmc_cd.catID = nmc_description.catID) 
WHERE nmc_cd.CDTitle = '$pCDTitle' OR nmc_cd.CDYear = '$pCDYear' OR  
nmc_category.catDesc = '$pCDCategory' 
+0

謝謝,我故意沒有添加到第三個表中,因爲我已經出錯了。所以我認爲最好是一步一步做。只是想確保2張桌子先工作。這裏是它無法找到'catDesc'的錯誤 - >注意:未定義的索引:catDesc在C:\ xampp \ htdocs \ AssignmentPartA \ SearchBy.php上第21行 –