简体   繁体   English

尝试将下拉列表中的数据作为外键插入另一个表中。 数据未插入

[英]Trying to insert data from a drop-down list as a foreign key in another table. Data not inserted

I been trying to figure out where my mistake is without success. 我一直试图找出我的错误在哪里没有成功。 I get no reported errors. 我没有报告任何错误。 I want to insert data into the supplier table from a PHP form. 我想将数据从PHP表单插入供应商表。 id_drugstore is a foreign key into the supplier table and can be chosen form a drop-down list ( drop-down is working perfect ). id_drugstoresupplier表中的外键,可以从下拉列表中进行选择( 下拉列表很完美 )。 Another date is filled in by the user, except id_supplier . id_supplier之外,其他日期由用户id_supplier

<?
   error_reporting(-1);
   $conn = mysqli_connect("localhost", "root", "", "retete");
   if(mysqli_connect_errno())
   {
    echo "Nu ma pot conecta la baza de date medical:" .mysqli_connect_error(); 
   }
    if(isset($_POST['submit']){

    $id_drugstore=$_POST['id_drugstore'];
    $name_suplier=$_POST['name_suplier'];
    $country_supplier=$_POST['county_supplier'];
    $county_supplier=$_POST['county_supplier'];
    $town_supplier=$_POST['town_supplier'];
    $street_supplier=$_POST['street_supplier'];
    $bank_suplier=$_POST['bank_suplier'];
    $no_cont_Bank=$_POST['$no_cont_Bank'];

    $qry=mysqli_query("INSERT INTO supplier `VALUES('sss','%$id_drugstore%',$_POST['name_suplier']','$_POST['county_supplier']','$_POST['county_supplier']','$_POST['town_supplier']','$_POST['street_supplier']','$_POST['bank_suplier']','$_POST['$no_cont_Bank']";`
    $inserted=($qry,$conn);
    if($inserted){
    echo "Datele au fost inserate cu suucess";
    }else{
    echo "datele nu au putut fi salvate in baza de date".mysqli_error($conn);
    }
    }
    mysqli_close($conn);
    }
    ?>

    <body>
    <div class="jumbotron">
    <div class="container">
    <h4 class="display-5">Adaugare Furnizori in baza de date</h4>
    <p class="lead">Completati formularul de mai jos</p>
    </div>
    </div>
    <form action="AdaugareFurnizori.php" method="POST">
    <div class="form-row">
    <div class="col-md-2 mb-3">
    <label for="validationServer01">Farmacie</label>
    <select name="name_drugstore">
    <option>Selecteaza farmacie</option>
    <?php
    $conn = mysqli_connect("localhost", "root", "", "retete");
    if(mysqli_connect_errno()){
    echo "Nu ma pot conecta la baza de date medical:".mysqli_connect_error(); 
    }           
    $q=mysqli_query($conn,"SELECT * FROM drugstore")or die(mysqli_error());

    $c=mysqli_num_rows($q);
    if($c==0){
    echo 'Nu exista farmacie in baza de date';
    }else{
    while($row=mysqli_fetch_array($q)){
    $id_drugstore=$row['id_drugstore'];
    $name_drugstore=$row['name_drugstore'];
    echo "<option value='$id_drugstore'>$id_drugstore/$name_drugstore<option>
    }
    }
    mysqli_close($conn);
    ?>
    </select>
    </div>
    </div>
    <div class="form-row">
    <div class="col-md-4 mb-3">
    <label for="validationServer01">Denumire Furnizori</label>
    <input type="text" name="name_suplier" class="form-control is-valid" id = "validationServer01" placeholder="Denumire Furnizor" required>
    </div>
    </div>
    <div class="form-row">
    <div class="col-md-2 mb-3">
    <label for="validationServer02">Tara</label>
    <input type="text" name="country_supplier" class="form-control is-valid" id="validationServer02" placeholder="Tara" required>
    <div class="invalid-feedback">
    Va rugam sa introduceti tara.
    </div>
    </div>
    <div class="col-md-2 mb-3">
    <label for="validationServer03">Judet</label>
    <input type="text" name="county_supplier" class="form-control is-valid" id="validationServer03" placeholder="Judet" required>
    <div class="invalid-feedback">
    Va rugam sa introduceti judetul.
    </div>
    </div>
    <div class="col-md-2 mb-3">
    <label for="validationServer04">Oras</label>
    <input type="text" name="town_supplier"class="form-control is-valid" id="validationServer04" placeholder="Oras" required>
    <div class="invalid-feedback">
    Va rugam sa introduceti orasul.
    </div>
    </div>
    <div class="col-md-2 mb-3">
    <label for="validationServer05">Strada si numar</label>
    <input type="text" name="street_supplier" class="form-control is-valid" id="validationServer05" placeholder="Strada" required>
    <div class="invalid-feedback">
    Va rugam sa introduceti strada.
    </div>
    </div>
    <div class="col-md-2 mb-3">
    <label for="validationServer04">Banca</label>
    <input type="text" name="bank_suplier"class="form-control is-valid" id="validationServer04" placeholder="Denumire Banca" required>
    <div class="invalid-feedback">
    Va rugam sa introduceti banca.
    </div>
    </div>
    <div class="col-md-2 mb-3">
    <label for="validationServer05">Cont</label>
    <input type="text" name="no_cont_Bank" class="form-control is-valid" id="validationServer05" placeholder="Numar Cont" required>
    <div class="invalid-feedback">
    Va rugam sa introduceti numarul contului.
    </div>
    </div>
    <div class="submit">
    <button class="btn btn-primary" type="submit">Submit form</button>
    </div>
    </div>
    </form>

    </body>
    </html> 

That query looks strange: 该查询看起来很奇怪:

$qry=mysqli_query("INSERT INTO supplier `VALUES('sss','%$id_drugstore%',$_POST['name_suplier']','$_POST['county_supplier']','$_POST['county_supplier']','$_POST['town_supplier']','$_POST['street_supplier']','$_POST['bank_suplier']','$_POST['$no_cont_Bank']";`
  • Remove the backticks ` 删除反引号`
  • Missing an opening ' before $_POST['name_suplier']' 缺少一个左'$_POST['name_suplier']'
  • All of your $_POST variables in that string will never get replaced, put them in curly brackts: {$_POST['name_suplier']} 该字符串中的所有$_POST变量都将永远不会被替换,将它们放在花括号中: {$_POST['name_suplier']}
  • Make sure you have no typos in there name_suplier vs. town_supplier 确保那里没有错别字name_supliertown_supplier
  • Missing a closing bracket at the end of the query AND as a closing bracket for mysql_query() 在查询末尾缺少右括号,并且作为mysql_query()括号

Side note: Shouldn't there be a list of fields in that INSERT too? 旁注:在该INSERT中也应该没有字段列表吗?

your code should be. 您的代码应该是。 If your supplier table have all this field which you are going to insert then this will works fine but if u skip any of the field then mysqli_query does not work 如果您的供应商表具有要插入的所有此字段,则可以正常工作,但是如果您跳过任何字段,则mysqli_query不起作用

$qry="INSERT INTO supplier `VALUES('sss','%$id_drugstore%',$_POST['name_suplier']','$_POST['county_supplier']','$_POST['county_supplier']','$_POST['town_supplier']','$_POST['street_supplier']','$_POST['bank_suplier']','$_POST['$no_cont_Bank']')";

$inserted=mysqli_query($qry,$conn);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM