[英]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.