Foreach重复结果(2个数据库)(有办法排除重复吗?)



我在WordPress、MySQL和PHP中工作。一旦一个项目被添加到";读取";表;项目";表数据重复(每次我添加多个要检查的项时,这些项都重复。因此,如果read中有4个项,它就会相乘(。我似乎不明白它为什么要这么做。我的代码和数据库信息如下:

$GLOBALS['a']是一个变量,用户可以将其放入快捷代码中,该快捷代码根据项目所在组(列表(的ID对项目进行排序。

代码

<div class="user-read">
<?php 
global $wpdb;
$q2_read = $wpdb->prefix.'plugin_read';
$q2_item = $wpdb->prefix.'plugin_items';
$q2_results = $wpdb->get_results("SELECT $q2_item.id, $q2_item.listID, $q2_item.itemDESC, $q2_item.creator, $q2_item.title, $q2_read.userID, $q2_read.itemID, $q2_read.list FROM $q2_item INNER JOIN $q2_read ON $q2_item.id != $q2_read.itemID");
$new_array = array_filter(
$q2_results, 
function($v) { return $v->listID == "'" + $GLOBALS['a'] + "'"; }
);
?>
<?php foreach($new_array as $i ) {
$bookTITLE = $i->title;
$groupID = $i->listID;
$groupCREATOR = $i->creator;
$bookDESC = $i->itemDESC;
$bookID = $i->id;
$current_user = wp_get_current_user();
?>
<?php if($groupCREATOR == ''.$current_user->ID.''|| $groupCREATOR == 'administrator') { ?>
<div class="user-wrap">
<div class="inner-wrap">
<div><span class="check"><form><input type="checkbox" value="<?php echo $bookID;?>"></form></span></div>
<div>
<b><?php echo $bookTITLE; ?></b><br>
<?php echo $bookDESC ; ?>
</div>
</div>
</div>

<?php } else {
}; ?>
<?php }; ?>

plugin_read表:

列表<1>
id用户id项id
112
3231

要从items中提取read中不存在的行,可以简单地使用NOT in仅提取read中不存在行,如下所示:

<?php
$q2_results = $wpdb->get_results("
SELECT * 
FROM $q2_item
where $q2_item.id NOT IN (select itemID from $q2_read)
");

相关内容

  • 没有找到相关文章

最新更新