简体   繁体   中英

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. id_drugstore is a foreign key into the supplier table and can be chosen form a drop-down list ( drop-down is working perfect ). Another date is filled in by the user, except 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']'
  • All of your $_POST variables in that string will never get replaced, put them in curly brackts: {$_POST['name_suplier']}
  • Make sure you have no typos in there name_suplier vs. town_supplier
  • Missing a closing bracket at the end of the query AND as a closing bracket for mysql_query()

Side note: Shouldn't there be a list of fields in that INSERT too?

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

$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);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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