0
我有什么目前看起来像这样 如何在循环内显示循环中所有行的结果?
我想的是,第名为“ASD”,你也可以选择“家”,这可能是在没有任何其他的选择,但由于某种原因,它不是”不工作。
<table class="table">
<tr>
<td style="width: 60%;">Section name</td>
<td>Edit section</td>
<td>Category</td>
<td>Order</td>
</tr>
<form method="post">
<?php
$query = $handler->query('SELECT * FROM section ORDER BY sorder');
$cquery = $handler->query('SELECT * FROM category');
if($query->rowCount()){
while($fetch = $query->fetch(PDO::FETCH_ASSOC)){
echo'
<tr>
<td><strong>' . $fetch['secname'] . '</strong><br />' . $fetch['secdesc'] . '</td>
<td><a class="btn btn-warning" href="index.php?p=edit&id=' . $fetch['sc_id'] . '"><i class="fa fa-times fa-fw"></i> Edit</a>
<a class="btn btn-danger" href="index.php?p=del&id=' . $fetch['sc_id'] . '"><i class="fa fa-times fa-fw"></i> Delete</a></td>
<td><select name="' . $fetch['c_id'] . '" class="form-control" size="1">
';
while($cfetch = $cquery->fetch(PDO::FETCH_ASSOC)){
echo'<option value="' . $cfetch['c_id'] . '" ' . (($cfetch['c_id'] == $fetch['c_id'])? 'selected' : '') . '>' . $cfetch['categoryname'] . '</option>';
}
echo'
</select></td>
<td><input type="number" class="form-control" name="' . $fetch['sc_id'] . '" value="' . $fetch['sorder'] . '" style="width: 60px;" /></td>
</tr>
';
}
}
else{
echo '<tr><td colspan="4">' . $noResultsDisplay . '</td></tr>';
}
?>
<tr><td colspan="4"><input type="submit" name="section" class="btn btn-primary pull-right" value="Submit" /></td></tr>
</form>
</table>
连同它的SQL:
CREATE TABLE IF NOT EXISTS category(
`c_id` int(10) NOT NULL auto_increment,
`categoryname` varchar(250) NOT NULL,
`corder` int(10) NOT NULL,
PRIMARY KEY `c_id` (`c_id`),
UNIQUE KEY (`categoryname`)
)Engine=InnoDB;
INSERT INTO category (`categoryname`, `corder`) VALUES ('Home', 1);
CREATE TABLE IF NOT EXISTS section(
`sc_id` int(10) NOT NULL auto_increment,
`c_id` int(10) NOT NULL,
`secname` varchar(250) NOT NULL,
`secdesc` varchar(500),
`secimage` varchar(500),
`sorder` int(10) NOT NULL,
PRIMARY KEY `sc_id` (`sc_id`),
UNIQUE KEY (`secname`)
)Engine=InnoDB;
我使用的PDO和$处理器是我的连接点。
我可以看到我在正确的轨道上,但由于某种原因,第二个循环只循环一次,即使它应该循环多次。
发送表格后,我想设置在数据库中的类别,这是我当前的代码:
if(isset($_POST['section'])){
$fetch = $query->fetch(PDO::FETCH_ASSOC);
$category = $_POST['category'];
foreach($_POST as $data => $value){
if($data != 'section'){
$sorder = (int)$value;
if($sorder != $fetch['c_id']){
echo"UPDATE section SET sorder = :sorder, c_id = :cid WHERE sc_id = :id', [':sorder' => $sorder, ':id' => $data, ':cid' => $category]";
//echo perry('UPDATE section SET sorder = :sorder, c_id = :cid WHERE sc_id = :id', [':sorder' => $sorder, ':id' => $data, ':cid' => $category], null);
}
}
}
}
但由于某些原因,我不能得到的选择菜单的选项发送到数据库。
我不明白的问题。 $ _POST数组有什么(print_r($ _ POST))和你期望它有什么? – Stavros
对不起,我发布了一段错误的代码。在我回应查询的地方,我希望它显示正确的信息,我得到了整个数据库部分的工作,这只是为了调试。 – Tom