我当前正在使用一个表,该表使用
show columns
查询将所有列回显到复选框中。下面的代码适用于此。我尝试在查询下创建另一个查询来搜索具有相同列的不同表,如果该表中的行有 0 或 1,它将显示一个“选中”框。我使用“显示列”查询的原因是因为总是为项目添加更多列。
/////编辑 发布后,我意识到使用同一个表会更好,因为无论如何“列”代表输出时的所有“复选框”。但同样的问题仍然存在。我正在尝试加倍查询。查询 1 = 提取所有列并创建复选框 查询 2 = 使用与 $newloc 匹配的行,并且如果复选框位于特定列中,则用“选中”框标记出放置的列。我在同一页面上有另一个查询,该查询填充了用户信息,效果很好。此页面用作确认页面,其中包含所有用户信息以及他们拥有的某些项目(复选框),然后他们可以在此页面上进行编辑并根据需要进行提交。我想清楚本页中的所有内容,以防影响这部分。我需要添加的另一件事是,因为我使用同一个表,所以我需要跳过前 3 列,因为这是我不希望作为列的其他数据。
<?php
$conc = new mysqli("127.0.0.1:3306", "root", "", "mydb");
$res= $conc ->query("SHOW COLUMNS from matmemmatrix");
// this part here is what I was imagining would work
$sql = "SELECT * FROM matmemmatrix WHERE memid1 = '$uid' AND memlocid = '$newloc'";
$datam = mysqli_query($conc, $sql);
$a = 1;
$row1 = $datam[$a]; // first column ??
//
echo "<html>";
echo "<body>";
echo "<table>";
$i = 0;
while ($row = $res->fetch_assoc()) {
$id = $row['Field'];
// EDIT : check to see if $id matches $row1
if($id = $row1){
$checked = 1;
}else{
$checked = 0;
}
//
if($i >'5'){
$i=='0';
if($i=='5'){
echo "</tr>";
echo "<tr>";
$i ='0';
;
if ($i =='0' ){
echo "<tr>";
};
echo "<td>";
echo '<input type ="checkbox"
value="'.htmlspecialchars($id).'"
id="'.htmlspecialchars($id).'"
name="'.htmlspecialchars('mat[]').'"
checked= '.$checked.'>
</option>';
echo '<label for ="'.htmlspecialchars($id).'">'.htmlspecialchars($id).'</label>';
echo "</td>";
$i++;
// EDIT Increment next column to see if 0 or 1
$a++;
//
}
echo "</table>";
echo "</body>";
echo "</html>";
?>
我尝试将下面的查询与上面的查询一起使用来获取复选框“已选中”列。但失败了。
$sql = "SELECT * FROM matmemmatrix WHERE memid1 = '$uid' && memlocid = '$newloc'";
我无法从该查询中获得任何结果来处理上述查询。
我尝试单独使用上面的查询来提取所有列以用作复选框,并使用带有 1 或 0 的行数据来标记为已选中但失败。
是否可以从此查询中获取列用作复选框,并使用行数据来显示它是否已选中(1 或 0)?我想确保表中的所有列都显示是否已选中。
<?php
$conc = new mysqli("127.0.0.1:3306", "root", "", "database");
$sqla = "SHOW COLUMNS from matmemmatrix";
$res= mysqli_query($conc, $sqla);
$uid = $_SESSION[ 'uid' ];
$newloc = $_SESSION[ 'newloc'];
$sql = "SELECT * FROM matmemmatrix WHERE memid1 = '$uid' AND memlocid = '$newloc'";
$resu = $conc->query($sql);
$datam = $resu->fetch_assoc();
$a = "0";
echo "<html>";
echo "<body>";
echo "<table>";
$i = 0;
while ($row = $res->fetch_assoc()) {
$id = $row['Field']; //prints column names
$id1 = $rowa['MatName'];
if ($datam[array_keys($datam)[$a]] == "1")
{ $checked = "checked";
}else{
$checked = "";
}
$a++;
if($i >'5'){
$i=='0';
};
if($i=='5'){
echo "</tr>";
echo "<tr>";
$i ='0';
};
if ($i =='0' ){
echo "<tr>";
};
echo "<td>";
echo '<input type ="checkbox" value="'.htmlspecialchars($id).'" id="'.htmlspecialchars($id).'" name="'.htmlspecialchars('mat[]').'" '.$checked.'>
</option>';
echo '<label for ="'.htmlspecialchars($id).'">'.htmlspecialchars($id).'</label>';
echo "</td>";
$i++;
}
echo "</table>";
echo "</body>";
echo "</html>";
$_POST['access_listb'];
?>