donglou1866 2017-06-07 19:24
浏览 94
已采纳

PHP foreach循环以使用排除某些结果的值填充下拉列表

I have two tables. Enrollment and Product. I want to list Product on a <select>.

Within this <select>, I only want certain Product items to appear, whereby the condition is to read from Enrollment table's ProductID which is a foreign key to Product table.

How does one exclude certain results in a <select> that had already existed in a different table?

<?php
    $sql = 'SELECT * FROM product ORDER BY ProductID ASC';
    $result_select = mysql_query($sql);
    $rows = array();
    while($row = mysql_fetch_array($result_select))
    $rows[] = $row;
    echo "<div class=\"spanstyle\">Add course/product:<select name='add_product'>";
    echo "<option selected>Choose here</option>";
    foreach ($rows as $row) {
        echo "<option value='" . $row['ProductID']."'>" . $row['ProductName']."</option>";
    }
    echo "</select></div>";
    $select1 = $_POST['add_product'];
    if (!strpos($select1, 'Choose here')) {
        $sql3="INSERT into enrollment (StudentID, ProductID) VALUES ($StudentID, $select1)";
        mysql_query($sql3);
        }
?>
  • 写回答

1条回答 默认 最新

  • doucong8553 2017-06-07 19:30
    关注

    First reaction is that you need to modify your SQL query here, not the PHP loop. Something like (and this is a quick first shot so don't trust it without testing)

    SELECT * FROM product WHERE ProductID NOT IN (SELECT ProductID from enrollments) ORDER BY ProductID ASC

    This would exclude any row in product whose ProductID also appears in the enrollments table.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部