【问题标题】:php/mysql show data from chosen checkboxesphp/mysql 显示来自所选复选框的数据
【发布时间】:2011-01-12 23:09:55
【问题描述】:

我有一张名为FRUIT

的桌子
id  type    daysold
1   banana  5
2   apple   6
3   apple   4
4   peach   2
5   banana  6

我想要的是有 3 个复选框:
香蕉 [ ]
苹果 [ ]
桃子 [ ]
提交

如果我只检查了“香蕉”和“桃子”,mysql 输出应该只显示与这两种类型匹配的行。并且复选框应保持选中状态以突出显示选择的内容。

我可以制作复选框,但仅此而已。我不知道如何正确地从复选框中获取信息,并下到 MYSQL 代码中的 WHERE 参数。尤其是没有选择两种类型。

如果它只是一个带有单个选项的下拉菜单,那么我会将选项添加到 url 并放入 WHERE type='$choice' - 但我正在努力应对多种选择.

我对php和mysql都有点新手,所以我对这个有点迷茫。

【问题讨论】:

    标签: php mysql checkbox where


    【解决方案1】:

    我会做一个这样的表格:

    <form action="processingPage.php" method="post" name="nameHere">
        <input type="checkbox" name="fruit[]" value="Banana" /> Banana<br />
        <input type="checkbox" name="fruit[]" value="Apple" /> Apple<br />
        <input type="checkbox" name="fruit[]" value="Peach" /> Peach<br />
        <input type="submit" value="Submit" /> 
    </form>
    

    在处理Page.php中:

    <?php
    $fruits = array();
    foreach($_POST['fruit'] as $fruit) {
        $fruit = mysql_real_escape_string($fruit);
        $fruits[] = "'{$fruit}'"; 
    }
    
    $sql = "select * from fruit where type in (" . implode(", ", $fruits) . ")";
    //execute query and retrieve results
    ?>
    

    【讨论】:

    • 我会称水果为 $fruit 而不是 $f。 $f 就代码的可读性而言是不好的做法。
    • 您能否编辑您的问题,解释您尝试了什么以及您遇到的确切错误?
    • 好吧,我基本上只是尝试了您的解决方案,但是我没有让它进入新页面,而是将其保留在与框相同的页面上。但是我提交后什么都没有发生。然后我尝试查看它打印的内容: echo ''.$fruits.'';它只是打印“数组” - 在我点击提交之前和之后。 echo ''.$fruit.'';然而打印一个选择的水果(但在 mysql 查询中仍然不起作用,没有任何反应,就像找不到任何匹配项)
    • 尝试在 foreach 循环之后添加 print_r($_POST['fruit']);print_r($fruits); 并查看它给出的输出。另外,打印出 sql 查询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 2019-11-24
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多