PHP与mysql超链接 有更新按钮 跳转更新,删除后数据表中的数据 怎么做来着?

a.php文件
<?php
$con=mysql_connect("localhost","root","root")or die("无法连接数据库.<br>详细:" . mysql_error());
mysql_select_db("files")or die("无法连接数据表.<br>详细:" . mysql_error());
$sql="select * from students";
$rs=mysql_query($sql);
?>

<table border='1'>
<tr>
<th>ID</th>
<th>Name</th>
<th>Sex</th>
<th>Dept</th>
<th>更新</th>
<th>删除</th>
</tr>

<?php
while($row=mysql_fetch_assoc($rs)){
echo "<tr><td>".$row['ID']."</td>";
echo "<td>".$row['Name']."</td>";
echo "<td>".$row['Sex']."</td>";
echo "<td>".$row['Dept']."</td>";
echo "<td><a href='lochoes-testcd.php?ID=".$row['ID']."&Name=".$row['Name']."&Sex=".$row['Sex']."&Dept=".$row['Dept']."'>更新</a></td>";
echo "<td><a href='lochoes-testcd.php?ID=".$row['ID']."&Name=".$row['Name']."&Sex=".$row['Sex']."&Dept=".$row['Dept']."'>删除</a></td></tr>";
}
?>
</table>

b.php
<?php
$db=mysql_connect("localhost","root","root")or die("链接数据库失败");
mysql_select_db("files")or die("链接数据表库失败");
mysql_query("SET NAMES 'gb2312'");
$sql = "select * from students";
$q=mysql_query($sql);
$rs=mysql_fetch_array($q);

$ID =$_GET['ID'];
$Name =$_GET['Name'];
$Sex =$_GET['Sex'];
$Dept =$_GET['Dept'];
?>

<form name='form1' action='' method='post'>
<input type='hidden' name='ID' value='<?php echo $ID; ?>' />
<input type='text' name='Name' value='<?php echo $Name; ?>' />
<input type='text' name='Sex' value='<?php echo $Sex; ?>' />
<input type='text' name='Dept' value='<?php echo $Dept; ?>' />
<input type='submit' name='submit' value='修改' />
<input type='submit' name='submit' value='删除' />
</form>

</body>
</html>
<?php
echo '<table border="1">';
if(isset($_POST['submit'])){
$ID = $_POST['ID'];
$Name = $_POST['Name'];
$Sex = $_POST['Sex'];
$Dept = $_POST['Dept'];

echo '<tr>';
//print_r($myrow);
echo '<td>'.$ID.'</td>';
echo '<td>'.$Name.'</td>';
echo '<td>'.$Sex.'</td>';
echo '<td>'.$Dept.'</td>';
echo '</tr>';

$sql = "update students set Name='$Name',Sex='$Sex',Dept='$Dept' where ID=$ID";
$sql = "delete from students where Name=$Name,Sex=$Sex,Dept=$Dept";
$rs = mysql_query($sql);
if ($rs) {
/*
echo "修改成功";
}else {
echo "修改失败";
*/
header("Location:lochoes.php");
}
mysql_query($sql);
}
echo '</table>';
?>

删除的功能,你这么写完全错了。我建议删除的代码写在单独的文件。删除文件我暂时命名为:delete.php。
a.php文件里的这句
echo "<td><a href='lochoes-testcd.php?ID=".$row['ID']."&Name=".$row['Name']."&Sex=".$row['Sex']."&Dept=".$row['Dept']."'>删除</a></td></tr>";
修改为 echo "<td><a href='lochoes-testcd.php?ID=".$row['ID'].“' onclick=' return del();'">删除</a></td></tr>";
而且在<head></head>加这么段代码:
<script type='text/javascript'>
function del(){
if(confirm('是否删除?')){
return true;
else
return false;
}
}
</script>
而delete.php文件这么写:
$id = $_GET['ID'];
$db=mysql_connect("localhost","root","root")or die("链接数据库失败");
mysql_select_db("files")or die("链接数据表库失败");
mysql_query("SET NAMES 'gb2312'");
$sql ="delete from students where id='$id'";
mysql_query($sql);追问

那这句话有木有写错? $sql = "delete from students where Name=$Name,Sex=$Sex,Dept=$Dept";

追答

改成这样就没错了。 $sql = "delete from students where Name='$Name' and Sex='$Sex' and Dept='$Dept'";但这句话是要求name,sex,dept都等于对应的值才会成立,才执行。如果只有一个,例如只有name对应的值正确,其他不一致。那就不执行了。一般的判断where语句就一个判断。
还有,我上面说的的删除单独写在一个文件。要是采取我说的那样。那你b.php里面关于删除的代码都要删掉。若不是我的那种写法。

这个就要修改。name属性不能一样。提交会冲突。
而且。在判断时,要写明白是修改还是删除传过来的。然后根据参数去执行修改或删除代码。

追问

两个修改和删除 同时成功执行语句。并保证不冲突。

追答

同时成功?修改又删除?这话听着很奇怪。实在一两句话说不清,百度HI我就可以了。

追问

终于搞出来了。 原来不能同时修改 删除 必须分页。

