2012-07-13 61 views
2

編輯的版本與工作代碼:PHP下拉MySQL的兩個表

表模式:

類別(CATID,catname)

產品(產品ID,CATID,產品名稱)

if(isset($_POST['submit'])); { 

if(isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] > 0) { 
//get the id 
$productid = (int) $_GET['id']; 
} else { 
    echo 'error'; } 

$sql = $link->prepare("SELECT p.productid, p.catid pid, p.productname, c.catid cid, c.catname FROM product p 
JOIN category c 
WHERE p.productid = $productid"); 
$sql-> execute(); 
$result = $sql-> fetchall(PDO::FETCH_ASSOC); 
    $option = ''; 
foreach ($result as $row) { 
    $pid = $row['pid']; 
    $productname = $row['productname']; 
    $catid = $row['cid']; 
    $catname = $row['catname']; 
    $option .= '<option name="'.$catname.'" value="'.$catid.'" '.($pid==$catid ? 'selected="selected"' : '').'>'.$catname.'</option>'."\r\n"; 
} 

那麼在網頁:

<select name="xxx"> 
<? echo $option ?> 
</select> 
+0

什麼不起作用?運行此代碼時是否出現錯誤? – Lion 2012-07-13 03:45:32

+0

你能更具體一些關於什麼不工作?此外,您不需要回車換行(「\ r \ n」)。 – 2012-07-13 03:46:17

+0

當您手動運行該查詢時會發生什麼? – 2012-07-13 04:04:13

回答

1

在你的foreach循環中,你只執行一個查詢而不是迭代結果集數據。如果不是,請解釋你的query()方法。

+0

是啊,有助於有額外的眼睛,我看到現在發生了什麼。編輯我的原始帖子以顯示工作代碼 – dynamo 2012-07-14 01:53:19