[英]How to prevent the same ID row to display from Table1 if already exist in Table2? PHP
我有兩個表(Table1和Table2)。 表1在Page1上顯示數據,表2在Page2上顯示數據。 當用戶單擊按鈕時,我的腳本將從Table1發送到Table2並發送相應的ID。 因此,我想檢查並防止顯示Table1中已經存在於Table2中的行。
表1中的ID為“ inbox_id”,並作為參考進入表2。
這是PHP代碼
$get_inbox = "select * from inbox";
$run_inbox = mysqli_query($conn, $get_inbox);
while($inbox_row = mysqli_fetch_array($run_inbox)){
$inbox_id = $inbox_row['inbox_id'];
$inbox_icon = $inbox_row['inbox_icon'];
$inbox_fullname = $inbox_row['inbox_fullname'];
$inbox_email = $inbox_row['inbox_email'];
$inbox_phone = $inbox_row['inbox_phone'];
$inbox_subject = $inbox_row['inbox_subject'];
$inbox_url = $inbox_row['inbox_url'];
$inbox_message = $inbox_row['inbox_message'];
$inbox_icon = $inbox_row['inbox_icon'];
$inbox_day = $inbox_row['inbox_day'];
$inbox_date = $inbox_row['inbox_date'];
$inbox_year = $inbox_row['inbox_year'];
$inbox_time = $inbox_row['inbox_time'];
$inbox_timezone = $inbox_row['inbox_timezone'];
{
這是Table1和Table2的兩個屏幕截圖。
表格1
表2
選擇:
SELECT
inbox.*
FROM
inbox
LEFT JOIN trash
ON inbox.inbox_id = trash.inbox_id
WHERE
trash.trash_id IS NULL
SELECT
inbox.*
FROM
inbox
WHERE
inbox_id NOT IN (
SELECT inbox_id
FROM trash
WHERE 1 -- something here?
)
SELECT
inbox.*
FROM
inbox
WHERE
NOT EXISTS (
SELECT 1
FROM trash
WHERE trash.inbox_id = inbox.inbox_id
)
一些輕松的閱讀可以幫助您做出決定: http : //explainextended.com/2009/09/18/not-in-vs-not-exists-vs-left-join-is-null-mysql/
此外,如果希望從數據庫返回的所有字段都使用相同名稱的變量,則可以節省一些空間/精力,您可以將其替換為:
while($inbox_row = mysqli_fetch_array($run_inbox)){
$inbox_id = $inbox_row['inbox_id'];
$inbox_icon = $inbox_row['inbox_icon'];
$inbox_fullname = $inbox_row['inbox_fullname'];
$inbox_email = $inbox_row['inbox_email'];
$inbox_phone = $inbox_row['inbox_phone'];
$inbox_subject = $inbox_row['inbox_subject'];
$inbox_url = $inbox_row['inbox_url'];
$inbox_message = $inbox_row['inbox_message'];
$inbox_icon = $inbox_row['inbox_icon'];
$inbox_day = $inbox_row['inbox_day'];
$inbox_date = $inbox_row['inbox_date'];
$inbox_year = $inbox_row['inbox_year'];
$inbox_time = $inbox_row['inbox_time'];
$inbox_timezone = $inbox_row['inbox_timezone'];
{
同
while($inbox_row = mysqli_fetch_array($run_inbox)){
extract($run_inbox);
{
在Table2中繪制表格時,將inbox_id存儲為表格行的ID。 因此,當您想在table2中插入數據時,請使用inbox_id通過jquery檢查數據是否存在,如果不存在,則在表末尾添加該行。
As I gone through your question. I will request you to put screen sort of your Table Structure(Table 1, Table 2) with records of possible. So will easy for any one to answer your query. Looking forward to your response. Try to execute this code in your page. I hope this will work.
$get_inbox = "select * from inbox where inbox_id not in($clicked_id)";
$run_inbox = mysqli_query($conn, $get_inbox);
while ($inbox_row = mysqli_fetch_array($run_inbox)) {
$inbox_id = $inbox_row['inbox_id'];
$inbox_icon = $inbox_row['inbox_icon'];
$inbox_fullname = $inbox_row['inbox_fullname'];
$inbox_email = $inbox_row['inbox_email'];
$inbox_phone = $inbox_row['inbox_phone'];
$inbox_subject = $inbox_row['inbox_subject'];
$inbox_url = $inbox_row['inbox_url'];
$inbox_message = $inbox_row['inbox_message'];
$inbox_day = $inbox_row['inbox_day'];
$inbox_date = $inbox_row['inbox_date'];
$inbox_year = $inbox_row['inbox_year'];
$inbox_time = $inbox_row['inbox_time'];
$inbox_timezone = $inbox_row['inbox_timezone'];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.