• 締切済み

Like演算子について

OS→Windows XP Home Edition Apache→2.0.59 PHP→4.4.4 今、Like演算子で検索しようとしていますが 上手く行きません。 <?php //データベースに接続する $conn = pg_pconnect("user=postgres password=grjtf dbname=mytbl"); //名前を検索する if(isset($_POST["action"]) && $_POST["sign"] == '検索') { //NAMEが書かれていた場合 if($_POST["name"]) { //NAMEを検索する //$sql4="SELECT * FROM mytbl WHERE name LIKE ('{$_POST['name']}')%"; //データベースに問い合わせて、クエリを実行する //pg_query($conn,$sql4); //成功メッセージ print "$_POST["name"]は検索されました。<br><br>"; } else { //失敗メッセージ print "$_POST["name"]は検索出来ませんでした。<br><br>"; } } ?> <!--$_SERVER['PHP_SELF']; ?>は、自分自身を呼び出す--> <FORM ACTION=<?php echo $_SERVER['PHP_SELF']; ?> METHOD=POST> <!--IDとNAMEとSCORE入力欄--> <input type=hidden name=action value=post> <!--入力ボックス--> ID: <input type=text name=id size=5> Name: <input type=text name=name size=15> SCORE: <input type=text name=score size=15> <br> <br> <!--ボタンオブジェクト--> <input type=submit name=sign value="書き込み"> <input type=submit name=sign value="点数修正"> <input type=submit name=sign value="一行削除"> <input type=submit name=sign value="検索"> </FORM> どなたか分かる方いればご教授お願いします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

pg関数を使うからにはpostgreですよね? postgreの書式には詳しくないので間違っていたら申し訳ないですが 通常LIKEはこうじゃないでしょうか? $sql4="SELECT * FROM mytbl WHERE name LIKE '{$_POST['name']}%' "; またソース的に危ういのでインジェクションに十分気をつけたほうが よろしいかと。

grj328
質問者

補足

yambejpさん、解答ありがとうございます。 >$sql4="SELECT * FROM mytbl WHERE name LIKE '{$_POST['name']}%' "; をやったのですが、フォーム自体表示されませんでした。 検索の部分のコードを消すと、入力欄が表示されます。

関連するQ&A

専門家に質問してみよう