2016-08-19 21 views
0

私は全くPHPに慣れていないと同社の会社や連絡先を含むアドレス帳に取り組んでいます。それはちょうどここそこにもともと古いデータに置き換えてデータを更新するために、[送信]をクリックした場合の企業のhtml形式です:PHPの問題を使用したmysqlの更新フォームは古い情報で更新されていません新しい更新はありません

<html> 
<head><title>Update Records in MYSQL Database</title> 
    <style> 
     body {background-color: powderblue;} 
     form {border: 5px solid midnightblue; 
      padding: 40px;} 
     label {color: darkblue;} 
     form {border: 5px solid midnightblue; 
      padding: 40px; 
    </style> 
</head> 
<body> 
<?php 
    //Connect to the Database 
    $link = mysqli_connect('localhost', '', ''); 
    //Select the Database 
    mysqli_select_db($link, 'ADDRESS_BOOK_DB'); 
    //Select Query 
    $sql = "SELECT * FROM Companies"; 
    //Execute the Query 
    $records = mysqli_query($link, $sql); 
?> 
<form> 
    <table> 
     <tr> 
      <th>CompanyName</th> 
      <th>Address</th> 
      <th>City</th> 
      <th>State</th> 
      <th>ZipCode</th> 
      <th>PhoneNumber</th> 
     </tr> 
     <?php 
     while($row = mysqli_fetch_array($records)) { 
      echo "<tr><form action=update.php method='post'></form>"; 
      echo "<td><input type='text' name='CompanyName' value='" . $row['companyname1'] . "'></td>"; 
      echo "<td><input type='text' name='address' value='" . $row['address'] . "'></td>"; 
      echo "<td><input type='text' name='city' value='" . $row['city'] . "'></td>"; 
      echo "<td><input type='text' name='state' value='" . $row['state'] . "'></td>"; 
      echo "<td><input type='text' name='zipcode' value='" . $row['zipcode'] . "'></td>"; 
      echo "<td><input type='text' name='phone' value='" . $row['phone'] . "'></td>"; 
      echo "<td><input type=hidden name=companies_id value='" . $row['companies_id'] . "'>"; 
      echo "<td><input type='submit'>"; 
      echo "</form></tr>"; 
     } 
    ?> 
    </table> 
</form> 
</body> 
</html> 

、ここでは、実際の更新PHPのSQL作業しないクエリか何かの任意であります入力は私が持っているこの頭痛を取り除くのに役立ちます。

<?php 
//Connect to the Database 
$link = mysqli_connect('localhost', '', ''); 
//Select the Database 
mysqli_select_db($link, 'ADDRESS_BOOK_DB'); 

//Update Query 
$sql = "UPDATE Companies SET CompanyName= $_POST[companyname1], Address= $_POST[address], City= $_POST[city], State= $_POST[state], ZipCode= $_POST[zipcode], PhoneNumber= $_POST[phone] 
WHERE companies_id= $_POST[companies_id]"; 

//Execute the Query 
if(mysqli_query($link, $sql)) 
    header("refresh:1; url=edit.php"); 
    enter code here 

else 
    echo "Not Updated"; 
?> 
+1

実際の問題は何ですか、LOLが少なく太字ではありません。 – tadman

+0

**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param']( http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用してクエリにユーザーデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'や' $ _GET'データを直接クエリに入れないでください。誰かがあなたのミスを悪用しようとすると、非常に危険です。 – tadman

+0

最初と最後の3ティックは、私がリード・デベロッパーに余裕をもって提出したときにのみ入れられました。したがって、エラーが開始した後に3つのティックがあった。私はそれらを取り除くことを忘れてしまった。 – BTDennis

答えて

1

まず、データベースからそのレコードが更新したいんWHERE$sql = "SELECT * FROM Companies";とここに条件を置きます。

while($row = mysqli_fetch_array($records)) { 
     echo "<tr><form action=update.php method='post'></form>"; 
     echo "<td><input type='text' name='CompanyName' value='" . $row['companyname1'] . "'></td>"; 
     echo "<td><input type='text' name='address' value='" . $row['address'] . "'></td>"; 
     echo "<td><input type='text' name='city' value='" . $row['city'] . "'></td>"; 
     echo "<td><input type='text' name='state' value='" . $row['state'] . "'></td>"; 
     echo "<td><input type='text' name='zipcode' value='" . $row['zipcode'] . "'></td>"; 
     echo "<td><input type='text' name='phone' value='" . $row['phone'] . "'></td>"; 
     echo "<td><input type=hidden name=companies_id value='" . $row['companies_id'] . "'>"; 
     echo "<td><input type='submit'>"; 
     echo "</form></tr>"; 
    } 

この

あなたは form

第二の内側に、データベースからすべてのレコードをフェッチしているようにあなたは、whileループのbegeningであなたの formタグを閉じているようだと form

を変更することなく、入力フィールドの残りの部分を保ちます〜

?> 
<form action=update.php method='post'> 
<?php 
while($row = mysqli_fetch_array($records)) { 

     echo "<td><input type='text' name='CompanyName' value='" . $row['companyname1'] . "'></td>"; 
     echo "<td><input type='text' name='address' value='" . $row['address'] . "'></td>"; 
     echo "<td><input type='text' name='city' value='" . $row['city'] . "'></td>"; 
     echo "<td><input type='text' name='state' value='" . $row['state'] . "'></td>"; 
     echo "<td><input type='text' name='zipcode' value='" . $row['zipcode'] . "'></td>"; 
     echo "<td><input type='text' name='phone' value='" . $row['phone'] . "'></td>"; 
     echo "<td><input type=hidden name=companies_id value='" . $row['companies_id'] . "'>"; 
     echo "<td><input type='submit'>"; 

    } 

?> 
</form> 
関連する問題