需要使用PHP从MySQL数据库中提取数据以读取动态复选框
我正在尝试使用之前创建的动态复选框从mysql表中提取数据,但是我的搜索看起来最多只显示2条记录,如果我选择了3个以上的复选框,它将不会返回任何内容,所以我想知道是否有人能帮我弄清楚如何做 下面是我的代码,非常感谢您的帮助:需要使用PHP从MySQL数据库中提取数据以读取动态复选框,php,mysql,checkbox,dynamic,html-table,Php,Mysql,Checkbox,Dynamic,Html Table,我正在尝试使用之前创建的动态复选框从mysql表中提取数据,但是我的搜索看起来最多只显示2条记录,如果我选择了3个以上的复选框,它将不会返回任何内容,所以我想知道是否有人能帮我弄清楚如何做 下面是我的代码,非常感谢您的帮助: $warehouse = @$_POST['wh']; switch($button){ case 'Submit': if(@$_POST['wh']){ $warehouse = @$_POST['wh']; $length = coun
$warehouse = @$_POST['wh'];
switch($button){
case 'Submit':
if(@$_POST['wh']){
$warehouse = @$_POST['wh'];
$length = count($warehouse);
for ($i = 0; $i < $length; $i++){
//echo '<br>'.$warehouse[$i];
}
$consult = "SELECT * FROM contact_info WHERE ";
for ($i = 0; $i < $length; $i++){
$consult = $consult . "warehouse='$warehouse[$i]'";
if(!$i+1 == $length){
$consult = $consult . " OR ";
}
}
echo '<br>'.$length.'<br>';
print_r ($consult);
$response = mysqli_query($connection, $consult);
if($response){
$registry = mysqli_affected_rows($connection);
if($registry > 1){
echo '<br><table width="800" align="center" border="2" cellspacing="1" cellpadding="1">
<form action="index.php" method="post" >
<tr>
<td align="center"><strong>Warehouse</strong></td>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Lastname</strong></td>
<td align="center"><strong>Phone</strong></td>
<td align="center"><strong>I-net</strong></td>
<td align="center"><strong>E-mail</strong></td>
</tr>';
while($registry = mysqli_fetch_array($response, MYSQLI_ASSOC)){
echo '<form action="index.php" method=post >
<tr>
<td div align="center">'.$registry['warehouse'].'
<td div align="center">'.$registry['name'].'
<td div align="center">'.$registry['lastname'].'
<td div align="center">'.$registry['phone'].'
<td div align="center">'.$registry['inet'].'
<td div align="center">'.$registry['email'].'
</tr>';
}
echo '</form>';
echo '
</form>
</table>';
$warehouse=@$\u POST['wh'];
开关($按钮){
“提交”案例:
如果(@$_POST['wh']){
$warehouse=@$_POST['wh'];
$length=计数($warehouse);
对于($i=0;$i<$length;$i++){
//回显“
”.$warehouse[$i];
}
$consult=“从联系人信息中选择*”;
对于($i=0;$i<$length;$i++){
$consult=$consult.“仓库='$warehouse[$i]'”;
如果(!$i+1==$length){
$consult=$consult.“或”;
}
}
回显“
”.$length.“
”;
印刷(咨询);
$response=mysqli\u查询($connection,$consult);
如果($答复){
$registry=mysqli\u受影响的行($connection);
如果($registry>1){
回声'
仓库
名称
Lastname
电话
I-net
电子邮件
';
而($registry=mysqli\u fetch\u数组($response,mysqli\u ASSOC)){
回声'
“.$registry['warehouse']”
“.$registry['name']”
“.$registry['lastname']”
“.$registry['phone']”
“.$registry['inet']”
“.$registry['email']”
';
}
回声';
回声'
';
永远不要将$\u POST
数据直接放入查询,这非常危险,并且会产生错误。您应该使用准备好的语句和方法将数据添加到查询中。感谢tadman的评论,但这并不能真正帮我解决问题,您是否可以建议如何使用checkb从mysql中提取此数据oxes?部分问题是您使用原始PHP构建应用程序,而没有使用能够无缝处理复选框数据的工具。如果您按照自己的方式,每次都必须重新发明轮子。在您的问题中,我甚至没有看到要评论的
元素。嘿,非常感谢链接到开发框架,我已经阅读了一些很好的信息,对我来说这是全新的(只是自学),相信我,我正在记下你的建议。我可以问一下,你建议我如何使用我的复选框选择从mysql中提取数据吗?同样,我在这方面真的是新手(尝试自学)所以我觉得这个小脚本不会有什么坏处。非常感谢你的帮助。我甚至不知道这个复选框应该放在哪里,或者它是从哪里来的。你在这里所做的是非常不传统的,很难遵循。如果你打算把它放在公共互联网上,它有一些非常严重的问题,这将成为一个巨大的liab可维护性。在烦人的情况下使用框架的约定重新编写它是获得预期结果的最佳方式:一个工作、可维护、不能在两秒钟内被黑客攻击的应用程序。