我正在研究数据库应用程序。我在处理php中的表时遇到问题它使用两列作为主键。我已经构建了索引页面和插入页面,它们工作正常,但删除,编辑和详细信息页面给出了麻烦。 这是详细信息页面的html
<div class="span10 offset1">
<div class="row">
<h3>Section Details</h3>
</div>
<div class="form-horizontal" >
<div class="control-group">
<label class="control-label">Act No :</label>
<div class="controls">
<label class="checkbox">
<?php echo $data['ActNo'];?>
</label>
</div>
</div>
<div class="control-group">
<label class="control-label">Section No :</label>
<div class="controls">
<label class="checkbox">
<?php echo $data['SectionNo'];?>
</label>
</div>
</div>
<div class="form-actions">
<a class="btn" href="index.php">Back</a>
</div>
</div>
</div>
</div> <!-- /container -->
这是PHP代码
<?php
require '../../AppData/database.php';
$id = null;
if ( !empty($_GET['ActNo'])) {
$id = $_REQUEST['ActNo'];
}
$sec = null;
if ( !empty($_GET['SectionNo'])) {
$id = $_REQUEST['SectionNo'];
}
if ( null==$id && null==$sec ) {
header("Location: index.php");
} else {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM section where ActNo = ? AND SectionNo= ?";
$q = $pdo->prepare($sql);
$q->execute(array($id, $sec));
$data = $q->fetch(PDO::FETCH_ASSOC);
Database::disconnect();
}
?>
单击索引页面上的详细信息链接时。数据通过url发送。我可以看到两个值都在url中正确发送,但它们不会在下一页中被收集。
我对POST和GET和REQUEST没有太多经验,我认为这就是问题出现的地方。请看看,告诉我有什么问题以及如何解决它。
答案 0 :(得分:0)
好的,我发现了问题。这是修改后的代码。
<?php
require '../../AppData/database.php';
$id=null ;
if ( !empty($_GET['ActNo'])) {
$id = $_REQUEST['ActNo'];
}
$sec=null ;
if ( !empty($_GET['SectionNo'])) {
$sec = $_REQUEST['SectionNo'];
}
if ( null==$id || null==$sec ) {
header("Location: index.php");
} else {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM section where ActNo = ? AND SectionNo= ?";
$q = $pdo->prepare($sql);
$q->execute(array($id, $sec));
$data = $q->fetch(PDO::FETCH_ASSOC);
Database::disconnect();
}
?>
现在有人可以帮我删除模块吗?这是代码..
要求&#39; ../../ AppData / database.php&#39 ;; $ id = 0;
if ( !empty($_GET['ActNo'])) {
$id = $_REQUEST['ActNo'];
}
$sec = 0;
if ( !empty($_GET['SectionNo'])) {
$sec = $_REQUEST['SectionNo'];
}
if ( !empty($_POST)) {
// keep track post values
$id = $_POST['ActNo'];
$sec = $_POST['SectionNo'];
// delete data
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "DELETE FROM section WHERE ActNo = ? AND SectionNo = ?";
$q = $pdo->prepare($sql);
$q->execute(array($id, $sec));
Database::disconnect();
header("Location: index.php");
}
?>