0

次のコードで、「=」基準を「LIKE」と統合する方法がわかりません。

コードは、複数の条件で検索するためのものです。この cat_id を使用した検索は、その基準が「LIKE」基準の一部にならないようにすることを期待して大丈夫です。代わりに、検索で完全に一致するように「=」にする必要があります。あなたの助けに感謝します。

$criteria = array('ctitle', 'csubject', 'creference', 'cat_id', 'cmaterial', 'ctechnic', 'cartist', 'csource', 'stolen');
$likes = "";
$url_criteria = '';
foreach ( $criteria AS $criterion ) {
        if ( ! empty($_POST[$criterion]) ) {
                $value = ($_POST[$criterion]);
                switch ($criterion) {
                    case 'cat_id':
                        $likes .= " AND `$criterion`='$value'";
                        break;

                    default:
                        $likes .= " AND `$criterion` LIKE '%$value%'";
                        break;
                $url_criteria .= '&'.$criterion.'='.htmlentities($_POST[$criterion]);
            } }
        } elseif ( ! empty($_GET[$criterion]) ) {
                $value = mysql_real_escape_string($_GET[$criterion]);
                switch ($criterion) {
                    case 'cat_id':
                        $likes .= " AND `$criterion`='$value'";
                        break;

                    default:
                        $likes .= " AND `$criterion` LIKE '%$value%'";
                        break;
                $url_criteria .= '&'.$criterion.'='.htmlentities($_GET[$criterion]);
        } //var_dump($likes);
}

$sql = "SELECT * FROM collections WHERE c_id>0" . $likes . " ORDER BY c_id ASC";
4

2 に答える 2

0
    if($criterion=='cat_id')
        $likes .= " AND `$criterion` = '$value'"
    else
        $likes .= " AND `$criterion` LIKE '%$value%'";
于 2013-04-20T07:27:07.200 に答える