来自:求助得到的回答
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-29
$sql = "update students set Name='$Name',Sex='$Sex',Dept='$Dept' where ID=$ID";
$sql = "delete from students where Name=$Name,Sex=$Sex,Dept=$Dept";
$rs = mysql_query($sql);
if ($rs) {
/*
echo "修改成功";
}else {
echo "修改失败";
你也会犯这个错误啊!
$sql = "update students set Name='$Name',Sex='$Sex',Dept='$Dept' where ID=$ID";
$sql = "delete from students where Name=$Name,Sex=$Sex,Dept=$Dept";
你连续2次赋值$sql
那你认为$sql最后的值是什么呢?
况且,你的
$sql = "delete from students where Name=$Name,Sex=$Sex,Dept=$Dept";
上面的时候你知道给字段值加单引号,怎么这句就不知道了呢?
而且,删除的话,给一个条件就行了,你给那么多条件做什么哦追问

更新数据又可以删除数据, 两个功能同时实现。求你解下!~

追答

那你也不能连续$sql=于啊
php是解析型语言,代码是从上到下解析的,相同变量,下面的会覆盖上面的
删除的sql语句,个人任务,无需在赋值变量,一般没什么必要了
直接执行
$sql = "update students set Name='$Name',Sex='$Sex',Dept='$Dept' where ID=$ID";
mysql_query("delete from students where Name='$Name' and Sex='$Sex' and Dept='$Dept'");
$rs = mysql_query($sql);
if ($rs) {
例外,要注意,sql语句中的where子语句,多个字段不能使用逗号分开,这样数据库怎么知道你什么意思呢?到底是全部要成立还是个别要成立啊?
一般是应该用 and 或 or进行连接,这个无论在什么语言,操作数据库的sql语句都差不多

追问


.........中间就是上一步一样的。

这个有没有错误?

追答

你这程序够乱的。。。。哎

追问

如何修改? 求解。

第2个回答  2012-05-29
你这个只能删除 数据 不能更新 因为$sql最后的值是删除数据 并且用不了那么多参数啊 一个id就行 它是主键啊
第3个回答  2012-05-29
建议使用PDO吧。又能够防止sql注入,效率还高。追问

PDO 这个我不懂...

php,点击超链接文本,转向实现删除\/修改mysql数据
foreach遍历数据的时候 写上id值,然后delete.php页面执行删除操作。要么你把连数据库的页面包含到 delete.php(不推荐)要么 都写在一个页面,然后switch case 判断操作 接受id 然后执行 删除 这样比较推荐 delete.php页面里 连好数据库 switch($act=$_GET['act']){ case 'del': ...;break;...

php 中 怎么实现点击按钮 然后从MYSQL中删除对应行的数据
假设你的删除按钮是: 这里的id实际代表该行对应的数据库中的ID。(明白的吧?)下面用jquery处理 (document).ready(function(){ (".del_button").each(function(){ (this).click(function(){ var $id = $(this).attr("id");.post('这是你执行删除动作的php文件,如:del_post.php',...

php 中怎么实现点击按钮 然后从MYSQL中删除对应行的数据..希望高手教...
你这我看的不是很懂,不过你要是点击按钮删除指定数据的话可以给该按钮设置个name值,假如使用post传输,你就可以接受到了,然后判断$_POST['send']是否存在,isset($_POST['send']),如果存在执行个$sql来进行删除操作。删除的sql语句你应该会写我就不写了。$result=mysql_query($sql);在执行下进...

如何用PHP写一段删除数据库表中的一条记录?急求啊
\/\/删除是记录是用sql语句,比如 delete from xxx(table) where id=1 删除 id=1的记录 \/\/数据库操作后,手动关闭是好得习惯,不手动关闭,php程序也会最后自动关闭

在phpadmin中如何替换mysql数据库中整个数据库中某个内容?
“Person”表中的原始数据:LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Storgt 67 运行下面的SQL将Person表中LastName字段为”Rasmussen”的FirstName更新为”Nina”:UPDATE Person SET FirstName = 'Nina' WHERE LastName = 'Rasmussen'更新后”Person”表中的数据为:...

php怎么去除mysql数据库中指定表,指定字段的所有A标签?
回答:先查询出来 $rows=select ****** 你要替换的字段 和id 然后更新就是了 foreach($rows as $k=>$v){ 去除a 标签 $str=preg.replace('\/\\>\\><a.+?>A<\\\/a>\/','',$v['更改的字段']); 更新数据库 update table set 你要更改的字段=$str where id='{$v['id']}' }

PHP与MYSQL 的删除数据表语句 :delete from 数据表 where 列名="值...
列名称就是这一竖条值的标题,跟你excel电子表一样,第一行有一个说明的,像姓名、年龄、出生年月,这就是列名。LIMIT 1表示只删除一行,若有多个,默认是从你打开表看到的顺序从上往下删除。

PHP中怎么批量删除数据表中的数据
<?php \/\/先构造SQL语句 $SQL="DELETE FROM a WHERE b='123'";\/\/删除a表中所有b字段值为123的记录 $ALL="DELETE FROM a";\/\/删除a表中所有记录 $ALL2="TRUNCATE a";\/\/删除a表中所有记录,(推荐使用) \/\/使用mysql_query命令执行SQL语句,如: mysql_query($SQL);

PHP怎么写可以清空MYSQL数据库中一个表里面的值!
delete from 表名;truncate table 表名;不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,...

php 中怎么实现点击按钮 然后从MYSQL中删除对应行的数据..希望高手教...
<?php include("conn.php");if(!empty($_POST)){ id = $_POST['id'];sql = "delete from student where id='$id'";query = mysql_query($sql);if($query){ echo "alert('删除成功');history.back();";} } ?>

相似回答