$_GET[] returns php 编辑页面中的零
$_GET[] returns zero in editing page in php
我正在编辑数据库记录,方法是在 auditplan.php
页面中按“编辑”按钮,然后通过发送选定的记录 ID 重定向到编辑页面 (auditplanedit.php
),如下所示:
<td>
<a href="auditplanedit.php?cid=<?php echo $row["id"]; ?>"><i class="ion ion-edit"></i></a>
<a href="deleteauditplan.php?cid=<?php echo $row["id"]; ?>" onclick="return confirm('Are you sure?')"><i class="ion ion-close"></i></a>
</td>
首先,我使用 SELECT 语句将所有数据放入控件中,编辑后,为了更新,我使用 [=22= 将编辑后的数据保存到数据库中]UPDATE 声明,这里我使用 'id' ,我使用 $_GET['id']
从 auditplan.php
获得。
对于 SELECT 语句,这些 id returns 正确选择了值,但在更新期间它显示为零。
<?php
include("config.php");
include("header.php");
try {
$sql = "SELECT * FROM auditplan WHERE id = :cid";
$stmt = $DB->prepare($sql);
$stmt->bindValue(":cid",intval($_GET['cid']));
$stmt->execute();
$results = $stmt->fetchAll();
} catch (Exception $ex) {
echo $ex->getMessage();
}
?>
<div class="col-md-10 main">
<h1 class="page-header">
Audit Plan Edit
</h1>
<form class="form-horizontal" role="form" action="auditplanedit.php" method="POST">
<div class="form-group">
<label class="control-label col-sm-2" for="usr">Audit ID:</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="auditid" name ="auditid" value="<?php echo $results[0]["auditid"] ?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="pwd">Year:</label>
<div class="col-sm-5">
<input type="text" class="form-control col-xs-3" id="year" name ="year" value="<?php echo $results[0]["year"] ?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="usr">Month:</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="month" name ="month" value="<?php echo $results[0]["month"] ?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 " for="sel1">Status:</label>
<div class="col-sm-5">
<select class="form-control" id="sel1" name="status">
<option>Planned</option>
<option>Scheduled</option>
<option>Completed</option>
<option>Cancelled</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="comment">Comment:</label>
<div class="col-sm-5">
<textarea class="form-control" rows="3" id="comment" name="comment" value="<?php echo $results[0]["comment"] ?>"></textarea>
</div>
</div>
<div class="form-group">
<div class=" col-sm-offset-3">
<button type="submit" name="submit" id ="submit" class="btn btn-primary">Update</button>
<button type="submit" name="submit1" id ="clear" class="btn btn-primary">Cancel</button>
</div>
</div>
</form>
</div>
<?php
if(isset($_POST['submit']))
{
$audit=trim($_REQUEST['auditid']);
$year=trim($_REQUEST['year']);
$month=trim($_REQUEST['month']);
$status =$_REQUEST['status'];
$comment=$_REQUEST['comment'];
$cid = intval($_GET['cid']); ////here it returns zero
$sql = "UPDATE auditplan SET `auditid` = :audit, `year` = :year, `month` = :month, `status` = :status, `comment` = :comment" . "WHERE id = :cid ";
try {
$stmt = $DB->prepare($sql);
$stmt->bindValue(":audit", $audit);
$stmt->bindValue(":year", $year);
$stmt->bindValue(":month", $month);
$stmt->bindValue(":status", $status);
$stmt->bindValue(":comment", $comment);
$stmt->bindValue(":cid", $cid);
$stmt->execute();
$result = $stmt->rowCount();
}
catch (Exception $ex)
{
$_SESSION["errorType"] = "danger";
$_SESSION["errorMsg"] = $ex->getMessage();
}
}
?>
你用双引号(")里面是错误的。请试试下面:
注意:确保您的 $row["id"]
包含正确的值。
第一段代码:
<?php
//Store id into variable...
$getId = $row["id"];
?>
<td>
<a href="auditplanedit.php?cid=<?php echo $getId; ?>"><i class="ion ion-edit"></i></a>
<a href="deleteauditplan.php?cid=<?php echo $getId; ?>" onclick="return confirm('Are you sure?')"><i class="ion ion-close"></i></a>
</td>
第二个代码段:
<?php
include("config.php");
include("header.php");
try {
$sql = "SELECT * FROM auditplan WHERE id = :cid";
$stmt = $DB->prepare($sql);
$stmt->bindValue(":cid",intval($_GET['cid']));
$stmt->execute();
$results = $stmt->fetchAll();
} catch (Exception $ex) {
echo $ex->getMessage();
}
?>
<div class="col-md-10 main">
<h1 class="page-header">
Audit Plan Edit
</h1>
<form class="form-horizontal" role="form" action="auditplanedit.php" method="POST">
<div class="form-group">
<label class="control-label col-sm-2" for="usr">Audit ID:</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="auditid" name ="auditid" value="<?php echo $results[0]['auditid'] ?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="pwd">Year:</label>
<div class="col-sm-5">
<input type="text" class="form-control col-xs-3" id="year" name ="year" value="<?php echo $results[0]['year'] ?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="usr">Month:</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="month" name ="month" value="<?php echo $results[0]['month'] ?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 " for="sel1">Status:</label>
<div class="col-sm-5">
<select class="form-control" id="sel1" name="status">
<option>Planned</option>
<option>Scheduled</option>
<option>Completed</option>
<option>Cancelled</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="comment">Comment:</label>
<div class="col-sm-5">
<textarea class="form-control" rows="3" id="comment" name="comment" value="<?php echo $results[0]['comment'] ?>"></textarea>
</div>
</div>
<div class="form-group">
<div class=" col-sm-offset-3">
<button type="submit" name="submit" id ="submit" class="btn btn-primary">Update</button>
<button type="submit" name="submit1" id ="clear" class="btn btn-primary">Cancel</button>
</div>
</div>
</form>
</div>
<?php
if(isset($_POST['submit']))
{
$audit=trim($_REQUEST['auditid']);
$year=trim($_REQUEST['year']);
$month=trim($_REQUEST['month']);
$status =$_REQUEST['status'];
$comment=$_REQUEST['comment'];
$cid = intval($_GET['cid']); ////here it returns zero
$sql = "UPDATE auditplan SET `auditid` = :audit, `year` = :year, `month` = :month, `status` = :status, `comment` = :comment" . "WHERE id = :cid ";
try {
$stmt = $DB->prepare($sql);
$stmt->bindValue(":audit", $audit);
$stmt->bindValue(":year", $year);
$stmt->bindValue(":month", $month);
$stmt->bindValue(":status", $status);
$stmt->bindValue(":comment", $comment);
$stmt->bindValue(":cid", $cid);
$stmt->execute();
$result = $stmt->rowCount();
}
catch (Exception $ex)
{
$_SESSION["errorType"] = "danger";
$_SESSION["errorMsg"] = $ex->getMessage();
}
}
?>
首先,您的表单正在使用 POST 方法 method="POST"
但您正在尝试访问 $_GET['cid']
其次,您在名为 cid
的表单中没有输入字段,因此即使您使用 $_POST['cid']
您也不会得到任何东西。
所以首先你需要在你的表单中添加一个名为 cid
的字段,现在我会使用这样的 hidden
字段,这样用户就不会看到它。
<form class="form-horizontal" role="form" action="auditplanedit.php" method="POST">
<input type="hidden" name="cid" value="<?php echo $results[0]['id'] ?>">
<div class="form-group">
<label class="control-label col-sm-2" for="usr">Audit ID:</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="auditid" name ="auditid" value="<?php echo $results[0]['auditid'] ?>">
</div>
</div>
然后在您的更新查询中使用像这样的新值
<?php
if(isset($_POST['submit']))
{
$audit=trim($_REQUEST['auditid']);
$year=trim($_REQUEST['year']);
$month=trim($_REQUEST['month']);
$status =$_REQUEST['status'];
$comment=$_REQUEST['comment'];
//$cid = intval($_GET['cid']); ////here it returns zero
$cid = intval($_POST['cid']); // changed line
我正在编辑数据库记录,方法是在 auditplan.php
页面中按“编辑”按钮,然后通过发送选定的记录 ID 重定向到编辑页面 (auditplanedit.php
),如下所示:
<td>
<a href="auditplanedit.php?cid=<?php echo $row["id"]; ?>"><i class="ion ion-edit"></i></a>
<a href="deleteauditplan.php?cid=<?php echo $row["id"]; ?>" onclick="return confirm('Are you sure?')"><i class="ion ion-close"></i></a>
</td>
首先,我使用 SELECT 语句将所有数据放入控件中,编辑后,为了更新,我使用 [=22= 将编辑后的数据保存到数据库中]UPDATE 声明,这里我使用 'id' ,我使用 $_GET['id']
从 auditplan.php
获得。
对于 SELECT 语句,这些 id returns 正确选择了值,但在更新期间它显示为零。
<?php
include("config.php");
include("header.php");
try {
$sql = "SELECT * FROM auditplan WHERE id = :cid";
$stmt = $DB->prepare($sql);
$stmt->bindValue(":cid",intval($_GET['cid']));
$stmt->execute();
$results = $stmt->fetchAll();
} catch (Exception $ex) {
echo $ex->getMessage();
}
?>
<div class="col-md-10 main">
<h1 class="page-header">
Audit Plan Edit
</h1>
<form class="form-horizontal" role="form" action="auditplanedit.php" method="POST">
<div class="form-group">
<label class="control-label col-sm-2" for="usr">Audit ID:</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="auditid" name ="auditid" value="<?php echo $results[0]["auditid"] ?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="pwd">Year:</label>
<div class="col-sm-5">
<input type="text" class="form-control col-xs-3" id="year" name ="year" value="<?php echo $results[0]["year"] ?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="usr">Month:</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="month" name ="month" value="<?php echo $results[0]["month"] ?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 " for="sel1">Status:</label>
<div class="col-sm-5">
<select class="form-control" id="sel1" name="status">
<option>Planned</option>
<option>Scheduled</option>
<option>Completed</option>
<option>Cancelled</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="comment">Comment:</label>
<div class="col-sm-5">
<textarea class="form-control" rows="3" id="comment" name="comment" value="<?php echo $results[0]["comment"] ?>"></textarea>
</div>
</div>
<div class="form-group">
<div class=" col-sm-offset-3">
<button type="submit" name="submit" id ="submit" class="btn btn-primary">Update</button>
<button type="submit" name="submit1" id ="clear" class="btn btn-primary">Cancel</button>
</div>
</div>
</form>
</div>
<?php
if(isset($_POST['submit']))
{
$audit=trim($_REQUEST['auditid']);
$year=trim($_REQUEST['year']);
$month=trim($_REQUEST['month']);
$status =$_REQUEST['status'];
$comment=$_REQUEST['comment'];
$cid = intval($_GET['cid']); ////here it returns zero
$sql = "UPDATE auditplan SET `auditid` = :audit, `year` = :year, `month` = :month, `status` = :status, `comment` = :comment" . "WHERE id = :cid ";
try {
$stmt = $DB->prepare($sql);
$stmt->bindValue(":audit", $audit);
$stmt->bindValue(":year", $year);
$stmt->bindValue(":month", $month);
$stmt->bindValue(":status", $status);
$stmt->bindValue(":comment", $comment);
$stmt->bindValue(":cid", $cid);
$stmt->execute();
$result = $stmt->rowCount();
}
catch (Exception $ex)
{
$_SESSION["errorType"] = "danger";
$_SESSION["errorMsg"] = $ex->getMessage();
}
}
?>
你用双引号(")里面是错误的。请试试下面:
注意:确保您的 $row["id"]
包含正确的值。
第一段代码:
<?php
//Store id into variable...
$getId = $row["id"];
?>
<td>
<a href="auditplanedit.php?cid=<?php echo $getId; ?>"><i class="ion ion-edit"></i></a>
<a href="deleteauditplan.php?cid=<?php echo $getId; ?>" onclick="return confirm('Are you sure?')"><i class="ion ion-close"></i></a>
</td>
第二个代码段:
<?php
include("config.php");
include("header.php");
try {
$sql = "SELECT * FROM auditplan WHERE id = :cid";
$stmt = $DB->prepare($sql);
$stmt->bindValue(":cid",intval($_GET['cid']));
$stmt->execute();
$results = $stmt->fetchAll();
} catch (Exception $ex) {
echo $ex->getMessage();
}
?>
<div class="col-md-10 main">
<h1 class="page-header">
Audit Plan Edit
</h1>
<form class="form-horizontal" role="form" action="auditplanedit.php" method="POST">
<div class="form-group">
<label class="control-label col-sm-2" for="usr">Audit ID:</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="auditid" name ="auditid" value="<?php echo $results[0]['auditid'] ?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="pwd">Year:</label>
<div class="col-sm-5">
<input type="text" class="form-control col-xs-3" id="year" name ="year" value="<?php echo $results[0]['year'] ?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="usr">Month:</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="month" name ="month" value="<?php echo $results[0]['month'] ?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 " for="sel1">Status:</label>
<div class="col-sm-5">
<select class="form-control" id="sel1" name="status">
<option>Planned</option>
<option>Scheduled</option>
<option>Completed</option>
<option>Cancelled</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="comment">Comment:</label>
<div class="col-sm-5">
<textarea class="form-control" rows="3" id="comment" name="comment" value="<?php echo $results[0]['comment'] ?>"></textarea>
</div>
</div>
<div class="form-group">
<div class=" col-sm-offset-3">
<button type="submit" name="submit" id ="submit" class="btn btn-primary">Update</button>
<button type="submit" name="submit1" id ="clear" class="btn btn-primary">Cancel</button>
</div>
</div>
</form>
</div>
<?php
if(isset($_POST['submit']))
{
$audit=trim($_REQUEST['auditid']);
$year=trim($_REQUEST['year']);
$month=trim($_REQUEST['month']);
$status =$_REQUEST['status'];
$comment=$_REQUEST['comment'];
$cid = intval($_GET['cid']); ////here it returns zero
$sql = "UPDATE auditplan SET `auditid` = :audit, `year` = :year, `month` = :month, `status` = :status, `comment` = :comment" . "WHERE id = :cid ";
try {
$stmt = $DB->prepare($sql);
$stmt->bindValue(":audit", $audit);
$stmt->bindValue(":year", $year);
$stmt->bindValue(":month", $month);
$stmt->bindValue(":status", $status);
$stmt->bindValue(":comment", $comment);
$stmt->bindValue(":cid", $cid);
$stmt->execute();
$result = $stmt->rowCount();
}
catch (Exception $ex)
{
$_SESSION["errorType"] = "danger";
$_SESSION["errorMsg"] = $ex->getMessage();
}
}
?>
首先,您的表单正在使用 POST 方法 method="POST"
但您正在尝试访问 $_GET['cid']
其次,您在名为 cid
的表单中没有输入字段,因此即使您使用 $_POST['cid']
您也不会得到任何东西。
所以首先你需要在你的表单中添加一个名为 cid
的字段,现在我会使用这样的 hidden
字段,这样用户就不会看到它。
<form class="form-horizontal" role="form" action="auditplanedit.php" method="POST">
<input type="hidden" name="cid" value="<?php echo $results[0]['id'] ?>">
<div class="form-group">
<label class="control-label col-sm-2" for="usr">Audit ID:</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="auditid" name ="auditid" value="<?php echo $results[0]['auditid'] ?>">
</div>
</div>
然后在您的更新查询中使用像这样的新值
<?php
if(isset($_POST['submit']))
{
$audit=trim($_REQUEST['auditid']);
$year=trim($_REQUEST['year']);
$month=trim($_REQUEST['month']);
$status =$_REQUEST['status'];
$comment=$_REQUEST['comment'];
//$cid = intval($_GET['cid']); ////here it returns zero
$cid = intval($_POST['cid']); // changed line