2016-04-10 11 views
1

私はテーブルからエコーされた1つのフォームのデータを持っています。このデータを使って別のテーブルの情報を更新したいと思っています。私が更新ボタンを押すたびに、「データを更新できませんでした:クエリが空でした」というエラーが表示されます。ここに更新コードがありますので、私を助けてください。変数が動作しないPHPのmysql update table

<?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

データ'Quantity'のタイプ? –

+0

数量は整数ですが、itemidはvarcharです – musyimi

0

PHP変数の使用単一引用符とバックは、SQL関連の名前のダニ:エラー、それが何を示している

$sql = mysql_query("UPDATE `stationery` set `Quantity` = '$Quantity' WHERE `ItemId` = '$ItemId'"); 
関連する問題