php - 更新集 &删除问题 - 保存删除记录 [英] php - update set & delete issues - save deleting records

查看:29
本文介绍了php - 更新集 &删除问题 - 保存删除记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个用于编辑现有数据的脚本.fetch 数组用于用数据和查询填充字段,以删除记录和修改记录.当我点击保存时,记录被删除并且没有保存,即使它有正确的 id.

$feedid = mysql_real_escape_string($_POST['feedid']);$Query = "更新 ccregisterfeed SET author='$author', category='$category',版权='$copyright', feeddescription='$feeddescription', feedtitle='$feedtitle',websitelink='$websitelink', imagelink='$imagelink', imagetitle='$imagetitle',字幕='$subtitle' WHERE id='$feedid' AND username='$user'";

输入与 id 配对:

<div class="submit"><input name="Submit" type="submit" class="submitbtn" value="Save"/></div><input type="hidden" name="feedid" value="<?php echo $id; ?>"/>

如果我删除删除输入,点击保存有效.

<div class="delete"><input name="Delete" type="submit" class="deletebtn" value="Delete"/></div><input type="hidden" name="Delete" value="<?php echo $id; ?>">

完整脚本

<!doctype html><头><meta charset="utf-8"><脚本>$(函数(){$(document).click(function(){$('.messagebox').hide();});});<form action="feededit.php" method="post" enctype="multipart/form-data" name="edit" id="editfeed"><字段集><div class="legendcreate">Feed 编辑</div><div class="feedcontainer"><div class="feedcontainerinner"><div><label class="labelshow">Author</label><input id="author" class="insetfeed" name="author" type="text" placeholder="Author" value="<?PHP print $author ; ?>"/><p class="errorinput"><?php echo $authorErr;?></p></div><?php if(isset($_GET['message']) && !empty($message)): ?><div class="messagebox"><?php echo $message ?>

<?php endif;?><div><label class="labelshow">Category</label><input id="category" class="insetfeed" name="category" type="text" placeholder="Category" value="<?PHP 打印 $category; ?>"/><p class="errorinput"><?php echo $categoryErr;?></p></div><div><label class="labelshow">Copyright</label><input id="copyright" class="insetfeed" name="copyright" type="text" placeholder="Copyright" value="<?PHP print $copyright; ?>"/><p class="errorinput"><?php echo $copyrightErr;?></p></div><div><label class="labelshow">Feed Title</label><input id="feedtitle" class="insetfeed" name="feedtitle" type="text" placeholder="Feed Title" 值="<?PHP 打印 $feedtitle; ?>"/><p class="errorinput"><?php echo $feedtitleErr;?></p></div><div><label class="labelshow">网站链接</label><input id="websitelink" class="insetfeed" name="websitelink" type="text" placeholder="网站链接" value="<?PHP 打印 $websitelink; ?>"/><p class="errorinput"><?php echo $websitelinkErr;?></p></div><div><label class="labelshow">Image Link</label><input id="imagelink" class="insetfeed" name="imagelink" type="text" placeholder="Image Link" value="<?PHP 打印 $imagelink; ?>"/><p class="errorinput"><?php echo $imagelinkErr;?></p></div><div><label class="labelshow">图片标题</label><input id="imagetitle" class="insetfeed" name="imagetitle" type="text" placeholder="图片标题" value="<?PHP 打印 $imagetitle; ?>"/><p class="errorinput"><?php echo $imagetitleErr;?></p></div><div><label class="labelshow">Subtitle</label><input id="subtitle" class="insetfeed" name="subtitle" type="text" placeholder="Subtitle" value="<?PHP print $subtitle; ?>"/><p class="errorinput"><?php echo $subtitleErr;?></p></div><div><textarea id="description" name="feeddescription" class="textareadescription" placeholder="输入提要描述"><?php$out = htmlspecialchars_decode($feeddescription);$out = str_replace( '\n', '
', $out );回声 $out;?></textarea><div class="submit"><input name="Submit" type="submit" class="submitbtn" value="Save"/></div><input type="hidden" name="feedid" value="<?php echo $id; ?>"/><div class="delete"><input name="Delete" type="submit" class="deletebtn" value="Delete"/></div><input type="hidden" name="Delete" value="<?php echo $id; ?>">

</表单></fieldset></html>

解决方案

change

$deleteuser = $_POST['Delete'];

$deleteuser = $_POST['userid'];

从查询执行方面,您需要像这样更改查询执行

if($sql = mysql_db_query ($DBName, $Query, $Link))if($sql = mysql_query ($Query))

I have a script for editing existing data. A fetch array is used to populate fields with data and queries for deleting the record and amending the record. When I click Save the record is deleted and not saved even though it has the correct id.

$feedid = mysql_real_escape_string($_POST['feedid']);

$Query = "UPDATE ccregisterfeed SET author='$author', category='$category',
copyright='$copyright', feeddescription='$feeddescription', feedtitle='$feedtitle',
websitelink='$websitelink', imagelink='$imagelink', imagetitle='$imagetitle',
subtitle='$subtitle' WHERE id='$feedid' AND username ='$user'";

And the input paired with the id :

<div class="submit"><input name="Submit" type="submit" class="submitbtn" value="Save"/></div>
<input type="hidden" name="feedid" value="<?php echo $id; ?>"/>

If I remove the delete input clicking save works.

<div class="delete"><input name="Delete" type="submit" class="deletebtn" value="Delete"/></div>
<input type="hidden" name="Delete" value="<?php echo $id; ?>">

FULL SCRIPT

<?php
include "connect.php";
require "authenticate.php";
error_reporting(E_ERROR);
$message = $_GET['message'];
$user = $_SESSION['UserName'];

//declare form field and form field error variables
$authorErr = $categoryErr = $copyrightErr = $feeddescriptionErr = $feedlinkErr = $feedtitleErr = $websitelinkErr = $imagelinkErr = $imagetitleErr = $subtitleErr = "";
$author = $category = $copyright = $feeddescription = $feedlink = $feedtitle = $websitelink = $imagelink = $imagetitle = $subtitle = "";

//form field validation
function validate_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}

