Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新数据库更新_Php_Html_Sql - Fatal编程技术网

Php 更新数据库更新

Php 更新数据库更新,php,html,sql,Php,Html,Sql,我在更新数据库时遇到问题。我的sql update语句是否有问题?我检查了sql语句,它说数据库中没有记录。我不知道该怎么办 <!-- template for mySql database access. --> <!DOCTYPE html> <html> <head> <title>CRUD</title> <link href="/sandv

我在更新数据库时遇到问题。我的sql update语句是否有问题?我检查了sql语句,它说数据库中没有记录。我不知道该怎么办

<!-- template for mySql database access. -->
    <!DOCTYPE html>
    <html>
       <head>
          <title>CRUD</title>
          <link href="/sandvig/mis314/assignments/style.css" rel="stylesheet" type="text/css">
       </head>
       <div class="pageContainer centerText">
          <h3>CRUD (Create, Read, Update, & Delete) Database</h3>
          <?php
          //include database connection
          include("DatabaseConnection2.php");

          //connect to database
          $link = fConnectToDatabase();

          //Retrieve parameters from querystring and sanitize
          $nameF = fCleanString($link, $_GET['nameF'], 15);
          $nameL = fCleanString($link, $_GET['nameL'], 15);
          $deleteID = fCleanNumber($_GET['deleteID']);
          $updateID = fCleanNumber($_GET['updateID']);
          $updateID2 = fCleanNumber($_GET['updateID2']);



           //Populate Textbox  
          if (!empty($updateID)) {
             $sql = "SELECT NameL, NameF
                     FROM customertbl
                     WHERE custID  = '$updateID'";
              mysqli_query($link, $sql) or die('Delete error: ' . mysqli_error($link));

             $result = mysqli_query($link, $sql)
                  or die('SQL syntax error: ' . mysqli_error($link));
             $row = mysqli_fetch_array($result); 
             $strFName2 = $row[NameF];
             $strLName2= $row[NameL];





          }




          ?>
          <hr>
          <form class="formLayout">
             <div class="formGroup">
                <label>First name:</label>
                <input name="nameF" type="text" autofocus value="<? echo $strFName2; ?>">
             </div>
             <div class="formGroup">
                <label>Last name:</label>
                <input name="nameL" type="text"  value="<? echo $strLName2; ?>">
             </div>
             <div class="formGroup">
                <label> </label>
                <button>Submit</button>
                <input type="hidden" name="updateID2" value="<? echo  $updateID; ?>">
             </div>
          </form>
          <?php




        //Update
          if (!empty($updateID2))
          {

             $sql = "UPDATE customertbl
                     SET NameL = '$strFName2', NameF ='$strLName2'
                     WHERE custID = '$updateID2' ";
             mysqli_query($link, $sql) or die('Insert error: ' . mysqli_error($link));


          }    


          //Insert
          if (!empty($nameF) && !empty($nameL)) {
             $sql = "Insert into customertbl (NameL, NameF)
                    VALUES ('$nameL', '$nameF')";
             mysqli_query($link, $sql) or die('Insert error: ' . mysqli_error($link));
          }

          //Delete
          if (!empty($deleteID)) {
             $sql = "Delete from customertbl WHERE CustID= '$deleteID' ";
             mysqli_query($link, $sql) or die('Delete error: ' . mysqli_error($link));
          }
          //List records
          $sql = 'SELECT custID, NameF, NameL
                    FROM customertbl order by custID';




          //$result is an array containing query results
          $result = mysqli_query($link, $sql)
                  or die('SQL syntax error: ' . mysqli_error($link));

          echo "<p>" . mysqli_num_rows($result) . " records in the database</p>";
          ?>
          <table class="simpleTable">
             <tr>
                <th>Cust. ID</th>
                <th>F. Name</th>
                <th>L. Name</th>
                <th>Delete</th>
                <th>Update</th>
             </tr>
             <?php
             // iterate through the retrieved records
             while ($row = mysqli_fetch_array($result)) {
                //Field names are case sensitive and must match
                //the case used in sql statement
                $custID = $row['custID'];
                echo "<tr>
                         <td>$custID</td>
                         <td>$row[NameF]</td>
                         <td>$row[NameL]</td>
                         <td><a href='?deleteID=$custID'>Delete</a></td>
                         <td><a href='?updateID=$custID'>Update</a></td>
                     </tr>";
             }
             ?> 
          </table>
       </div>
    </body>
    </html>

积垢
CRUD(创建、读取、更新和删除)数据库

有问题的代码块

    //Update
      if (!empty($updateID2))
      {

         $sql = "UPDATE customertbl
                 SET NameL = '$strFName2', NameF ='$strLName2'
                 WHERE custID = '$updateID2' ";
         mysqli_query($link, $sql) or die('Insert error: ' . mysqli_error($link));
      }
引用变量
$strFName2
$strLName2
,这两个变量是仅按条件填充的变量

       //Populate Textbox  
      if (!empty($updateID)) {
         $sql = "SELECT NameL, NameF
                 FROM customertbl
                 WHERE custID  = '$updateID'";
          mysqli_query($link, $sql) or die('Delete error: ' . mysqli_error($link));

         $result = mysqli_query($link, $sql)
              or die('SQL syntax error: ' . mysqli_error($link));
         $row = mysqli_fetch_array($result); 
         $strFName2 = $row[NameF];
         $strLName2= $row[NameL];
      }
由于变量
$strFName2
$strLName2
更新
SQL查询期间未定义,因此您无法看到所需的结果

查询应该引用
$nameF
$nameL
,因为这些变量总是定义的(不包含在条件中),表单输入在名称属性中使用
nameF
nameL

$sql = "UPDATE customertbl
    SET NameL = '$nameF', NameF ='$nameL'
    WHERE custID = '$updateID2';";
您还需要修复
DELETE
查询以引用列
custID
,而不是
custID
,因为您的模式似乎使用了前者

$sql = "Delete from customertbl WHERE custID= '$deleteID' ";

请告诉我们您得到的错误以及它属于代码的哪一行。这让社区更容易帮助你。我没有犯错误,我只是没有得到我想要的结果。当我单击更新超链接时,它会填充文本框。您应该能够编辑文本框,然后单击提交。它更新了数据库字段,解决了这些问题。但是我仍然有一个问题。每次我更新时,它都会将其分配给一个新id。它不会更新我想要的id字段to@TimothyWong这是因为
INSERT
代码块将始终运行,因为它不包含在限制它仅在
$updateID2
为空时运行的条件中。