У меня проблема с запросом UPDATE базы данных в PHP - PullRequest
0 голосов
/ 30 января 2019

немного вступления

Так что я новичок в этом виде работы, и я делаю на странице для администраторов, где есть информация базы данных о сотрудниках, проектах ... и т.д., организованная в таблицы с кнопками>>> >>> 1003 * DELETE или UPDATE пользователю (в данном случае) функция обновления не будет работать !!

, поэтому 2 "кнопки" фактически используют <a> и onclick для вызова myAjaxDelete или myAjaxAdd (я не очень хорошо знаком с ajax btw) для вызова php-файла, передавая данные из полей hidden input в кнопку DELETE (или тег), кажется, работает просто отлично, но ОБНОВЛЕНИЕ я не пытался изменить свой запрос 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>

окончательный результат - предупреждение о ошибке обновления msg it shoudldВместо этого я обновил базу данных, пожалуйста, мне нужна помощь

Также: я тестирую с использованием wampserver

1 Ответ

0 голосов
/ 30 января 2019

В качестве первого шага вам нужно исправить ваш запрос, потому что он неправильный

$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'";

вы передаете $ ^ pass не $ pass и idEquipe not $ 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...