簡體   English   中英

如何同時將外鍵設置為與另一個表的主鍵相同?

[英]How do I set the foreign key same as primary key of another table concurrently?

我有兩張桌子, ordineprodotto ordineordine_id作為主鍵(自動遞增),cliente_nome,scadenza,stato。

prodottoprodotto_id作為主鍵(自動遞增), ordine_id作為外鍵,prodotto_tipo,prodotto_imballaggio,prodotto_quantita。

我無法弄清楚如何同時將 prodotto 的外鍵ordine_id設置為與ordine_id主鍵prodotto ordine

我從用戶輸入中收集數據並將 POST 與 Ajax 一起使用

$('#add').click(function(){
   var html = '<tr>';
   html += '<td  id="data1"></td>';
   html += '<td contenteditable id="data2"></td>';
   html += '<td contenteditable id="data3"></td>';
   html += '<td contenteditable id="data4"></td>';
   html += '<td contenteditable id="data5"></td>';
   html += '<td contenteditable id="data6"></td>';
   html += '<td  id="data7"></td>';
   html += '<td><button type="button" name="insert" id="insert" class="btn btn-success btn-xs">Inserisci</button></td>';
   html += '</tr>';
   $('#user_data tbody').prepend(html);
  });

  $(document).on('click', '#insert', function(){

   var cliente_nome = $('#data2').text();
   var prodotto_tipo = $('#data3').text();
   var prodotto_imballaggio = $('#data4').text();
   var prodotto_quantitá = $('#data5').text();
   var scadenza = $('#data6').text();

   if(cliente_nome != '' && prodotto_tipo != '' && prodotto_imballaggio != '' && prodotto_quantitá != '' && scadenza != '')
   {
    $.ajax({
     url:"insert.php",
     method:"POST",
     data:{cliente_nome:cliente_nome, prodotto_tipo:prodotto_tipo, prodotto_imballaggio:prodotto_imballaggio, prodotto_quantitá:prodotto_quantitá, scadenza:scadenza},
     success:function(data)
     {
      $('#alert_message').html('<div class="alert alert-success">'+data+'</div>');
      $('#user_data').DataTable().destroy();
      fetch_data();
     }
    });
    setInterval(function(){
     $('#alert_message').html('');
    }, 5000);
   }
   else
   {
    alert("Tutti i campi sono richiesti");
   }
  });

這是我的插入代碼:

<?php
$connect = mysqli_connect("localhost", "buyme", "", "my_buyme");
if(isset($_POST["cliente_nome"], $_POST["scadenza"])){
$cliente_nome = mysqli_real_escape_string($connect, $_POST["cliente_nome"]);
$scadenza = mysqli_real_escape_string($connect, $_POST["scadenza"]);
$query = "INSERT INTO ordine (cliente_nome, scadenza, stato) VALUES('$cliente_nome', '$scadenza', 'Da spedire')";
if(mysqli_query($connect, $query))
{
 echo 'Ordine Inserito';
}
}
?>

<?php
$connect = mysqli_connect("localhost", "buyme", "", "my_buyme");
if(isset($_POST["prodotto_tipo"], $_POST["prodotto_imballaggio"])){
$prodotto_tipo  = mysqli_real_escape_string($connect, $_POST["cliente_nome"]);
$prodotto_imballaggio = mysqli_real_escape_string($connect, $_POST["scadenza"]);
$prodotto_quantita = mysqli_real_escape_string($connect, $_POST["cliente_nome"]);

$query = "INSERT INTO prodotto (prodotto_tipo, prodotto_imballaggio, prodotto_quantitá) VALUES('$prodotto_tipo', '$prodotto_imballaggio', '$prodotto_quantita')";
if(mysqli_query($connect, $query))
{
 echo 'Ordine Inserito';
}
}
?>

我使用了 mysqli_insert_id() function。它返回由查詢(通常是 INSERT)在具有 AUTO_INCREMENT 屬性的列的表上生成的 ID。 謝謝!

Function mysqli_insert_id()返回當前連接最后插入的主鍵。

所以它應該是這樣的

$ordine_id = mysqli_insert_id($connect);

此外,您應該使用准備好的語句,甚至刪除 mysqli 並使用 PDO。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM