2013-08-02 126 views
0

我一直在我的頭上撞牆約2個小時了,我無法弄清楚我做錯了什麼。我只是試圖用新信息更新MySQL數據庫。但是當我點擊「更新信息」時,什麼都沒有發生。PHP更新命令不起作用

<div id="tabs-1"> 
<?php 

//update main informaion 

if(isset($_POST["toolnameupdate"])){ 

    $companyname1 = ""; 

    $toolname1 = ""; 

include_once("../php_includes/db_connect.php"); 

$companyname1 = $_POST['clientname']; 

$toolname1 = $_POST['webtoolname']; 

$sql = "UPDATE siteinformation SET clientname = $companyname1, srcname = $toolname1"; 

$query = mysqli_query($db_connect, $sql); 

error_reporting(E_ALL); 

header('Location: user.php'); 
} 
?>  
<form method="post" action=""> 
    <fieldset> 
<legend><strong>Main Title Information</strong></legend> 
<div id="prompt">Client Company Name:</div><div id="answer"><input type="text" name="clientname" id="clientname" value="<? echo $companyname; ?>"/></div> 
<div id="prompt">Web Tool Name:</div><div id="answer"><input type="text" name="webtoolname" id="webtoolname" value="<? echo $toolname; ?>"/></div> 
<div id="prompt"><input type="submit" id="toolnameupdate" name="toolnameupdate" value="Update Information" /></div><div id="answer">&nbsp;</div> 
<div id="prompt">&nbsp;</div><div id="answer">&nbsp;</div> 
</fieldset> 
</form> 
    </div> 

任何人都可以看到它缺少的信息?

謝謝

+2

您錯過了

標記.... –

+2

首先..淨化您的變量。其次..我不認爲在$ _POST superglobal中使用括號是合法的舉動。 –

+0

您的更新查詢中沒有WHERE條件,它將更新***所有***行。你確定你不是指'INSERT'嗎?還有,這個代碼有太多的錯誤,應該會引發一些錯誤。 'error_reporting(E_ALL);'會確保你真的*看到*他們。 – Sammitch

回答

5

我不確定這是否是完整的代碼。但是表單域應該包含在<form>標記中。

<form method="post" action=""> 
<fieldset> 
<legend><strong>Main Title Information</strong></legend> 
<div id="prompt">Client Company Name:</div><div id="answer"><input type="text" name="clientname" id="clientname" value="<? echo $companyname; ?>"/></div> 
<div id="prompt">Web Tool Name:</div><div id="answer"><input type="text" name="webtoolname" id="webtoolname" value="<? echo $toolname; ?>"/></div> 
<div id="prompt"><input type="submit" id="toolnameupdate" name="toolnameupdate" value="Update Information" /></div><div id="answer">&nbsp;</div> 
<div id="prompt">&nbsp;</div><div id="answer">&nbsp;</div> 
</fieldset> 
</form> 

也正確的語法是$ _POST ['..'],而不是括號。

並且還將error_reporting(E_ALL);移動到文件的頂部,否則它不會太有用。

+0

感謝您的幫助,窗體在那裏,但我保存刪除它。我也修改了$ _POST語句。表單現在提交,但沒有添加更改。修改後的代碼是低於 – PHaeLiX

+0

那很好聽。現在你需要做一些基本的數據庫調試。比如在使用phpmyadmin運行時檢查你的查詢是否成功。 – Aris

4

$_POST('clientname')應該是$_POST['clientname']。和其他帖子一樣。還請閱讀Aris關於表單標籤的回答。

修改代碼後,您刪除了變量周圍的引號,它們需要保留。

$sql = "UPDATE siteinformation SET clientname = '$companyname1', srcname = '$toolname1'";