2016-06-23 84 views
0

我在PHP初学者,我想插入值转换成使用PHP插入查询我的下拉值我的数据库表,我有一个错误插入数据,并且还希望更新数据库表的存在价值时插入新值到数据库表中,这里是我的代码帮我解决这个问题,我的代码如下:如何插入和更新值到数据库表中的PHP

<?php 
include 'dbconfig.php'; 
?> 
<html> 
<head> 
<title>Sales Panel App</title> 
</head> 

<body> 

<form method="POST" name="myForm" action="<?php $_PHP_SELF ?>"> 
<table border="1"> 
<tr> 
<td>Sales Person List</td> 
<td> 
<?php 


$sql="select name,id from sales order by name"; 
    echo "<select name = 'salelist' value=''>Sales Person Name</option>"; 
    echo "<option value = 'Select Sales Person' selected>Select Sales Person</option>"; 
    { 
    foreach ($conn->query($sql) as $row){ 
    echo "<option value=$row[id]>$row[name]</option>"; 
    } 
    echo "</select>"; 
    } 
    echo "<br>"; 

    ?> 

    </td> 
    </tr> 

    <tr> 
    <td>No of Panels</td> 
    <td><input type="text" name="panelnumber" size="1"></td> 
    </tr> 



    </table> 
    <p><input type="submit" value="Submit" name="submit" id="submitdata"></p> 
    </form> 
    <?php 

    $salelist = $_POST['salelist']; 
    $panelnumber = $_POST['panelnumber']; 

     $sql2 = "select * from sales where name = $salelist"; 
     $result = mysqli_query($sql2); 

     if ($row = mysqli_fetch_array($result)) { 
      $oldvalue = $panelnumber; 
      $newvalue = $oldvalue + $panelnumber; 
      $query = 'update sales where name = $panelnumber'; 
     } 
     else { 
     $qry = "insert into sales (id, name, panelnumber) values ('', $salelist, $panelnumber)"; 
     } 
     ?> 


      </body> 
      </html> 
+0

夫妇一般点,首先检查'$ _ POST [“salelist”] '使用'if(isset($ _ POST ['salelist']))'设置,你将避免这种警告。您在那里插入数据库连接下的代码。在输出到浏览器之前尝试执行业务逻辑。 – Rasclatt

+0

三,不要这样做''select * from sales where name = $ salelist“',这是不安全的。最后,如果你这样做,你需要大约'$ salelist' – Rasclatt

+0

最佳单引号将用户提交的数据时,使用绑定参数功能。如果你这样做,你现在有(' “选择销售*其中名称= $ salelist”'和' “插入销售(ID,姓名,panelnumber)VALUES( '',$ salelist,$ panelnumber)”'和' '更新销售名称= $ panelnumber''),你是开放的SQL注入。 – Rasclatt

回答

0

你的问题是在这里

$query = 'update sales where name = $panelnumber'; 

你没有说什么要更新。您必须使用可用的一种方法来更新SQL行。

例如,正确的应该是:

$query = "update sales set city='rio' where name = '$panelnumber'"; 

Here是MySQL官方文档。 你又多了一个错误,如果你这样写:

$number = 5; 
$variable = '$number'; 
echo $variable; 

$variable输出将不会是“5”,将“$号”,从字面上。如果你想设置一个变量在一个字符串,必须我们双引号()不是单引号(),因为单引号会从字面上拯救它们之间有什么,然后双击将尝试‘翻译’变量。其他的东西
正确的方法应该是:

$number = 5; 
$variable = "$number"; 
echo $variable; 

Here你有什么我描述了详细的PHP官方的解释

相关问题