-1

PHPの更新関数に問題があります。最後の関数のみを更新する場合でも、関数を機能させるためのコードがあります。

<html>
<head>
<title>Update a Record in MySQL Database</title>
</head>
<body>

<?php
if(isset($_POST['update']))
{
$dbhost = '';
$dbuser = '';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}

$stock_1 = $_POST['stock_1'];
$stock_2 = $_POST['stock_2'];
$stock_3 = $_POST['stock_3'];
$stock_4 = $_POST['stock_4'];
$stock_5 = $_POST['stock_5'];
$stock_6 = $_POST['stock_6'];

$sql = "UPDATE products ".
       "SET instock = $stock_1 ".
       "WHERE productid = 1" ;

$sql = "UPDATE products ".
       "SET instock = $stock_2 ".
       "WHERE productid = 2" ;
$sql = "UPDATE products ".
       "SET instock = $stock_3 ".
       "WHERE productid = 3" ;

$sql = "UPDATE products ".
       "SET instock = $stock_4 ".
       "WHERE productid = 4" ;

$sql = "UPDATE products ".
       "SET instock = $stock_5 ".
       "WHERE productid = 5" ;

$sql = "UPDATE products ".
       "SET instock = $stock_6 ".
       "WHERE productid = 6" ;


mysql_select_db('db_k0903037');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
}
else
{
?>
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="100">3.5" Seagate SATA 2TB</td>
<td><input name="stock_1" type="text" id="stock_1"></td>
</tr>
<tr>
<td width="100">Samsung 2.5" SATA Hard Drive</td>
<td><input name="stock_2" type="text" id="stock_2"></td>
</tr>
<tr>
<td width="100">8gb Kingston DDR3 RAM 1333mhz</td>
<td><input name="stock_3" type="text" id="stock_3"></td>
</tr>
<tr>
<td width="100">Apple MacBook Ram 8GB</td>
<td><input name="stock_4" type="text" id="stock_4"></td>
</tr>
<tr>
<td width="100">Gigabyte GA-970A-DS3</td>
<td><input name="stock_5" type="text" id="stock_5"></td>
</tr>
<tr>
<td width="100">Asus P8Z77-V PRO </td>
<td><input name="stock_6" type="text" id="stock_6"></td>
</tr>
<tr>
<td width="100"> </td>
<td> </td>
</tr>
<tr>
<td width="100"> </td>
<td>
<input name="update" type="submit" id="update" value="Update">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>

それは私のコードであり、なぜそれがすべてを更新しないのかを理解するのに苦労していますか?明らかに私は正しいユーザー名とパスワードを入力しました!

どんな助けでも大歓迎です。

4

2 に答える 2

1

あなたmysql_select_db('db_k0903037');はコードの一番上に行かなければなりません、そしてあなたはしなければなりません

$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not update data: ' . mysql_error());
}

各後$sql = "...";

$sqlそれを行う方法は、文字列を毎回異なるものに設定することですが、実際にはそのクエリを実行しません。mysql_query実際に実行します:)

于 2013-03-21T10:22:21.757 に答える
0

ループでやってみませんか?

for($i=1;$i<=6;++$i){
  ${'stock_'.$i} = $_POST['stock_'.$i];
  $sql = "UPDATE products SET instock = ".${'stock_'.$i}." WHERE productid = ".$i ;
  $retval = mysql_query( $sql, $conn );
  // ...
}

あるいは単に

for($i=1;$i<=6;++$i){
  $var = $_POST['stock_'.$i];
  $sql = "UPDATE products SET instock = ".$var." WHERE productid = ".$i ;
  $retval = mysql_query( $sql, $conn );
  // ...
}
于 2013-03-21T10:30:09.853 に答える