if (isset($_POST['Submit']))
{
if (empty($_POST["author"])) {
$has_errors = true;
$authorErr = "Enter your name";
}else{
$author = validate_input($_POST["author"]);
}

if (empty($_POST["category"])) {
$has_errors = true;
$categoryErr = "Enter a category";
}else {
$category = validate_input($_POST["category"]);
}

if (empty($_POST["copyright"])) {
$has_errors = true;
$copyrightErr = "Enter copyright details";
} else {
$copyright = validate_input($_POST["copyright"]);
}

if (empty($_POST["feeddescription"])) {
$has_errors = true;
$feeddescriptionErr = "Enter feed description";
} else {
$feeddescription = validate_input($_POST["feeddescription"]);
}

if (empty($_POST["feedtitle"])) {
$has_errors = true;
$feedtitleErr = "Enter text only";
} else {
$feedtitle = validate_input($_POST["feedtitle"]);
}

if (empty($_POST["websitelink"])) {
$has_errors = true;
$websitelinkErr = "Enter link to website";
} else {
$websitelink = validate_input($_POST["websitelink"]);
}

if (empty($_POST["imagelink"])) {
$has_errors = true;
$imagelinkErr = "Enter link to image";
} else {
$imagelink = validate_input($_POST["imagelink"]);
}

if (empty($_POST["imagetitle"])) {
$has_errors = true;
$imagetitleErr = "Enter image name";
} else {
$imagetitle = validate_input($_POST["imagetitle"]);
}

if (empty($_POST["subtitle"])) {
$has_errors = true;
$subtitleErr = "Enter feed subtitle";
} else {
$subtitle = validate_input($_POST["subtitle"]);
}

if (!$has_errors)
{
    $Link = mysql_connect($Host, $User, $Password);
    $user = $_SESSION['UserName'];
    }

// var_dump ($date);
// var_dump ($feedlink);
// var_dump ($feeddescription);

//write edited data into tables matching logged in user with their data
$feedid = mysql_real_escape_string($_POST['feedid']);

$date = date("Y-m-d H:i:s");

$feeddescription = str_replace("_", "", $feeddescription);
$feeddescription = str_replace("-", "", $feeddescription);
$feeddescription = str_replace("!", "", $feeddescription);
$feeddescription = str_replace("#", "", $feeddescription);
$feeddescription = str_replace("'", "", $feeddescription);

$Query = "UPDATE ccregisterfeed SET author='$author', category='$category', copyright='$copyright', feeddescription='$feeddescription', feedtitle='$feedtitle', websitelink='$websitelink', imagelink='$imagelink', imagetitle='$imagetitle', subtitle='$subtitle' WHERE id='$feedid' AND username ='$user'";

if($sql = mysql_db_query ($DBName, $Query, $Link)) {
header("location: rss.php");
// header("location: feededit.php");
} else {
die("Query was: $Query. Error: ".mysql_error($Link));
}
}

