電子書籍の厳選無料作品が豊富!

PHPとMYSQLをつかっています

会員情報から友達の名前を登録できるようにしました
postで受け取った情報は友達の名前のみです
友達の名前から友達のID番号を取得したいのですが、15人分まとめて取得する方法はありますか?

調べるテーブルのカラムにはidとnameがあります(idとnameに重複はありません)


htmlフォームは(input=text)が15個ほどあって、何も記入されていない欄もあります(fre3に書き込んであってfre2が空白の場合があります)


$fre1 = $_POST['fre1'];
$fre2 = $_POST['fre2'];
$fre3 = $_POST['fre3'];
   ・
   ・
   ・

$sql = sprintf("SELECT id FROM friend WHERE name LIKE '%s'",$fre1);
$recordSet = mysql_query($sql);
$data = mysql_fetch_assoc($recordSet);

A 回答 (1件)

freの受け渡しを配列処理でできれば構文は簡素化できます


<input type="text" name="fre[]">
<input type="text" name="fre[]">
<input type="text" name="fre[]">

<?PHP

$sql = "SELECT id FROM friend WHERE 1";
$str="";
$fre=isset($_POST["fre"])?$_POST["fre"]:false;
foreach((array) $fre as $val){
if(!empty($val)){ //空データの場合処理しない
$str.=$str===""?"AND name IN (":",";
$str.=$val;
}
}
if($str!="") $str.=")";
$sql.=$str;
print_r($sql);
?>

nameが完全一致ならlikeで検索する必要はありません
    • good
    • 0
この回答へのお礼

お答え頂きありがとうございます
難しくてできませんでした
他の方法かんがえます

お礼日時:2013/06/15 02:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!