Php 如果选择/下拉列表更改,Mysql更新
我正在建立一个相当简单的crud网站。我有三个全部基于的选择/下拉列表 这是我的密码:Php 如果选择/下拉列表更改,Mysql更新,php,javascript,mysql,sql-update,Php,Javascript,Mysql,Sql Update,我正在建立一个相当简单的crud网站。我有三个全部基于的选择/下拉列表 这是我的密码: <? include('../config.php'); if (isset($_GET['id']) ) { $id = (int) $_GET['id']; if (isset($_POST['submitted'])) { foreach($_POST AS $key => $value) { $_POST[$key] = mysql_real_escap
<?
include('../config.php');
if (isset($_GET['id']) ) {
$id = (int) $_GET['id'];
if (isset($_POST['submitted'])) {
foreach($_POST AS $key => $value) { $_POST[$key] = mysql_real_escape_string($value); }
$cselect1 = $_REQUEST['cselect1'];
$cselect2 = $_REQUEST['cselect2'];
$cselect3 = $_REQUEST['cselect3'];
$query="SELECT cat FROM cat WHERE id='$cselect1'";
$result = mysql_query ($query);
while($catselect=mysql_fetch_array($result)){
$catselect1 = $catselect['cat'];
}
$query="SELECT cat FROM cat WHERE id='$cselect2'";
$result = mysql_query ($query);
while($catselect=mysql_fetch_array($result)){
$catselect2 = $catselect['cat'];
}
$query="SELECT cat FROM cat WHERE id='$cselect3'";
$result = mysql_query ($query);
while($catselect=mysql_fetch_array($result)){
$catselect3 = $catselect['cat'];
}
$sql = "UPDATE `company` SET `name` = '{$_POST['name']}' , `phone` = '{$_POST['phone']}' , `cat1` = '$catselect1' , `cat2` = '$catselect2' , `cat3` = '$cselect3' , `zipcode` = '{$_POST['zipcode']}' , `city` = '{$_POST['city']}' , `address` = '{$_POST['address']}' , `address2` = '{$_POST['address2']}' , `website` = '{$_POST['website']}' , `product1` = '{$_POST['product1']}' , `product2` = '{$_POST['product2']}' , `product3` = '{$_POST['product3']}' , `product4` = '{$_POST['product4']}' , `product5` = '{$_POST['product5']}' , `product6` = '{$_POST['product6']}' , `product7` = '{$_POST['product7']}' , `subcat1` = '{$_POST['sselect1']}' , `subcat2` = '{$_POST['sselect2']}' , `subcat3` = '{$_POST['sselect3']}' WHERE `id` = '$id' ";
mysql_query($sql) or die(mysql_error());
$sql = "UPDATE `company_secondary` SET `company_description` = '{$_POST['description']}' , `since` = '{$_POST['since']}' , `smoking` = '{$_POST['select3']}' , `delivery` = '{$_POST['select5']}' , `alcohol` = '{$_POST['select6']}' , `kids` = '{$_POST['select1']}' , `wheelchair` = '{$_POST['select2']}' , `twitter` = '{$_POST['twitter']}' , `facebook` = '{$_POST['facebook']}' , `youtube` = '{$_POST['youtube']}' , `premium` = '{$_POST['premium']}' , `creditcards` = '{$_POST['select4']}' , `outdoor` = '{$_POST['select7']}' , `featured` = '{$_POST['featured']}' , `shortdesc` = '{$_POST['shortdesc']}' WHERE company_id = '$id' ";
mysql_query($sql) or die(mysql_error());
echo "Edited Row<br/>";
echo "<a href='allbiz.php'>Back To Listing</a>";
}
$row = mysql_fetch_array ( mysql_query("SELECT * FROM `company` WHERE `id` = '$id' "));
?>
”/>
电话:
第1类:
两种选择:
在处理POST数据之前,从数据库中获取当前信息。对于任何设置为0的POST值,将其更改为当前存储的值
或根据提交的值动态构建SQL更新查询,检查每个值是否未设置为0
$update_query = "";
foreach(Array('company_name', 'company_description', 'started') as $key) {
if(isset($_POST[$key]) && $_POST[$key] !== 0) {
if($update_query) {
$update_query .= ", ";
}
$update_query .= "`{$key}`='". mysql_real_escape_string($_POST[$key]) ."'";
}
}
if($update_query) {
mysql_query("UPDATE `table` SET {$update_query} WHERE `id`='$id' LIMIT 1");
}
一个比另一个好吗?就个人而言,我倾向于选择第一个选项,但那只是因为它更适合我为这些页面设置代码结构的方式。我认为第二种方法是更好的,因为你不去接触那些你不想更新的领域。
$update_query = "";
foreach(Array('company_name', 'company_description', 'started') as $key) {
if(isset($_POST[$key]) && $_POST[$key] !== 0) {
if($update_query) {
$update_query .= ", ";
}
$update_query .= "`{$key}`='". mysql_real_escape_string($_POST[$key]) ."'";
}
}
if($update_query) {
mysql_query("UPDATE `table` SET {$update_query} WHERE `id`='$id' LIMIT 1");
}