//show logged in user their updated data
$user = $_SESSION['UserName'];
$result = mysql_query("SELECT * FROM ccregisterfeed WHERE username = '$user'") or die(mysql_error());
while($row = mysql_fetch_array($result)){
$id=$row['id'];
$author = $row['author'];
$category = $row['category'];
$copyright = $row['copyright'];
$feeddescription = $row['feeddescription'];
$feedtitle = $row['feedtitle'];
$websitelink = $row['websitelink'];
$imagelink = $row['imagelink'];
$imagetitle = $row['imagetitle'];
$subtitle = $row['subtitle'];
}

//delete form and image data when users clicks delete button
if (isset($_POST['Delete'])){
$deleteuser = $_POST['Delete'];
mysql_query("DELETE FROM ccregisterfeed WHERE id = '$deleteuser'");
mysql_query("ALTER TABLE ccregisterfeed AUTO_INCREMENT = 1");
$message = 'Feed Deleted';
header("Location: feededit.php?&message=".urlencode($message));
}
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">

<script>
$(function(){
$(document).click(function(){  
$('.messagebox').hide();
});
});
</script>

</head>

<form action="feededit.php" method="post" enctype="multipart/form-data" name="edit" id="editfeed">

<fieldset>
<div class="legendcreate">Feed Edit</div>

<div class="feedcontainer">
<div class="feedcontainerinner">

<div><label class="labelshow">Author</label><input id="author" class="insetfeed" name="author" type="text" placeholder="Author" value="<?PHP print $author ; ?>"/><p class="errorinput"><?php echo $authorErr;?></p></div>

<?php if(isset($_GET['message']) && !empty($message)): ?>
<div class="messagebox">
<?php echo $message ?>
</div>
<?php endif; ?>

<div><label class="labelshow">Category</label><input id="category" class="insetfeed" name="category" type="text" placeholder="Category" value="<?PHP print $category; ?>"/><p class="errorinput"><?php echo $categoryErr;?></p></div>

<div><label class="labelshow">Copyright</label><input id="copyright" class="insetfeed" name="copyright" type="text" placeholder="Copyright" value="<?PHP print $copyright; ?>"/><p class="errorinput"><?php echo $copyrightErr;?></p></div>

<div><label class="labelshow">Feed Title</label><input id="feedtitle" class="insetfeed" name="feedtitle" type="text" placeholder="Feed Title" value="<?PHP print $feedtitle; ?>"/><p class="errorinput"><?php echo $feedtitleErr;?></p></div>

<div><label class="labelshow">Website Link</label><input id="websitelink" class="insetfeed" name="websitelink" type="text" placeholder="Website Link" value="<?PHP print $websitelink; ?>"/><p class="errorinput"><?php echo $websitelinkErr;?></p></div>

<div><label class="labelshow">Image Link</label><input id="imagelink" class="insetfeed" name="imagelink" type="text" placeholder="Image Link" value="<?PHP print $imagelink; ?>"/><p class="errorinput"><?php echo $imagelinkErr;?></p></div>

<div><label class="labelshow">Image Title</label><input id="imagetitle" class="insetfeed" name="imagetitle" type="text" placeholder="Image Title" value="<?PHP print $imagetitle; ?>"/><p class="errorinput"><?php echo $imagetitleErr;?></p></div>

<div><label class="labelshow">Subtitle</label><input id="subtitle" class="insetfeed" name="subtitle" type="text" placeholder="Subtitle" value="<?PHP print $subtitle; ?>"/><p class="errorinput"><?php echo $subtitleErr;?></p></div>

<div><textarea id="description" name="feeddescription" class="textareadescription" placeholder="Enter feed description"><?php
    $out = htmlspecialchars_decode($feeddescription); 
    $out = str_replace( '\n', '<br />', $out ); 
    echo $out; 
    ?></textarea>

<div class="submit"><input name="Submit" type="submit" class="submitbtn" value="Save"/></div>
<input type="hidden" name="feedid" value="<?php echo $id; ?>"/>

<div class="delete"><input name="Delete" type="submit" class="deletebtn" value="Delete"/></div>
<input type="hidden" name="Delete" value="<?php echo $id; ?>">


</div>
</div>
</div>

</form>
</fieldset>

</body>
</html>

解决方案

change

<input type="hidden" name="Delete" value="<?php echo $id; ?>">

$deleteuser = $_POST['Delete'];

to

<input type="hidden" name="userid" value="<?php echo $id; ?>">

$deleteuser = $_POST['userid'];

and from query execution side you need to change the query execution like this

if($sql = mysql_db_query ($DBName, $Query, $Link)) to if($sql = mysql_query ($Query))

这篇关于php - 更新集 &amp;删除问题 - 保存删除记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
PHP最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