我的PHP数据库更新查询出现问题

时间:2019-01-30 10:02:42

标签: php jquery database mysqli

一些介绍

因此,我对这种工作还是陌生的,我正在为管理员创建一个页面,其中有关于员工,项目等的数据库信息,这些信息组织成表格,并带有按钮,以使>>> Delete < / strong>或 UPDATE 用户(在这种情况下)将无法使用更新功能!

因此2个“按钮”实际上是使用<a>onclick来调用myAjaxDeletemyAjaxAdd(我对ajax btw并不熟悉)来调用php文件,从hidden input字段中传入数据 删除按钮(或标签)似乎工作正常,但更新不会 我尝试更改我的sqli查询并在signle字段上进行测试,但没有成功

updateDbUt.php:

<?php 
    $conn = new mysqli("localhost", "root", "","gestion");
    if($_POST['action'] == 'call'){
        $id=$_POST['name'];

        $np=unserialize($_POST['np']);
        $adr=unserialize($_POST['adr']);
        $ntel=unserialize($_POST['tel']);
        $cin=unserialize($_POST['cin']);
        $pass=unserialize($_POST['pass']);
        $idEquipe=unserialize($_POST['idEquipe']);
        $mail=unserialize($_POST['mail']);
        $role=unserialize($_POST['role']);

        $q = "UPDATE `gestion`.`utilisateurs` SET `np` = '$np', `adr` ='$adr', `numTel` = '$ntel', `cin` = '$cin', `pass` = '$^pass', `idEquipe` = 'idEquipe', `adrElectronique` = '$mail', `role` = '$role' WHERE `utilisateurs`.`id` = '$id'";
        $r=mysqli_query($conn, $q);
        if ( !(mysqli_affected_rows($conn)==0 ) ) {

            echo "updated";
        } else {

        die("problem updating ").mysqli_error($conn);
        }
    }
 ?>

脚本:

function myAjaxAdd() {
      $.ajax({
           method:'POST',
           url: 'updateDbUt.php',
           data:{
              action:'call',
              name: $('#id').serialize(),
              np: $('#np').serialize(),
              adr: $('#adr').serialize(),
              tel: $('#tel').serialize(),
              cin: $('#cin').serialize(),
              mail: $('#mail').serialize(),
              idEquipe: $('#idEquipe').serialize(),
              pass: $('#pass').serialize(),
              role: $('#role').serialize(),
            },
           success:function(html) {
             alert(html);
           }

      });
 }

</script>

这是HTML代码,以防万一:

  <form method="POST">
            <table class="table table-bordered">
                <thead>
                    <tr>
                        <th>Nom Prenom</th>
                        <th>Adresse</th>
                        <th>N°Tel</th>
                        <th>Cin</th>
                        <th>ID Utilisateur</th>
                        <th>ID Equipe</th>
                        <th>adresse electronique</th>
                        <th>pass</th>
                        <th>role</th>
                        <th>actions </th>
                      </tr>
                </thead>
                <tbody>
                  <?php

                          $sql="SELECT * FROM utilisateurs";
                          $q=mysqli_query($conn,$sql);
                            while ($t=mysqli_fetch_assoc($q)) {

                          ?>
                          <tr>
                            <td> <?php echo $t['np']; $np=$t['np']; ?> <input type="hidden" name="np" id="np" <?php echo "value='".$np."'"; ?> > </td>
                            <td> <?php echo $t['adr'];  $adr=$t['adr'];?> <input type="hidden" name="adr" id="adr" <?php echo "value='".$adr."'"; ?> ></td>
                            <td> <?php echo $t['numTel']; $numTel=$t['numTel']; ?> <input type="hidden" name="tel" id="tel" <?php echo "value='".$numTel."'"; ?> ></td>
                            <td> <?php echo $t['cin']; $cin=$t['cin']; ?> <input type="hidden" name="cin" id="cin" <?php echo "value='".$cin."'"; ?> ></td>

                            <td> <?php echo $t['id'];  $id=$t['id'];?> <input type="hidden" name="id" id="id" <?php echo "value='".$id."'" ?>></td>

                            <td> <?php echo $t['idEquipe'];  $idEquipe=$t['idEquipe'];?> <input type="hidden" name="idEquipe" id="idEquipe" <?php echo "value='".$idEquipe."'"; ?> ></td>
                            <td> <?php echo $t['adrElectronique'];  $mail=$t['adrElectronique'];?> <input type="hidden" name="mail" id="mail" <?php echo "value='".$mail."'"; ?> ></td>
                             <td> <?php echo $t['pass'];  $pass=$t['pass']; ?> <input type="hidden" name="pass" id="pass" <?php echo "value='".$pass."'"; ?> ></td>
                             <td> <?php echo $t['role'];  $role=$t['role']; ?> <input type="hidden" name="role" id="role" <?php echo "value='".$role."'"; ?> ></td>

                            <td>
                              <a class="add" title="Add" data-toggle="tooltip" onclick="myAjaxAdd()">
                                <i class="material-icons">&#xE03B;</i>
                              </a>
                              <a class="edit" title="Edit" data-toggle="tooltip" >
                                <i class="material-icons">&#xE254;</i>
                              </a>
                              <a class="delete" title="Delete" data-toggle="tooltip" onclick="myAjaxDelete()">
                                <i class="material-icons">&#xE872;</i>
                              </a>
                            </td>
                        </td>
                          </tr>
                          <?php
                            }
                           ?>
                </tbody>
            </table>

最终结果是它警告我的更新错误消息 它应该更新数据库 请我需要帮助

也:我正在使用wampserver进行测试

1 个答案:

答案 0 :(得分:0)

首先,您需要修复查询,因为查询错误

==>

您传递的是$ ^ pass而不是$ pass和idEquipe而不是$ idEquipe  正确的查询应该是

$q = "UPDATE `gestion`.`utilisateurs` SET `np` = '$np', `adr` ='$adr', `numTel` = '$ntel', `cin` = '$cin', `pass` = '$^pass', `idEquipe` = 'idEquipe', `adrElectronique` = '$mail', `role` = '$role' WHERE `utilisateurs`.`id` = '$id'";

第二次,我建议您显示查询并在phpmyadmin中执行,因为您正在使用wampserver