Php 保持双重价值

Php 保持双重价值,php,arrays,Php,Arrays,我有以下脚本,可以根据标记从数据库中获取内容 <?php header("Content-type: text/html; charset=UTF-8"); include 'config.php'; include 'lib.php'; error_reporting(E_ALL); // or E_STRICT ini_set("display_errors",1); $query = $_GET['query'];

我有以下脚本,可以根据标记从数据库中获取内容

   <?php
    header("Content-type: text/html; charset=UTF-8");

    include 'config.php';
    include 'lib.php';

    error_reporting(E_ALL); // or E_STRICT
    ini_set("display_errors",1);

    $query = $_GET['query'];
    $db = dbConnect();
    $tags = explode(";", $query);
    $entries = Array();

    foreach($tags as $tag) {
        $tag = trim($tag);
        echo "<br/>".$tag;

        $query = "SELECT * FROM nv_entries entries JOIN nv_tags tags on (entries.id = tags.entrie_id) join nv_images images on (tags.entrie_id = images.entrie_id) WHERE tags.tag = '$tag'";
        $entrie = execSelect($query);


        array_push($entries, $entrie);

    }

    echo "<pre>";
    print_r($entries);
    echo "</pre>";

    // keep the ones that are there as many times as there are diferent tags
    // ...

    dbClose($db);
    ?>
id=1的显示两次。这等于标签的总数,所以我想保留这一个。 id=2的那个只出现一次,所以1个标记失败了,所以我不需要它

我怎样才能摆脱它? 在那之后,我如何才能清理阵列,使双阵列消失

编辑:

这应该接近我正在寻找的,我只得到一个错误:

查询失败:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1行使用near“GROUP BY nv_entries ON nv_entries.id=nv_tags.entrie_id和nv_tags.tag IN”的正确语法

在下面的脚本中生成的查询如下所示:

家 按nv_项分组在“树”中的nv_项.id=nv_标记.entrie_id和nv_标记.tag上联接,“绿色”具有COUNTDISTINCT nv_标记.tag=2

这是脚本部分:


这看起来可以用更高级的SQL简单地解决。你能帮忙吗,我不知道怎么做,我也不介意它是否在短时间内完成,只要它能工作,就需要尽快找到。在记录:所需查询的快速和肮脏介绍:按条目或图像分组之前,我无法从当前数据中判断,将标签与“列表”中的ON entries.id=tags.entrie_id和tags.tag、of、tags和HAVING COUNTDISTINCT tags连接起来。tag=3代表3个标签,4代表4个标签等。酷,我现在应该结束了,编辑了我的第一篇帖子
Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [band] => Green
                    [album] => 
                    [label] => ATCO
                    [year] => 1966
                    [text] => text about green.
                    [entrie_id] => 1
                    [tag] => tree
                    [source] => img01_4u8y5.png
                )

            [1] => Array
                (
                    [id] => 2
                    [band] => Kids for Cash
                    [album] => No More Walls E.P.
                    [label] => 
                    [year] => 1986
                    [text] => Text about album kids for cash.
                    [entrie_id] => 2
                    [tag] => tree
                    [source] => img02_9lch1.png
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [band] => Green
                    [album] => 
                    [label] => ATCO
                    [year] => 1966
                    [text] => text about green.
                    [entrie_id] => 1
                    [tag] => green
                    [source] => img01_4u8y5.png
                )

        )

)
for ($i = 0; $i < count($tags); $i++) {
    $tags[$i] = trim($tags[$i]);
}

$query = "GROUP BY nv_entries JOIN ON nv_entries.id = nv_tags.entrie_id AND nv_tags.tag IN (";
// add with following comma
for ($i = 0; $i < count($tags)-1; $i++) {
    $query .= "'".$tags[$i]."',";
}
// add last without a comma
$query .= "'".$tags[count($tags)-1]."'";

$query .= ") HAVING COUNT(DISTINCT nv_tags.tag) = ".count($tags);

echo $query;

$entries = execSelect($query);


echo "<pre>";
print_r($entries);
echo "</pre>";