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

时间:2017-06-08 03:24:42

标签: php mysql

我有两张桌子。 注册产品。我想在<select>上列出产品

在此<select>中,我只想显示某些商品项,其中条件是从注册表中读取 ProductID 这是Product表的外键。

如何排除<select>中已存在于其他表中的某些结果?

<?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 个答案:

答案 0 :(得分:1)

第一反应是你需要在这里修改你的SQL查询,而不是PHP循环。喜欢的东西(这是一个快速的第一枪,所以不要在没有测试的情况下相信它)

string input = Serial.readString(); int angle = int(input);

这将排除SELECT * FROM product WHERE ProductID NOT IN (SELECT ProductID from enrollments) ORDER BY ProductID ASCproduct也出现在ProductID表格中的任何行。