繁体   English   中英

检索多个复选框并在表中显示数据库中的其他相关信息

[英]Retrieve multiple checkbox and display other related information from database in a table

我得到了从数据库打印出来的复选框列表。 如果用户使用多个复选框并将其显示在表中,我能够从数据库中检索数据,但我无法从数据库中检索其他信息并将其显示在同一个表中。

这是我的代码:

<table border='1'>

<tr>
<th>TITLE</th>
<th>PERCENTAGE RESULT</th>
</tr>

<?php 

if(isset ($_POST["submit1"]))
{
    $selectedcheckbox = $_POST["selectedcheck"];

    $query = "SELECT * FROM compareresult where subject=$selectedcheckbox";
   $sql_query = mysql_query($query) or die('Error 3 :'.mysql_error());
    while($data = mysql_fetch_array($sql_query,MYSQL_ASSOC)){

      $result=$data['result'];
    }

    foreach($selectedcheckbox as $title)
    {

       echo "<tr>";
        echo "<td>".$title."</td>";
       echo "<td>".$result."</td>";
    }           
        echo "</tr>";

}
?>

我想在用户选择多个复选框后显示结果,所以我写道:

 echo $result in table

这样结果可以显示在所选标题旁边的表格中,但是我收到一个错误:

第31行的C:\\ xampp \\ htdocs \\ sam \\ c.php中的数组到字符串转换错误3:'where子句'中的未知列'Array'

我现在不是在环境中测试你的问题,而是我从头脑中做到这一点,但尝试类似下面的事情。

if(isset($_POST['submit1'])){
    $checkbox = isset($_POST['selectedcheck']) ? $_POST['selectedcheck'] : array();
    foreach($checkbox as $title){

        $query = "SELECT * FROM compareresult where subject='".$title."'";
        $result=mysql_query($query);  // <-- to avoid SQL injections, please change your method from mysql_query to mysqli_query (use the mysqli functions instead of mysql) 
        while($data = mysql_fetch_array($result)){
             $result=$data['result'];

             echo "<tr>";
             echo "<td>".$title."</td>";
             echo "<td>".$result."</td>";
             echo "</tr>
             }
        } 
   }

它首先检查您的复选框是否已选中,是否将它们放入数组中。 然后它运行foreach语句,它将复选框值设置为标题。 如果查询标题是否在数据库中,它会在那里运行,如果是,则通过while循环将其吐出。 冲洗并重复直至完成。

编辑

我看到你把你开放的tablerow声明放在foreach中但是在外面关闭它。 所以要么你想要将它们全部印在一行上,要么是错误的? 如果它在一行上,请确保在while循环之前打开表行并在结束之后结束它,否则就像我吐出它一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM