我创建了一个直接提交到数据库示例的数据库示例,其中包含名为validation的数据库中的表。在提交表单后,我检索从数据库提交的数据。我从数据库中检索数据到我创建的页面并将其命名为Receive.php没有任何问题。我创建了一个 Do While Loop ,这样每行数据都会有一个删除按钮和一个编辑按钮。我面临的问题是我的删除按钮似乎没有运行,我也想只使用PhP使其工作,因此不会或应该使用JavaScript或jquery等。我的代码如下:
<?php
Include sql.php //connecting to Database
$query = "SELECT * FROM validation";
mysqli_query ($con , $query);
$result = mysqli_query ($con , $query);
$rows = mysqli_fetch_assoc ($result);
$totals = mysqli_num_rows ($result);
?>
<?php
if (isset($_GET['remove'])){
$id = $_POST['id'];
Include 'Sql.php';
$query1 = "DELETE FROM Validation WHERE ID = '$id' LIMIT 1";
$results = mysqli_query ($con , $query);
}
?>
<?php
$i = "";
do{$i=$i+1; ?>
<tr>
<td><?php echo $i; ?>.</td>
<td><?php echo $rows ['Name']; ?>.</td>
<td><?php echo $rows ['Email']; ?>.</td>
<td><?php echo $rows ['Website']; ?>.</td>
<td><?php echo $rows ['Comment']; ?>.</td>
<td><?php echo $rows ['Time']; ?>.</td>
<td><input type="submit" name="remove" value"Delete"/>
<?php } while ( $rows = mysqli_fetch_assoc($result)) ?>
我还创建了一个隐藏的输入类型,它将ID提交或发布到数据库中,该数据库与数据库的ID相对应。 任何帮助都将非常重要。 将它包含的完整代码发布到第一页是*** index.php * ,这是主表单的位置,另一个是 receive.php 因此,在提交到数据库之后,此页面将从最终用户的数据库中检索数据。**
的index.php
<?php
if (isset($_POST["submit"])){
$id = $_POST['id'];
$name = $_POST["name"];
$email = $_POST["email"];
$website = $_POST["website"];
$comment = $_POST["comment"];
$gender = $_POST["gender"];
$con = mysqli_connect ("localhost", "rupert", "" , "example") or die ("Database connect error");
mysqli_select_db($con, "example") or die ("error connecting to database");
if (!empty($_POST["name"])){
$query = "INSERT INTO validation (ID,Name, Email, Website, Comment)
VALUES(NULL,'$name' , '$email' , '$website' , '$comment')";
mysqli_query($con, $query) ;
} else{
echo " error inserting data";
}
}
$namErr = $emailErr = $websiteErr = $commentErr = $genderErr ="";
if($_SERVER["REQUEST_METHOD"] =="POST") {
if(empty($_POST["name"])){
$namErr = "Name is Required";
}else{
$name = test_input( $_POST["name"]);
}
if(empty($_POST["email"])){
$emailErr = "Email is Required";
}else{
$email = test_input($_POST["email"]);
}
if(empty($_POST["website"])){
$websiteErr = "Website is Required";
}else{
$website = test_input($_POST["website"]);
}
if(empty($_POST["comment"])){
$commentErr = "Comment is Required";
}else{
$comment = test_input($_POST["comment"]);
}
if(empty($_POST["gender"])){
$genderErr = "Gender is Required";
}else{
$gender = test_input($_POST["gender"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<div id="contain">
<form method="post" action="<?php echo htmlentities ($_SERVER["PHP_SELF"]);?>" >
<input type="hidden" name="id" id="id" />
NAME : <input type="text" name="name" id="name">
<span class="error">* <?php echo $namErr ;?></span>
<br><br>
EMAIL : <input type="text" name="email" id="email" >
<span class="error">* <?php echo $emailErr ;?></span>
<br><br>
WEBSITE : <input type="text" name="website" id="website">
<span class="error"> <?php echo $websiteErr ;?></span>
<br><br>
COMMENT : <textarea name="comment" id="comment" rows="5" cols="40"></textarea>
<span class="error"> <?php echo $websiteErr ;?></span>
<br><br>
GENDER :
<select name="gender" id="gender">
<option selected>Please Select</option>
<option value="M">Male</option>
<option value="F">Female</option>
</select>
<span class="error">* <?php echo $genderErr ;?></span>
<br><br>
<input type="submit" name="submit" value="submit" />
<input type="reset" name="reset" value="reset" />
</form>
</div>
RECEIVE.PHP
<?php
include 'sql.php';
$query = "SELECT * FROM validation";
mysqli_query($con , $query);
$result = mysqli_query($con , $query);
$rows = mysqli_fetch_assoc($result);
$tottals = mysqli_num_rows($result);
if (isset($_POST['del'])){
$id = $rows ['ID'];
$query1 = "DELETE FROM validation WHERE ID = '$id' ";
$results = mysqli_query($con , $query1);
}
?>
<div id="css">
<form >
<table width="80%" border="0" cellpadding="2" cellspacing="2" >
<caption><h2>Personal Details of Customers</h2></caption>
<tr class="white">
<td bgcolor="#330033"> </td>
<td bgcolor="#330033"> Full Name </td>
<td bgcolor="#330033"> Email Address </td>
<td bgcolor="#330033"> Website </td>
<td bgcolor="#330033"> Comment </td>
<td bgcolor="#330033"> Time </td>
</tr>
<?php
$i="";
do{$i=$i+1;?>
<tr>
<td bgcolor="#FFFFCC"><?php echo $i;?>.</td>
<td bgcolor="#FFFFCC"><?php echo $rows ['Name']; ?></td>
<td bgcolor="#FFFFCC"><?php echo $rows ['Email'];?></td>
<td bgcolor="#FFFFCC"><?php echo $rows ['Website'];?></td>
<td bgcolor="#FFFFCC"><?php echo $rows ['Comment'];?></td>
<td bgcolor="#FFFFCC"><?php echo $rows ['Time'];?></td>
<td> </td>
<td> <input type="submit" name="del" value="Delete" /> <input type="button" name="edit" value="Edit" /> </td>
</tr>
<?php }while ($rows= mysqli_fetch_assoc($result)) ?>
</table>
</form>
</div>
答案 0 :(得分:0)
我只能假设您已发布部分代码,因为您的提交输入代码周围没有table
或form
标记。
假设您有表单标记,请检查您是否已将form action
属性实际设置为get
。实际意味着通过GET
标题发送您的提交数据将是一件非常糟糕的事情。
如果您忘记将form
标记放入,那么这就是原因。
更新
您正试图从不存在的GET
超级全局中提取。
if(isset($_POST['remove']))
基于整个文件的更新答案
好的,还有一些事情(我已经在代码中添加了带有项目符号的评论,以帮助您了解出错的地方)由于您已经运行了查询以从页面顶部的数据库中获取记录,因此您的循环中不需要$ i ++。您可以依靠mysqli_fetch_assoc
为您完成工作。
您实际上并没有通过表单将任何数据发送到PHP脚本而不是您的登录按钮。我在这里所做的只是使用一个单选按钮,可以选择该单选按钮通知你的脚本你正在谈论的是哪条记录。因为它使用数据库表的实际id
是准确的。
我已经清理了进入查询的$ _POST数据。有更好的方法可以做到这一点,但它会在你现在所做的范围内做。
我也整理了你的代码。确保在工作时始终正确缩进。这样可以更容易地进行调试。学习如何做到这一点是一个优先事项。
我也使用了魔法引号&#39;例如。 &#34;回应表。这样你就可以参考变量名而不必停止。启动你的html。它只是回显了整个批次,并在需要的地方插入变量名称。
我没有测试过这个,所以我可能有一个我无法看到的拼写错误。它已经很晚了,我今天一直盯着电脑看了10个小时,但看起来很接近。
代码
<?php
include 'sql.php';
$query = "SELECT * FROM validation";
mysqli_query($con , $query);
$result = mysqli_query($con , $query);
$tottals = mysqli_num_rows($result);
if (isset($_POST['del'])){
$id = mysqli_real_escape_string($_POST['ID']); // COMMENT number 2 ( I know theyre out of order but it was easier to explain this way around )
$query1 = "DELETE FROM validation WHERE ID = '$id' ";
$results = mysqli_query($con , $query1);
}
?>
<div id="css">
<form >
<table width="80%" border="0" cellpadding="2" cellspacing="2" >
<caption><h2>Personal Details of Customers</h2></caption>
<tr class="white">
<td bgcolor="#330033"> </td>
<td bgcolor="#330033"> Full Name </td>
<td bgcolor="#330033"> Email Address </td>
<td bgcolor="#330033"> Website </td>
<td bgcolor="#330033"> Comment </td>
<td bgcolor="#330033"> Time </td>
</tr>
<?php
while ($rows= mysqli_fetch_assoc($result)) // COMMENT number 1
{
// COMMENT 5 - start of insert table row
echo "
<tr>
<td bgcolor='#FFFFCC'><input type='radio' name='ID' value='$rows[ID]'/></td> <!-- COMMENT number 3 -->
<td bgcolor='#FFFFCC'>$rows[ID]</td>
<td bgcolor='#FFFFCC'>$rows[Name]</td>
<td bgcolor='#FFFFCC'>$rows[Email]</td>
<td bgcolor='#FFFFCC'>$rows[Website]</td>
<td bgcolor='#FFFFCC'>$rows[Comment]</td>
<td bgcolor='#FFFFCC'>$rows[Time]</td>
<td> </td>
<td> <input type='submit' name='del' value='Delete' /> <input type='button' name='edit' value='Edit' /> </td>
</tr>
```` "; // end of insert table row
}?>
</table>
</form>
</div>