php форма не вставляется в базу данных sql - PullRequest
0 голосов
/ 29 апреля 2018

Я пытаюсь войти в php и mysql, я создал эту форму для вставки данных в мою базу данных, однако после заполнения формы никакие данные не вставляются в базу данных sql. информация должна быть вставлена ​​в таблицу с несколькими иностранными ключами. При отладке sql я получаю сообщение об ошибке: плохой запрос: INSERT INTO bud ('beløp, idkjoper, idgjenstand') VALUES ('7500', '3', '1'), которые являются правильными значениями.

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

Если бы вы могли уделить минутку своего дня, я был бы очень признателен :) Вот сегмент sql.

<?php
$tilkobling=mysqli_connect ("localhost","root","root", "bruktbutikk");
$sql="select navn,etternavn from kjøper";
$datasett = $tilkobling->query($sql);


  $conn=mysqli_connect ("localhost","root","root", "bruktbutikk");
  $sql1="select beskrivelse,idgjenstand from gjenstand";
  $datasett1=$conn->query($sql1);

   if(isset($_POST["submit"]))
  {
   $sql =sprintf("INSERT INTO bud(beløp,idkjoper,idgjenstand) VALUES 
   (%s,%s,%s)",

             $tilkobling->real_escape_string($_POST["lstnavn"]),
             $tilkobling->real_escape_string($_POST["lstbeskrivelse"]),
             $tilkobling->real_escape_string($_POST["txtbeløp"])


     );

     $tilkobling->query($sql);

header("Location: budok.php");
  }

   ?>

вот моя форма:

     <main>
        <h1> Gi bud</h1>
<br/>

<form method="post">

    <label for="lstnavn">Budgiver:</label>
    <select name="lstnavn" id="lstnavn">
     <?php while($rad=mysqli_fetch_array($datasett)) { ?>
     <option value="<?php echo $rad["idkjoper"]; ?>"> 
      <?php echo $rad["navn"], ($rad['etternavn']); ?>
         </option>}
        <br><br>
     <?php } ?> <br><br>
     </select>

    <br>

    <form method="post">
    <div>
    <label for="lstbeskrivelse">gjenstand:</label>
    <select name="lstbeskrivelse" id="lstbeskrivelse">
     <?php while($rad=mysqli_fetch_array($datasett1)) { ?>
         <option value="<?php echo $rad["idgjenstand"]; ?>"> <?php echo 
      $rad["beskrivelse"]; ?>
         </option>}
        <br><br>
     <?php } ?> <br><br>
     </select>

    <br>

     <label for="txtbeløp">beløp:</label>
    <input type="text" name="txtbeløp" id="txtbeløp" 
      placeholder="beløp" /> <br/><br>





    <br/>
    <button type="submit" name="submit">Publiser</button>
    </form>


   </main>

1 Ответ

0 голосов
/ 29 апреля 2018

Ваши ошибки:

  1. Ваш запрос содержит 3 имени столбца, ваши значения - часть 4 %s
  2. real_escape_string() не добавляет кавычки в строку, используйте ".. VALUES('%s', '%s', '%s')" или посмотрите подготовленные операторы

Как отлаживать:

$tilkobling->query() возвращает false при ошибке, используйте var_dump($tilkobling->error) для отображения сообщения об ошибке, когда это так, и, конечно, var_dump($sql), чтобы увидеть, что действительно отправляется в MySQL.

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