2016-06-23 82 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官方的解釋

相關問題