• ベストアンサー

PHP+PostgreSQLでのSELECT文について

amountainblastの回答

回答No.1

こんにちわ。 半角スペースの入り方にルールがあるのでしたら、まだ、対応しやすいと思います。 上記の例だと まず、 seihinだけで検索をかけて そこから取得したデータでさらに S1 で検索をかける。 ってのはダメですか? ぱっと思いついた方法ですが・・・

longstop
質問者

お礼

早速のご回答ありがとうございました。

関連するQ&A

  • SQL+PHP,セレクト文、シンプルwhile文法

    SQL+PHPでサイト制作をしております データベースからセレクト文でデータを引っ張りたいのですが、当方、プログラム初心者のため稚拙な記述方法しか浮かばず困っております。どなたかお力をお貸し願えたらと存じます。 【内容】 テーブルにa1~a80までのフィールドがあり、それぞれにレコードがあります。 【例】 $sql = "SELECT * FROM テーブル名 WHERE フィールド名 LIKE '$xxx'"; $dyn = mysql_query($sql); while($row = mysql_fetch_array($dyn)){ ////この部分の記述方法 } mysql_close($cn); 単純に $a0 = $row['a0']; $a1 = $row['a1']; $a2 = $row['a2']; $a3 = $row['a3']; $a4 = $row['a4']; $a5 = $row['a5']; $a6 = $row['a6']; $a7 = $row['a7']; ・ ・ ・ として、セレクト文からwhileにて必要に合わせPHPを書いているのですが繰り返し受け取るプログラムがシンプルな記述ができません。 できましたら、フィールド数が多いので長くなりがちな記述を短くしたいと考ええています。 forやfordach、またはarrayを使ってはみたのですが、$row['axx']の部分がネックとなりうまく記述することが出来ません。 困っております。お力添え、宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • SELECT文

    strSQL = "SELECT * FROM 拠点 WHERE (削除<>'2' or 削除 is NULL) and エリアID like '日本%' ORDER BY 並び順" rsDB.open strSQL,conDB,3,3 a=1 s=0 do until rsDB.eof s=s+1 T(a,s)=rsDB.fields("名称").value TJ(a,s)=rsDB.fields("住所").value rsDB.movenext loop 上記で、日本だけではなく、いくつかSELECT文で抽出したいのですが、 a=1 日本 a=2 北海道 a=3 東北 a=4 関東 a=5 関西 のように、SELECT文で、抽出したものを、置換えしたいのですが、 どのように書いたらいいですか?

  • PHPとPostgreSQL

    PHP4.3.1とPostgreSql7.2.4で簡単な検索システムを作っています。 ユーザーがWeb上から入力した値をSQLのWhere句に指定していますが、 大文字小文字の区別なく検索したい為、lowerを使っていますがうまく行きません。 $strWord=$txtWord//ユーザー入力文字列 //以下SQL $query = "select Title from t_Master Where lower(Title) like '%$strWord%')"; 全て大文字小文字の区別無しに検索できる方法がありましたらご教授ください。

    • ベストアンサー
    • PHP
  • SQL SELECT文について

    SQL、データベース関連の領域で、SELECT文の構文を学習しています。 WHEREの後の条件に使われる式として、以下の記載があるのですが、 具体例として、SELECT文があっての説明が無いので、式の意味、SELECT文 に、どのような形で出てきて、どのように解釈したらいいかの知識を習得出来 ません。御教授下さいますよう、御願い申し上げます。 LIKE"_野菜%" (意味) "野菜"を含む文字列。_は一文字、%は任意文字数のワイルドカード 宜しくお願い致します。

  • select文のwhere句に配列を入れて検索したいのです。

    はじめまして。php5とpostgresを使って、ブラウザで都道府県をセレクトで複数選択(prefecture[])して、postgresに select city from city_table where p_id='prefecture'; としているのですが、結果を出力できません。 print_rで見たところprefectureに複数選択した都道府県のidが配列として入っていることは確認しております。 where句に配列を入れて検索するにはどうすれば良いのでしょうか? よろしくお願いいたします。

  • select文の書き方で分からない所があります

    先人の書いたPHPを解析しています。 PostgresSQLとのやり取りをしている記述で、どうしても分からないところがあるので、教えてください。 select count(*) from yamato_order_info yo where yo.maker_system_id in (select mbs.maker_system_id from maker_base_info mbs where mbs.maker_name like '%$_GET[txtSearch]%'); fromでyoとmbsと書かれた部分があります。このデータベースには、そのようなテーブルが無いのですが、これは、Postgresの構文でしょうか? また、( の直前のinについてもなんとなくは理解できますが、ネットを調べても出てきません。 古い記述なので、最近のものには対応していないのかもしれません。 どなたかご教示願えませんか。 また、このような場合どのように調べれば良いでしょうか。

  • 検索ワードを(1)クリアされないようにしたい、(2) スペース区切りしたい

    ◆ 環境: PHP 5.0.3 MySQL 4.0.14b(Win)(←古いこと承知) IIS 5.1 ◆ 背景 質問 No.1212008にも書きましたが、PHP+MySQLで簡単な検索システムを 作っている初心者です。 ・001.htm に設置したこの検索フォームからPOSTすると ・002.php に渡され、これがHTMLを組み立てて検索結果を表示します。 ・002.php には、001.htmと同じ検索フォームを設置してあります。 ・検索フォームは name="1" ~ "4" までのテキストフィールドと検索ボタンで、  次のようなSQL文でWHERE文を構成しています。 $sql = "select * from t_url where (fullpass like '%$title1%')"; if (strlen($title2) > 0) { $sql .= " and (fullpass like '%$title2%')"; } if (strlen($title3) > 0) { $sql .= " and (fullpass like '%$title3%')"; } if (strlen($title4) > 0) { $sql .= " and (fullpass like '%$title4%')"; } ◆ 質問は2点です。 (1) 001.htmから検索し、002.php結果がリストアップされると、 002.phpにある検索フォームに入力したキーワードはが当然クリアされています。 また、002.php から再検索しても、同じくクリアされてしまいます。 いずれの場合にも、テキストフィールドに入力した内容を残す(引き継ぐ)ことは 可能でしょうか?PHPとかJavascriptとかで実現方法はあるのかもしれませんが ちょっと見当がつきません。 (2)今は1フォーム・1キーワード×4テキストフィールドなので4ワードまでは AND条件で絞り込みできますが、 Web検索ライクに、検索フォームのテキストは1つ、全角&半角スペースで区切った キーワードがAND条件でつながるようにするのも敷居高いでしょうか。 アドホックな感じがするので、何とかできたらと思うのですが。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • セレクト文

    下記のセレクト文に配列をセットしたいのですが、”onchange”を使った2段階?にするとエラーになってしまいます。 <html> <head> <body> <?php $selected[] = array(); unset($selected); $selected[$***[ "t" ][ "VALUE" = "SELECTED"; print("<select name=\"t\" onchange="if(t.value==1){s1.style.display='inline';s2.style.display='none'; }else{s1.style.display='none';s2.style.display='inline';}">") print("<option selected> print("<option value=1>1  print("<option value=2>2 print("<</select> $selected[] = array(); unset($selected); $selected[$***[ "s1" ][ "VALUE" ]] = "SELECTED"; print("<select name=\"s1\" style=display:none>") print("<option value=a>a") print("<option value=aa>aa") print("</select>") $selected[] = array(); unset($selected); $selected[$***[ "s2" ][ "VALUE" ]] = "SELECTED"; <select name=\"s2\" style=display:none>") <option value=b>b") <option value=bb>bb") print("</select>") ?> </body> </head> </html> よろしくお願いします。

    • 締切済み
    • PHP
  • php上でSQL文を実行した結果と、phpMyAdminで実行した結果が違う

    ☆実行環境 php5.3 MySQL4.0 $sql="SELECT * FROM テーブル名 WHERE フィールド名 like '".$変数."%'" php上で上記のようなSQL文を実行させようとしています。 テーブルには該当する行がいくつかあるのですが、ページ上では1行も表示してくれません。 mysql_num_rowsの返り値を見ると0になっています。 SQL文の組み立てがおかしいのかと思い、phpMyAdmin上でSQL文を実行すると、 きちんと欲しい内容が表示されます。 とするとphpでのSQL文の書き方がおかしいのだと思います。 どこかおかしいのかご教授ください。

    • ベストアンサー
    • PHP
  • IFとか条件分岐するSELECT文

    IFとか条件分岐するSELECT文 mytableというテーブルを設け、好きな家電メーカーを3つ挙げてもらい、kaisya1、kaisya2、kaisya3にInsertしました。 また、3つのうち、一番好きなメーカーを社名フラグ(kaisyaFlg;0か1か2で)にInsertしました。 これらの4フィールドを参照し、「一番好きなメーカーリスト」を出すselect文をご教示ください。 PHP側でやるなら、こうなるのでしょうが、MySQL側で「スマートに(?)」処理できないでしょうか。 if ($kaisyaFlg = 0) { $kaisya = $kaisya1; } elseif ($kaisyaFlg = 1) { $kaisya = $kaisya2; } elseif ($kaisyaFlg = 2) { $kaisya = $kaisya3; } echo "一番好きなメーカーは、" . $kaisya;

    • ベストアンサー
    • MySQL