PHPとMySQLで構築するという内容の参考書2冊を読んだ程度の知識レベルです。しばらくPHPと離れていたので、さらに退化しているかもしれません。。。
環境はWindowsXP、PHP4.3.2.2です。
ぜひ、皆さんの知恵をお借りできればと思い、質問をさせていただきます。
DBには
発売日(outday) お菓子名(name) 発売店(shop) などが入っております。
発売日やお菓子名、発売店など1つ~3つの条件で検索することが目的です。
例えば、お菓子名のみの検索をしようとして、
HTMLフォーム
<INPUT size="44" type="text" name="name" maxlength="100">
↑に検索したいお菓子名を記入して、
$sql="select * from okashiwhere (name like '%$name%') order by outday;
↑でnameのデータを受けとって、欲しいお菓子データを取り出すことはできたのですが、
↓のように
<INPUT size="44" type="text" name="shop" maxlength="100">; <INPUT size="44" type="text" name="name" maxlength="100">;
フォームを2つ作り
$sql = "select * from okashi
where (shop like '$%shop%') and
(name like '%$name%')by outday;
↑のように2つ以上の検索条件が重なると、
「0件」みつかりました。と検索が出来なくなってしまいます。
検索条件は、検索項目が1つでも2つでも同じ同一です。
本に書いてあるまま、名前を換えて動かしているつもりなのですが、
どこが間違っているか本当に分かりません。
文字制限で全体を載せることができず、はしょってしまいましたが、
わからない点がありましたらおっしゃってください。
お忙しい中恐れ入りますが、ぜひ皆さんのお知恵をお借りしたいのです。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
> 0 toppa 全店 20070116
> 1 焼マロン 南店 20060130
> 2 魚くん 岡山店 20060607
>
> 1つの項目だけのときは「焼きマロン」
> 2つの項目には「焼きマロン」「南店」と入れました。
ここは大事なところですから、厳密な話をしましょう。
「焼きマロン」の「き」はあるのが正しいですか?ないのが正しいですか?
また、
select * from okashi where shop like '%山%' and name like '%く%';
というSQL文をコマンドプロンプト上で実行したとき、
2 魚くん 岡山店 20060607
のレコードがヒットしますか?
本当に早いお答えありがとうございますっ。
申し訳ありません。
「焼マロン」が正しいです。
ご指摘ありがとうございます。
コマンドプロンプトで
select * from okashi where shop like '%山%' and name like '%く%';
では
Empty set (0.01 sec)
との結果でしたが、
select * from okashi where (name like '%山%') and (shop like '%く%') ;
と記入したところ
+----+--------+--------+----------+
| no | shop | name | outday |
+----+--------+--------+----------+
| 2 | 魚くん | 岡山店 | 20060607 |
+----+--------+--------+----------+
の結果が得られましたっ。
ご教授よろしくお願いいたします。
No.4
- 回答日時:
> | 2 | 魚くん | 岡山店 | 20060607 |
この結果を得たということは、プログラム上で
select * from okashi where (name like '%山%') and (shop like '%く%') ;
というSQL文をうまく発行できさえすれば、
少なくとも1件はヒットするということですよね。
PHPスクリプトでSQL文を生成したり実行したりしている箇所や、
HTMLでフォームを作っている箇所を見せてくだされば、
何かわかるかもしれません。
おはようございます。
いつもご返答いただきましてありがとうございます。
select * from okashi where (name like '%山%') and (shop like '%く%') ;
で反応が返ってきたことに感動し、PHPの全文を見直しました。
間違っている箇所は無いと思っていたのですが、
$が抜けている箇所が2点有り、
修正したところ2個以上の条件で検索ができるようになりました!!!
何度も丁寧なご指導いただきましてありがとうございます。
本当に助かりました。
これからはもっと自分の間違いを疑って、しっかり見直しをいたします。
本当に、ありがとうございます!!
No.2
- 回答日時:
回答1の者です。
> コマンドプロンプトで同じく行ってみましたが、
> 0件でした。。。
そのwhere句を満たすデータは、okashiテーブルの中に
間違いなく存在しますか?
差し支えなければ、2~3件くらいでよいですから、okashiテーブルの
内容を見せてくださると、「このSQL文はOK」とか「このSQL文はNG」とか
いう話がしやすいように思います。
ご返答ありがとうございますっっ。
okashiのテーブルはこのように成ってます
(nonameshopoutday)←フィールド名です
0toppa全店20070116
1焼マロン南店20060130
2魚くん岡山店20060607
・
・
・
このような内容が46件登録されています
検索には
1つの項目だけのときは「焼きマロン」
2つの項目には「焼きマロン」「南店」と入れました。
お忙しい中、ありがとうございます。
よろしくお願いいたします。
No.1
- 回答日時:
> $sql = "select * from okashi
> where (shop like '$%shop%') and
> (name like '%$name%')by outday;
間違いなく、このとおりになさっていますか?だとすると、
・2行目の $%shop% は、%$shop% が正しいのではありませんか?
・3行目の by の前に order が必要ではありませんか?
また、フォーム上で入力したのと同じ条件を用いて、
コマンドプロンプトからMySQLを使ったとき、検索結果はゼロ件ですか?
それとも何件かヒットしますか?
早速のお答えありがとうございます!!!
>・2行目の $%shop% は、%$shop% が正しいのではありませんか?
>・3行目の by の前に order が必要ではありませんか?
おっしゃるとおりでした。
ありがとうございます。早速修正いたしました。
修正いたしましたが、やはり・・・ヒットいたしません。
コマンドプロンプトで同じく行ってみましたが、
0件でした。。。
すいません、お忙しい中恐れ入りますが
御教授よろしくお願いいたしますっっ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/2】 国民的アニメ『サザエさん』が打ち切りになった理由を教えてください
- ・ちょっと先の未来クイズ第5問
- ・【お題】ヒーローの謝罪会見
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA で、スペースを含むファイ...
-
検索機能
-
セキュリティーを意識した書き方。
-
ポインタ配列をfscanfで読み込...
-
アップロードファイル名の文字化け
-
array_multisortがうまくできま...
-
初心者です。入力フォームのp...
-
PHP ボタンが押されたら処理を...
-
パラメーターを隠す
-
laravelを利用してコントロール...
-
<input type="hidden" >で配列...
-
テキストボックスに初期値を入れる
-
php sprintfの中で、ifのような...
-
HTMLで前の画面に戻る時、入力...
-
フォーム送信後の更新ボタンで...
-
チェックボックスによる検索(...
-
DOMNodeのtextContentで日本語...
-
PHPのエラーの解消法について教...
-
ドロップダウンで送信先を変更...
-
DBの値をチェックボックスに反...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Flaskでサーバー立ち上げに関して
-
VBA で、スペースを含むファイ...
-
PHPからHTMLへの変数の受け...
-
phpで変数を使ってcopyできない
-
プログラミングC++のmapについて
-
POSTの項目に追加
-
アップロードファイル名の文字化け
-
サブフォルダ内の全てのテキス...
-
MySQL,PHPのリロードによる二重...
-
複数条件での検索について教え...
-
php+mysqlでの重複チェックにつ...
-
$_SESSIONに渡した後はそのまま...
-
アップロードしたファイルの絶...
-
ログイン パスワード変更のプ...
-
PHP&MySQL fetchAll()でデータ...
-
セキュリティーを意識した書き方。
-
foreachがうまく動かない
-
テキストボックスの値を取得したい
-
ファイルアップローダーで送信...
-
phpで読み込んだcsvが文字化け...
おすすめ情報