2

作業コードを含む編集済みバージョン:

テーブル スキーマ:

カテゴリ (catid、catname)

製品 (productid、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>
4

1 に答える 1

1

foreachループでは、結果セットデータを反復処理せずにクエリのみを実行しています。そうでない場合は、query()メソッドについて説明してください。

于 2012-07-13T04:16:55.840 に答える