我有这个代码除了添加到我的数据库之外什么都不做,只添加了项目盎司和零售价。关于我哪里出错的任何想法?
- update.php ---
<?php
session_start(); // start session cookies
require("Login.class.php"); // pull in file
$login = new Login; // create object login
$login->authorize(); // make user login
?>
<style type="text/css">
body {background-color:#42520e; color: #f0cb01;
}
th {background: URL(http://www.athenahealth.com/_img/boxes/carousel_bg.png);}
p {color:blue;}
a:link {color: #f0cb01; text-decoration: underline; }
a:active {color: #f0cb01; text-decoration: underline; }
a:visited {color: #f0cb01; text-decoration: underline; }
a:hover {color: #f0cb01; text-decoration: none; }
</style>
<?php
$retail=$_REQUEST['retail'];
$id=$_REQUEST['id'];
$name=$_REQUEST['name'];
$upc=$_REQUEST['upc'];
$ounces=$_REQUEST['ounces'];
define("HOST", "localhost");
$retail=$_REQUEST['retail'];
$id=$_REQUEST['id'];
$name=$_REQUEST['name'];
$upc=$_REQUEST['upc'];
$ounces=$_REQUEST['ounces'];
?>
Admin Panel to Update Keywords
<hr>
<table>
<tr><td valign="top"><br /><br />
<td>
Your are editing information for Product #: <b><? echo $_REQUEST['id']; ?></b>
<form method="post" action="update_ac.php">
<table> <tr><br /></tr>
<tr><td> Product #: </td><td> <input type="text" name="id" id="id" value="<? echo $_REQUEST['id']; ?>">* Enter Keyword as it currently appears<br></td></tr>
<tr><td> Name: </td><td><input type="text" name="name" id="name" value="<? echo $_REQUEST['name']; ?>">* Enter New Information<br></td></tr>
<tr><td> Suggested Retail:</td><td> <input type="text" name="retail" id="retail" value="<? echo $_REQUEST['retail']; ?>">* New Phone Number<br></td></tr>
<tr><td> Ounces: </td><td> <input type="text" name="ounces" id="ounces" value="<? echo $_REQUEST['ounces']; ?>">* Enter new block description here. <br></td></tr>
<tr><td> UPC: </td><td> <input type="text" name="upc" id="upc" value="<? echo $_REQUEST['upc']; ?>">* Enter new block description here. <br></td></tr>
<tr><td> </td><td align="left"> <input type="submit" name="submit" value="Submit Data"></td></tr>
</table>
</form>
</td></tr>
</table> <br />
<a href="index.php">Add Keyword</a> | <a href="../admin">Back to search form</a> |
<?php
echo '<pre>';
print($retail);
echo '</pre>';
?>
<a href="index.php?action=clear_login">logout</a>
</body>
这是它使用的更新链接,并将其传递给update_ac.php
<?php
session_start(); // start session cookies
require("Login.class.php"); // pull in file
$login = new Login; // create object login
$login->authorize(); // make user login
?>
<style type="text/css">
body {background-color:#42520e; color: #f0cb01;
}
th {background: URL(http://www.athenahealth.com/_img/boxes/carousel_bg.png);}
p {color:blue;}
a:link {color: #f0cb01; text-decoration: underline; }
a:active {color: #f0cb01; text-decoration: underline; }
a:visited {color: #f0cb01; text-decoration: underline; }
a:hover {color: #f0cb01; text-decoration: none; }
</style>
<?php
$retail=$_REQUEST['retail'];
$id=$_REQUEST['id'];
$name=$_REQUEST['name'];
$upc=$_REQUEST['upc'];
$ounces=$_REQUEST['ounces'];
define("HOST", "localhost");
$retail=$_REQUEST['retail'];
$id=$_REQUEST['id'];
$name=$_REQUEST['name'];
$upc=$_REQUEST['upc'];
$ounces=$_REQUEST['ounces'];
// Database user
define("DBUSER", "root");
// Database password
define("PASS", "Password!");
// Database name
define("DB", "SnyderLanceSku");
############## Make the mysql connection ###########
$conn = mysql_connect(HOST, DBUSER, PASS) or die('Could not connect !<br />Please contact the site\'s administrator.');
$db = mysql_select_db(DB) or die('Could not connect to database !<br />Please contact the site\'s administrator.');
mysql_query("UPDATE products SET UPC='$upc', Name='$name', Item_Ounces='$ounces' WHERE UPC='$upc' ") or die (mysql_error());
?>
<table>
<tr><td valign="top"><br /><br />
<td>
<table> <tr><b>Data Updated Successfully</b></tr>
<tr><td> Keyword: </td><td><? echo $id; ?><br></td></tr>
<tr><td> Block?: </td><td><? echo $name; ?><br></td></tr>
<tr><td> Phone #:</td><td><?php echo $upc; ?><br> </td></tr>
<tr><td> Reason: </td><td><? echo $retail; ?></td></tr>
<tr><td> Reason: </td><td><? echo $ounces; ?></td></tr>
</table>
</form>
</td></tr>
</table>
<a href="./">Go Back</a>
我不确定在哪里看这里......感谢任何帮助。
编辑:
这是两个脚本。它几乎正常。现在的事情是它没有更新正确的行。它添加一个新行而不是更新id或在这种情况下更新UPC
答案 0 :(得分:2)
您对此代码存在一些问题,您提供的代码似乎并不像您发送POST
请求而是发送{{}} {1}}请求您通过网址传递它们。首先,将GET
更改为$_POST
。
你的查询也错了。
$_GET
应该是,
$sql = "UPDATE `products` SET ".implode(", ", $update)."WHERE Product_sku = '$ID'";
我在代码中没有看到$sql = "UPDATE `products` SET ".implode(", ", $update)."WHERE Product_sku = '$id'";
变量,但我确实看到了$ID
变量。所以你也需要改变它。
修改1
此外,打开$id
可以更轻松地进行调试。
error reporting
修改2
正如弗雷德所说,在尝试将数据从HTML传输到PHP时,你会犯错误。
在产品输入中,您将名称值设置为ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(-1);
,就像使用Product
输入一样。然而,在你的PHP中,Name
应该是$name=$_GET['name'];
。
你应该采用一种熟悉的命名约定,例如camelCase,这将使得难以发现难以发现的这些错误。我亲自使用PSR编码约定。所以尽量采用一个并坚持下去。
另一件事,因为您之前从未发布过您的表单我建议您使用$name=$_GET['Name'];
,但是对于某些内容(例如表单数据),您应该将其更改为$_GET
作为您的表单{{ 1}}。
编辑3
您还应该养成检查变量是否实际包含值并正确设置的习惯,这称为验证。我会亲自检查是否已按下提交按钮($_POST
然后验证该if语句中的其余字段。这样,您知道您添加到数据库中的输入是有效的。< / p>