質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1271閲覧

[php]データベースのカラムに登録している情報で絞り込みはできますか?

nagimasa

総合スコア13

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/10/29 02:30

編集2019/10/29 03:34

環境
MAMPを使用しています。 version5.3
php 7.3.1
MySQL 5.7.25

実現したいこと
menu.htmlで居酒屋をクリックした場合、移動先のlist_izakaya.phpでテーブルの[category]の「居酒屋」を絞り込み、その上で、コメントがあるかないかを条件にしたいと思っています。
if($row['comment'] != ''){...}
これでコメントの有無による絞り込みはできたのですが、[ && ]を使って居酒屋などのカテゴリーに登録した言葉でも絞り込むことはできますか?

テーブル名 shops
|id|name|open|close|address|comment|category|
|:--|:--|:--|:--|
|01|焼肉|10:00|木曜日|AA町|安い美味い|居酒屋
|02|焼き鳥|17:00|金曜日|BB町|未登録|居酒屋
|03|美容室|10:00|火曜日|CC町|未登録|美容
|04|歯医者|10:00|日曜日|DD町|未登録|医療

menu.html

hmtl

1<a href="list_izakaya.php">居酒屋</a> 2<a href="list_biyoushitsu.php">美容室</a> 3<a href="list_haisya.php">歯医者</a>

list_izakaya.php

php

1<?php 2 foreach ($db->query('SELECT * FROM shops') as $row){ 3 if ($row['comment'] !=''){ 4?> 5<!-- コメントがあるお店の表示 --> 6<section class="shop-tile shadow-radius border-ocher"> 7 <h2><?php echo $row['name'] /*ここにカテゴリーの絞り込みを追加したい*/ ?></h2> 8 <img src="../images/koganavi_food47.jpg"> 9 <table> 10 <tr> 11 <th>営業時間</th> 12 <td><?php echo $row['open'] ?></td> 13 </tr> 14 <tr> 15 <th>定休日</th> 16 <td><?php echo $row['close'] ?></td> 17 </tr> 18 <tr> 19 <th>住所</th> 20 <td><?php echo $row['address1'],$row['address2'],$row['address3'] ?></td> 21 </tr> 22 </table> 23 <a class="btn tel-btn" href="tel:<?php echo $row['tel'] ?>">電話する</a> 24 <a class="btn" href="detail.php?id=<?php echo $row['shop_id'] ?>"><?php echo $row['name']?></a> 25 </section> 26 <?php } else { ?> 27</div> 28</article> 29<!-- コメントが登録されていないお店の表示 --> 30 <div id="free-shops" class="frame"> 31 <section class="shadow-radius border-ocher"> 32 <h2><?php echo $row['name'] ?></h2> 33 <table> 34 <tr> 35 <th>営業時間</th> 36 <td><?php echo $row['open'] ?></td> 37 </tr> 38 <tr> 39 <th>定休日</th> 40 <td><?php echo $row['close'] ?></td> 41 </tr> 42 <tr> 43 <th>住所</th> 44 <td><?php echo $row['shop_address1'],$row['shop_address2'],$row['shop_address3'] ?></td> 45  </tr> 46  </table> 47  </section> 48 <?php }} ?>

環境についての追記をいたしました。
phpとmysqlのバージョンについてはphpmyadminに書いてあった通りにしております。
見るところが間違ってなければ正しいかと思います。
ご指摘ありがとうございました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nagimasa

2019/10/29 03:35

ご指摘とリンクの貼り付けありがとうございます。 わかる範囲で追記をいたしました。 これからリンク先を読ませていただきます。
guest

回答1

0

ベストアンサー

[ && ]を使って居酒屋などのカテゴリーに登録した言葉

状況がわからないですが
list_izakaya.php が居酒屋のみ選別しているならスタティックに

PHP

1$sql="SELECT * FROM shops WHERE category='居酒屋' and comment=''"; 2$db->query($sql);

のような処理をすればよいのでは?

投稿2019/10/29 03:16

yambejp

総合スコア114769

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nagimasa

2019/10/29 04:38

できました! これとは別にSQLの方にも問題がありましたが無事解決しました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問