2016-06-23 6 views
0

私は初心者です。私は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

第3に、select * from sales where name = $ salelist "'、これは安全ではありません。最後に、 '$ salelist'を一重引用符で囲む必要があります。 – Rasclatt

+0

ユーザーが提出したデータを挿入するときに、バインドパラメータ関数を使用することをお勧めします。 sales(id、name、panelnumber)の値( ''、$ salelist、$ panelnumber)に '' $ * salelist ''と' 'セールスを挿入し、 'sales sales where name = $ panelnumber'')、SQLインジェクションが可能です。 – Rasclatt

答えて

0

あなたの問題はここに

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

あなたにあります何を更新するかを言っていない。 SQL行を更新するために使用できるメソッドの1つを使用する必要があります。

例えば、正しいものは次のようになります。

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

Hereは、公式のMySQLのドキュメントです。 そして、あなたは1個のより多くのエラーを持っているあなたは、この書いた場合、:

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

を文字通り、「$番号」になります$variableの出力は、「5」ではありません。文字列に変数を設定する場合は、一重引用符で囲まれた文字列がそのまま保存されるため、二重引用符("")は一重引用符(')他のもの
正しい方法は次のようになります。

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

Hereあなたは、私が説明していますかについての詳細なPHPの公式な説明を持って

関連する問題