2016-04-10 57 views
1

我有一個表格形式的數據從表中回顯,我想用這個數據來更新另一個表中的信息。每當我點擊更新按鈕它顯示一個錯誤,「無法更新數據:查詢是空的」,這裏是更新代碼,請幫助我。php mysql更新表使用變量不起作用

<?php 
    if(isset($_POST['submit'])) { 
     $dbhost = 'localhost'; 
     $dbuser = 'root'; 
     $dbpass = ''; 

     $conn = mysql_connect($dbhost, $dbuser, $dbpass); 

     if(! $conn) { 
      die('Could not connect: ' . mysql_error()); 
     } 

     $ItemId = $_POST['ItemId']; 
     $Quantity = $_POST['Quantity']; 

     //$sql = "UPDATE stationery ". "SET Quantity = $Quantity ". "WHERE ItemId = $ItemId" ; 
     $sql = mysql_query("UPDATE stationery set Quantity = ". $Quantity ." WHERE ItemId = '".$ItemId."'"); 
     //$sql=mysql_query("UPDATE stationery SET Quantity = ".mysql_real_escape_string($Quantity)." WHERE IltemId = '".mysql_real_escape_string($ItemId)."'"); 
     mysql_select_db('dbtest'); 
     $retval = mysql_query($sql, $conn); 

     if(! $retval) { 
      die('Could not update data: ' . mysql_error()); 
     } 
     echo "Updated data successfully\n"; 

     mysql_close($conn); 
    } 
    ?> 

而這正是數據從一個MySQL表

<?php 
$con = mysql_connect("localhost","root",""); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("dbtest", $con); 

$result = mysql_query ("SELECT * FROM stationery"); 
echo "<table border = '1' style='margin-left:18px;margin-right:18px;'bgcolor='#CFC'> 
    <tr><th bgcolor='#34495E' colspan='9'> 
    <h1><font color='white' align='center'>&nbsp&nbsp&nbspORDER OFFICE SUPPLIES</font></h1> 
</th></tr> 
<tr bgcolor='#CFC' font size='18'> 
<th>Item Name</th> 
<th>Item Id</th> 
<th>Quantity</th> 
</tr>"; 

while ($row = mysql_fetch_array($result)) 
{ 
    echo "<form action=\"\" method=\"post\" enctype=\"multipart/form-data\">"; 
    echo "<tr>"; 
    echo "<td><input type=\"text\" name=\"ItemName\" size=\"30\" value=\" ". $row ['ItemName'] . "\" readonly></td>"; 
    echo "<td><input type=\"text\" name=\"ItemId\" value=\" ". $row ['ItemId'] . "\" readonly></td>"; 
    echo "<td><input type=\"text\" name=\"Quantity\" required></td>"; 
    echo "<td><input type=\"submit\" name=\"submit\" size=\"30\" style='background-color:#3366FF' value=\"Update \"></td>"; 

echo "</tr>"; 
    echo "</form>"; 
    } 
    echo "</table>"; 


    mysql_close($con); 

?> 
+0

什麼是錯誤時顯示? –

+0

'mysql_ *'函數被棄用,使用'mysqli_ *'或PDO代替 – Panda

+0

錯誤是:無法更新數據:查詢是空的 – musyimi

回答

0

改變這一行呼應表:

$sql = mysql_query("UPDATE stationery set Quantity = ". $Quantity ." WHERE ItemId = '".$ItemId."'"); 

要:

$sql = "UPDATE stationery set Quantity = '". $Quantity ."' WHERE ItemId = '".$ItemId."'"; 

全碼:

<?php 
    $dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = ''; 

$conn = mysql_connect($dbhost, $dbuser, $dbpass); 

if(! $conn) { 
    die('Could not connect: ' . mysql_error()); 
} 

$ItemId = $_POST['ItemId']; 
$Quantity = $_POST['Quantity']; 

$sql = "UPDATE stationery set Quantity = '". $Quantity ."' WHERE ItemId = '".$ItemId."'";; 

mysql_select_db('test'); 
$retval = mysql_query($sql, $conn); 

if(! $retval) { 
    die('Could not update data: ' . mysql_error()); 
} 
echo "Updated data successfully\n"; 

mysql_close($conn); 
?> 
+0

錯誤不再存在但仍不會更新數據 – musyimi

+0

什麼是數據「數量」類型? –

+0

數量是一個整數,而itemid是varchar – musyimi

0

使用單引號PHP變量和反勾對SQL相關的名稱:

$sql = mysql_query("UPDATE `stationery` set `Quantity` = '$Quantity' WHERE `ItemId` = '$ItemId'");