簡體   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