0
function comp_post_code($comp_post_code){
global $host, $dbname, $user, $pass;
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$DBH->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); ///*** for error handling
$STH = $DBH->prepare("SELECT * from uk_data where 
comp_post_code like :comp_post_code and cat1 like :cat");
$STH->bindValue(':cat', "%$cat1%", PDO::PARAM_STR);
$STH->bindValue(':comp_post_code', "%$comp_post_code%", PDO::PARAM_STR);
$STH->execute();
$STH->setFetchMode(PDO::FETCH_ASSOC);
return $STH;
}

私はcat1からcat10を持っています..私は次のような長いコードを書かずにデータ出力を取得したい

 and comp_post_code like :comp_post_code and cat2 like :cat
 and comp_post_code like :comp_post_code and cat3 like :cat

私はこれを解決する方法があります...私たちはongコードを書いて出力することができますが、それでも他の方法でできることを知りたいですか?

テーブル構造

comp_post_code cat1 cat2 cat3 cat4
4

1 に答える 1

1

あなたのコメントの詳細に基づいて:

SELECT * from uk_data where 
comp_post_code like :comp_post_code AND (
cat1 like :cat OR
cat2 like :cat OR
cat3 like :cat OR
cat4 like :cat OR
cat5 like :cat OR
cat6 like :cat OR
cat7 like :cat OR
cat8 like :cat OR
cat9 like :cat OR
cat10 like :cat
)
于 2012-12-29T11:42:59.767 に答える