Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从数据库中获取相似颜色的图像[php]_Php_Mysql_Database - Fatal编程技术网

如何从数据库中获取相似颜色的图像[php]

如何从数据库中获取相似颜色的图像[php],php,mysql,database,Php,Mysql,Database,我正在使用调色板 我想找到与一个图像w.r.t颜色/颜色范围相似的图像。 这是我的密码 <?php require_once $config->root.'/script/vendor/image-palette/vendor/autoload.php'; // initiate with image $palette = new \BrianMcdo\ImagePalette\ImagePalette( 'http://i.imgur.com/GL7igry.png' );

我正在使用调色板
我想找到与一个图像w.r.t颜色/颜色范围相似的图像。
这是我的密码

<?php 
require_once $config->root.'/script/vendor/image-palette/vendor/autoload.php';
// initiate with image
$palette = new \BrianMcdo\ImagePalette\ImagePalette( 'http://i.imgur.com/GL7igry.png' );

// get the prominent colors
$colors = $palette->colors; // array of Color objects

//storing in databse
?>

现在,我需要一个完美的SQL从数据库中返回具有相同或匹配调色板代码的类似行[值存储为Ex:#000000、#99999、#333399]以及一个不同的表w.r.t图像id以进行快速索引


如果是重复的问题,请给我链接,我将删除该问题,因为我得到了很多反对票,我不知道在哪里问其他问题

这就是如何为查询构建SQL字符串的方法。您应该使用准备好的语句,所以将其转换为您正在使用的任何库,但这段代码将为您提供sql查询

if($colors != null && count($colors) > 0)
{
    $sql = "SELECT * FROM color_image WHERE";

    foreach($colors as $color)
    {
        $sql .= " color_code = '". $color . "' OR ";
    }

    $sql = rtrim($sql, " OR ");
}

你的DB的结构是什么?3列彩色图像表-id[auto increment]img\u id[image id]color\u code[#ffff]和一个主表,我在其中将所有颜色存储在一个列中,如ex-#fff,#eee,#ddd使用的RDBMS是什么?MySQL?MSSQL?另外问题还不清楚。我使用的是mysql,但它只会返回完全相同的代码图像。我还需要类似的图像,颜色这是不可能的,因为没有数据库,我知道有任何内置处理十六进制颜色。您需要拉取整个数据库并使用php来完成此操作。在你的问题中,你没有提供足够的信息让我帮助你,除了我之前写的内容之外。你不会通过将任意字符串组合在一起来构建查询。将准备好的语句与占位符值一起使用。也不需要字符串
子句。只要使用
WHERE IN(?,,?,…)
,必要时重复
部分即可。@tadman我在回答中明确表示,这只是为了解释想法的工作原理,并说OP应该使用准备好的陈述。因为他没有具体说明他使用的是什么库,所以我不打算去为他编写整个应用程序。当你忽略自己的建议时,你所说的并不总是被注意到。另外,您至少可以使用
内爆
来避免最后的
rtrim
混乱。