同様に、私はこのinformationを含む行を持っています。非表示の列は、それが研究で見えるか(0)、そうでないか(1)を決定します。データベースに別の行と同じ情報を挿入する方法はありますか?
hidden number =1
の行と同じ情報(特に同じ名前)を持つ新しい行を挿入したいとします。しかし、今、hidden number = 1
(IT-Melanie
のような)のコンピュータの同じ情報を挿入すると、すでにそこにある行が「更新」されるだけで、新しいものは作成されません! (IT-Melanie
のような)同じ名前の新しい行を作成する可能性はありますが、この更新なしで既存の行を挿入するにはいくつかの異なる情報がありますか?データベース内の行を複製する場合と同じですが、すべての情報が同じです。
私がここで見つけたと思うのは、JavaScriptの行が重複していると思います。私は2つの行を似たような時間情報を複数回挿入しようとすると、データベースに既に存在する行の更新だけが成功することはありません。
要約:データベースに既に存在するものと同じ名前の新しいコンピュータを挿入しますが、古いコンピュータはhidden number = 1
と新しいコンピュータ= 0
を挿入します。
質問:古い行を編集せずに同じcomputer_name
の2行を追加できますか?
例:
古い行:Computer_name
= It_melanie
xxxxx-xxxxxx-xxxxx-xxxxxx-xxxxx
product_number
= [...] hidden
= 1
新しい行:Computer_name
= It_melanie
xxxxx-xxxxxx-xxxxx-xxxxxx-xxxxx
product_number
= [...] hidden
= 0
//Get informations in the form and insert it into db
$location=$_GET['location'];
$dept=$_GET['dept'];
$jack=$_GET['jack'];
$computername=$_GET['computername'];
$productkey=$_GET['productkey'];
$model=$_GET['model'];
$vendor=$_GET['vendor'];
$serialnumber=$_GET['serialnumber'];
$macaddress=$_GET['macaddress'];
$status=$_GET['status'];
$starphone=$_GET['starphone'];
$intid=$_GET['intid'];
$did=$_GET['did'];
$software=$_GET['software'];
$query='insert into department(
department,
location_id)values(
"'.$dept.'",
"'.$location.'")';
if(valid_query($query)){
$message .= "Enregistrement a ete mis a jour<br>";
}else{
$message .= "Enregistrement n a pas ete mis a jour! S'il vous plait contacter le Departement TI IOS<br>";
}
$query='insert into computer(
computer_name,
product_key,
model,
serial_number,
status_id,
starphone,
inst_id,
did,
macaddress,
software_id,
hidden
)values(
"'.$computername.'",
"'.$productkey.'",
"'.$model.'",
"'.$serialnumber.'",
"'.$status.'",
"'.$starphone.'",
"'.$intid.'",
"'.$did.'",
"'.$macaddress.'",
"'.$software.'",
0
)';
if(valid_query($query)){
$message .= "Enregistrement a ete mis a jour<br>";
}else{
$message .= "Enregistrement n a pas ete mis a jour! S'il vous plait contacter le Departement TI IOS<br>";
}
$query="select dept_id from department where department='$dept' and location_id='$location'";
$deptid=select_query($query);
$query="select computer_id from computer where computer_name ='$computername'";
$computerid=select_query($query);
$query='insert into jack(
jack_number,
dept_id,
location_id,
computer_id
)values(
"'.$jack.'",
"'.$deptid.'",
"'.$location.'",
"'.$computerid.'")';
if(valid_query($query)){
$message .= "Enregistrement a ete mis a jour<br>";
}else{
$message .= "Enregistrement n a pas ete mis a jour! S'il vous plait contacter le Departement TI IOS<br>";
}
$query='insert into computer_vendor(
computer_id,
vendor_id
)values(
"'.$computerid.'",
"'.$vendor.'")';
if(valid_query($query)){
$message .= "Enregistrement a ete mis a jour<br>";
}else{
$message .= "Enregistrement n a pas ete mis a jour! S'il vous plait contacter le Departement TI IOS<br>";
}
$location="";
$dept="";
$jack="";
$computername="";
$productkey="";
$model="";
$vendor="";
$serialnumber="";
$macaddress="";
$status="";
$starphone="";
$intid="";
$did="";
テーブル内の各列から一意の制約を削除する必要があります。これを追加することができます。 –
コードに問題はありません。テーブルに問題があります。テーブルの一意の制約をチェックし、一意の主キーを確認します。 '隠された'がキーの一部であることを保証してください。あなたのコードがプライマリキー重複挿入の更新を引き起こしていることも間違いです。私はそれがちょうど誤りと思うだろう。 UPDATE、DELETE、またはupsertロジックを示唆する他のSQLは表示されません。 – JNevill
私はそれがちょうど上記の新しい画像と関連していると思いますか? (ユニークキー) – Nexis