2014-01-21 50 views
0

我有用於將一些數據存儲到數據庫的代碼。編輯其成功商店數據庫之前,但問題是當我刷新重複數據。當成功存儲在數據庫中時出現錯誤消息

我編輯和工作沒有任何問題,但當我按提交和存儲數據到數據庫我得到一個消息錯誤>爲什麼?

這是形式代碼(的index.php)

<html> 
<head> 
<title>Proposals Page</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<link rel="stylesheet" type="text/css" href="columns.css" /> 
</head> 

<body bgcolor="#3AA0BC"> 
<table border="5"> 
<form action="enterinfo.php" method="post"><br /><br /> 
<center> FirstName :<br /><input type="text" name="Name" id="Name" size="25"><br /><br/> 
Title :<br />&nbsp;<textarea name="title" id="title" size="50"></textarea></center> 
<p><th><input type=submit value="OK" name="submit" id="submit"class="buttStyle"></th</p> 
</form> 

<form action="view.php" method="post"> 
<p><th><input type=submit value="عرض المواظيع" class="buttStyle"></th></p></form> 
<form action="addcomment.php" method="post"> 
<p><th><input type=submit value="اضافة تعليق" class="buttStyle"></th></p> 
</form> 
</body> 
</html> 

並輸入代碼是在你的上述查詢(enterinfo.php)

<?php 
include ("connect.php"); 
$Name=isset($_POST['Name']) ? 
$_POST['Name'] : ''; 
$title=isset($_POST['title']) ? 
$_POST['title'] : ''; 
$submit = isset($_POST['submit']) ? 
$_POST['submit'] : ''; 

if(isset($_POST['submit'])) 
{ 
if($Name && $title) 
{ 
    $result=mysql_query("INSERT INTO subject(S_Id,Name,title) 
            VALUES(NULL, '$Name', '$title')"); 
    header('Location: enterinfo.php'); 

} 
} 
if($result) 
{ 
echo "Successful"; 
echo "<BR>"; 
} 
else 
{ 
echo "error"; 
} 
?> 
+0

和什麼是錯誤? – user2936213

+0

很有可能是第二次發送表單的刷新。這意味着'INSERT'會再次嘗試,由於某些主鍵會加倍而失敗。 – arkascha

+0

stor data.but沒有問題,但爲什麼我得到的錯誤消息不成功 – nasr25

回答

1

設置您的網址變量執行查詢後(我用RE)並檢查頁面的頂部是否存在,然後根據重新值和退出回顯您的消息。
更改enterinfo.php像下面的代碼
試試這個:

if(isset($_REQUEST['re'])){ 
    $message = $_REQUEST['re'] == 'success' ? "Sucessfully inserted" : "can not inserted"; 
    echo $message; 
    exit(); 
    } 




include ("connect.php"); 
$Name=isset($_POST['Name']) ? 
$_POST['Name'] : ''; 
$title=isset($_POST['title']) ? 
$_POST['title'] : ''; 
$submit = isset($_POST['submit']) ? 
$_POST['submit'] : ''; 

if(isset($_POST['submit'])) 
    { 
    if($Name && $title) 
    { 
     $result=mysql_query("INSERT INTO subject(Name,title) 
             VALUES('$Name', '$title')"); 
    if($result){ 
     header('Location: enterinfo.php?re=success'); 
     } 
     else{ 
     header('Location: enterinfo.php?re=fails'); 
     } 
    } 
    } 
+0

好吧,我獲得成功,但當我刷新頁面我在數據庫中得到重複的數據 – nasr25

+0

@ nasr25:嘗試更新的答案 –

+0

確定>多數民衆贊成在很多thaaaaaaaaaaaaaaaaaaaaaaaaaanks – nasr25

0
$result=mysql_query("INSERT INTO subject(S_Id,Name,title) 
VALUES(NULL, '$Name', '$title')"); 

我認爲S_ID是一個主鍵,所以它不能爲NULL。改變你的上面的代碼並設置S_Id自動增量

所以你插入查詢應該是這樣的:

$result=mysql_query("INSERT INTO subject(Name,title) 
            VALUES('$Name', '$title')"); 
0

數據更新後,您重定向再次同一個頁面...

header('Location: enterinfo.php'); 
0

用於更新一個值,你應該使用什麼表像這樣: 更新表 SET column1 =表達式1, column2 =表達式2, ... WHERE條件;

你不能「插入」連續兩次,如果它包含一個唯一的字段的值相同(如例如ID)

0

數據更新後,您重定向再次同一個頁面...

頭( '位置:enterinfo.php');

remove header('Location:enterinfo.php');然後檢查

+0

當我刪除它時,我得到重複的數據,當我刷新頁面 – nasr25

+0

@ nasr25你需要保持標題在if語句或其他部分 –

+0

如果(isset($ _ POST [ '提交'])) { 如果($名稱&& $標題) { $結果= mysql_query(「INSERT INTO科目(姓名,職務) VALUES( '$名稱' ,'$ title')「); if($ result){ $ msg =「成功」; } else { $ msg =「error」; } } header('Location:index.php?msg = $ msg'); } 後回聲$ _GET [ '味精']中的index.php –

相關問題