Ошибка обновления записи: у вас есть ошибка в вашем синтаксисе SQL, как я могу ее решить? - PullRequest
0 голосов
/ 28 ноября 2018

Я новичок в php и mysql.

Я пытаюсь обновить запись в моей базе данных из HTML-формы.

У меня есть страница поиска, которая работает, и страница редактирования с$ _GET в ссылке, где находится идентификатор элемента, который я должен отредактировать в базе данных.

все рабочие формы показывают мне правильные данные, я могу редактировать их в форме.но когда я нажимаю кнопку редактирования, я получаю сообщение об ошибке:

Error updating record: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1

мой php-код страницы редактирования такой:

<?php
require('includes\dbconn.php');
require('includes\dbfunction.php');
session_start();


if(isset($_SESSION["username"])){
  include('includes\theme\head.php');
  include('includes\theme\topbar.php');
  include('includes\theme\sidebar.php');
?>

<!-- !PAGE CONTENT! -->
<div class="w3-main" style="margin-left:300px;margin-top:43px;">

  <div class="w3-container">
    <div class="w3-row">
      <div class="w3-col s12 l3">
        <br>
        <?php
        //RICEVI DATI ARTICOLO DAL DATABASE
        if(isset($_GET['art_id'])){
          $sql = "SELECT * FROM articoli WHERE id =". $_GET['art_id'];
          $result = $conn->query($sql);
          $row = $result->fetch_assoc();
          }

        //AGGIORNA DATI ARTICOLO NEL DATABASE
        if(isset($_POST['btn-aggiorna'])){
          $codiceArt = $_POST['codicearticolo'];
          $descrizioneArt = $_POST['nomearticolo'];
          $barcodeArt = $_POST['barcode'];
          $prezzoAcquistoArt = $_POST['prezzoacquisto'];
          $prezzoVenditaArt = $_POST['prezzovendita'];
          $quantitaArt = $_POST['quantita'];
          $scontoArt = $_POST['sconto'];

          $update = "
UPDATE articoli 
   SET codiceArticolo='$codiceArt'
     , nomeArticolo='$descrizioneArt'
     , barcode='$barcodeArt'
     , prezzoAcquisto='$prezzoAcquistoArt'
     , prezzoVendita='$prezzoVenditaArt'
     , quantita='$quantitaArt'
     , scontoPercentuale='$scontoArt' 
 WHERE id =". $_GET['art_id'];
          if ($conn->query($update) === TRUE) {
            ?>
            <script type="text/javascript">
              window.location.href = 'articolomodificato.php';
            </script>
            <?php
          } else {
            echo "Error updating record: " . $conn->error;
          }


        }

         ?>
      </div>
      <div class="w3-col s12 l5">

         <form class="w3-container" action="modificaarticolo.php" method="post">
           <label class="w3-text-blue"><b>Codice articolo:</b></label>
           <input class="w3-input w3-border" name="codicearticolo" type="text" value="<?php echo $row['codiceArticolo'];?>"><br>
           <label class="w3-text-blue"><b>Descrizione articolo:</b></label>
           <input class="w3-input w3-border" name="nomearticolo" type="text" value="<?php echo $row['nomeArticolo']; ?>"><br>
           <label class="w3-text-blue"><b>Barcode:</b></label>
           <input class="w3-input w3-border" name="barcode" type="text" value="<?php echo $row['barcode']; ?>"><br>
           <label class="w3-text-blue"><b>Prezzo Acquisto:</b></label>
           <input class="w3-input w3-border" name="prezzoacquisto" type="text" value="<?php echo $row['prezzoAcquisto']; ?>"><br>
           <label class="w3-text-blue"><b>Prezzo Vendita:</b></label>
           <input class="w3-input w3-border" name="prezzovendita" type="text" value="<?php echo $row['prezzoVendita']; ?>"><br>
           <label class="w3-text-blue"><b>Quantità:</b></label>
           <input class="w3-input w3-border" name="quantita" type="text" value="<?php echo $row['quantita']; ?>"><br>
           <label class="w3-text-blue"><b>Sconto %:</b></label>
           <input class="w3-input w3-border" name="sconto" type="text" value="<?php echo $row['scontoPercentuale']; ?>"><br>
           <button class="w3-btn w3-blue" name="btn-aggiorna" type="submit">Modifica</button>
           <a class="w3-btn w3-blue" href="/bk2/magazzino.php">Indietro<a>
         </form>

      </div>
      <div class="w3-col s12 l3">
        <br>
      </div>
    </div>




  </div>
</div>











<?php
  include('includes\theme\script.php');
  ?>

</body>
</html>
<?php
}
else{
  header("location: accessonegato.php");
}
?>

я знаю из сообщения об ошибке ошибкав моем коде запроса, но я не понимаю, где.я несколько раз пытался изменить положение & _GET ['art_id'] в двойных кавычках запроса и из него, но отмечая работу.

1 Ответ

0 голосов
/ 28 ноября 2018

Вам необходимо добавить идентификатор в форму при вызове страницы, иначе он не будет передан в

<form class="w3-container" action="modificaarticolo.php?art_id=<?php echo $row['id'];?>" method="post">

Возможно, вам придется изменить $row['id'], чтобы иметь правильное имя столбца.

Хотя это вызовет небольшую проблему, поскольку данные выбираются в

//RICEVI DATI ARTICOLO DAL DATABASE
if(isset($_GET['art_id'])){

перед обновлением, поэтому вам может потребоваться переместить этот код под обновлением, чтобы обеспечить получение последних данных.

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