【问题标题】:How to checkbox in table displaying one query result based on other query result?如何在表格中根据其他查询结果显示一个查询结果的复选框?
【发布时间】:2017-11-15 05:25:33
【问题描述】:

我有两个 SQL 查询,一个查询一个 DB 表中的所有包,一个查询分配表并应输出与查询中的公司 ID 匹配的所有包 ID,例如:

$result = mysqli_query($conn,"SELECT * FROM pkgs");
$curPkgs = mysqli_query($conn,"SELECT pid FROM assignments where subdom = '".$curCompany."'");

然后它将包输出到 HTML 表中,我想要的是,如果此包 ID 存在于第二个查询中,以便在表中选中复选框。

我所拥有的是

$currow = mysqli_fetch_array($curPkgs);


while($row=mysqli_fetch_array($result))
{
    $disLine = $row['id'];

    if(in_array($disLine,$currow)){
            $yas = "checked";
    } else {
            $yas = "not";
    }

       echo "<tr>";

    if($yas = "checked"){
            echo "<td align=\"center\" bgcolor=\"#FFFFFF\"><input name=\"checkbox\" type=\"checkbox\" value=\"".$row['id']."\" checked></td>";
    } else {
            echo "<td align=\"center\" bgcolor=\"#FFFFFF\"><input name=\"checkbox\" type=\"checkbox\" value=\"".$row['id']."\"></td>";
    }


    echo "<td bgcolor=\"#FFFFFF\">" . $row['pname'] . "</td>";
    echo "<td bgcolor=\"#FFFFFF\">" . $row['version'] . "</td>";
    echo "<td bgcolor=\"#FFFFFF\">" . $row['rdate'] . "</td>";
    echo "</tr>";
}

echo "</table>";
?>

我得到的行为是所有包都按预期输出到表中,但我认为 $yas 变量保持“选中”状态,因为我得到的是每一行旁边的复选框,而不是仅一行。

【问题讨论】:

  • 另外,如果我在我的 while 语句下为 $disLine 添加一个 var_dump 和一个为 $currow 的 var_dump 我得到: NULL array(1) { ["pid"]=> string(1) " 4" } NULL 数组(1) { ["pid"]=> 字符串(1) "4" } NULL 数组(1) { ["pid"]=> 字符串(1) "4" } NULL 数组(1) { ["pid"]=> 字符串(1) "4" }
  • 查询(选择 pid form assignments...)应该从 assignments 表中返回一个值“4”。请原谅我的无知!

标签: php html mysql html-table


【解决方案1】:

更新

if($yas = "checked")  >> you are missing a equal symbol here

if($yas == "checked")

【讨论】:

    猜你喜欢
    • 2021-09-01
    • 2012-03-03
    • 2018-05-11
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    相关资源
    最近更新 更多