1

我有一个带有复选框的表单。每个复选框都分配有一个从 1 到 10 的值。这些值对应于服务名称表中的一个 ID。这是表单复选框标记:

<input type="checkbox" name="serv[]" id="janitorial" value=1><label for="janitorial" class="radCheck">Full Service Janitorial</label>
<input type="checkbox" name="serv[]" id="strip" value=6><label for="strip" class="radCheck">Stripping & Waxing</label></br>
<input type="checkbox" name="serv[]" id="buff" value=2><label for="buff" class="radCheck">Floor Buffing/Burnishing</label>
<input type="checkbox" name="serv[]" id="carp" value=7><label for="carp" class="radCheck">Carpet & Upholstery Care</label><br>
<input type="checkbox" name="serv[]" id="tile" value=3><label for="tile" class="radCheck">Tile Cleaning & Restoration</label>
<input type="checkbox" name="serv[]" id="windows" value=8><label for="windows"class="radCheck">Window & Blind Care</label></br>
<input type="checkbox" name="serv[]" id="park" value=4><label for="park" class="radCheck">Parking Lot Care</label>
<input type="checkbox" name="serv[]" id="porter" value=9><label for="porter" class="radCheck">Day Porter</label></br>
<input type="checkbox" name="serv[]" id="snow" value=5><label for="snow" class="radCheck">Snow Removal & Landscape</label>
<input type="checkbox" name="serv[]" id="rest" value=10><label for="rest" class="radCheck">Restroom Services & Supplies</label>

这与所有其他表单数据一起发布并通过电子邮件发送并输入到数据库中。我试图检索从数据库中选择的每个服务的名称,但无法弄清楚如何编写我的查询结果。这是服务查询的代码:

$conn=connect();

            $names = implode(',', $serv);
            $query = "SELECT SERVICE_NAME FROM SERVICES WHERE SERVICE_ID ({$names})";
            $result = mysql_query($query);                

            echo "$query";

这输出:

SELECT SERVICE_NAME FROM SERVICES WHERE SERVICE_ID (1,7,3)

当我提交表格时,我选中了框 1、7 和 3。这一切在我看来都是对的。但是当我尝试通过 fetch_array 或 fetch_row 获取结果时,我得到了错误。我已经尝试了无数的循环和尽可能多的建议,我可以在这里和其他网站上找到。如何编写查询结果?请放轻松,我对 PHP 很陌生,我确信我错过了一些简单的东西。

4

1 回答 1

1

这是不正确的:

SELECT SERVICE_NAME FROM SERVICES WHERE SERVICE_ID IN (1,7,3)
                                                  ^^^^---missing

请注意,您对sql injection attack很开放。享受您的服务器 pwn3d。您似乎还依赖于 register_globals 被启用(除非您在此处未显示的代码中执行操作)。绝对远离此代码,更新您的 PHP 版本,并学习如何编写安全代码。

于 2012-11-30T15:04:19.590 回答