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

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

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

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

Q&A

解決済

3回答

1426閲覧

PHP分岐指定の方法

oan

総合スコア7

PHP

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

1グッド

0クリップ

投稿2016/08/25 10:38

編集2016/08/25 10:48

HTML、CSSからページは作成できますが、PHP全くの初心者で外注費がおりないため
多少の変更を自身でする必要があります。
以下、どなたかアドバイスを頂けると幸いです。

ーーー現状ーーー

<?php if( $cat->term_id != 104 ): ?> <dt>sample A</dt> <?php else: ?> <dt>sample B</dt> ーーーーーーーー

上記分岐分に、さらに カテゴリーidナンバーが以下の場合は、sample Cを指定するという条件を記載したいです。

・121
・119
・263
・264
・265
・266

ど素人の質問でこの場をお借りしての質問で申し訳ございませんが
ご教示頂けると幸いです。

よろしくお願いします。

nnssn👍を押しています

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

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

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

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

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

guest

回答3

0

ベストアンサー

カテゴリーidナンバーが$cat->term_idだという前提で、一番条件が目に見えやすい書き方は以下になるかと思います。

これがどういう意味かはご自身で調べられてくださいね!

php

1<?php if( $cat->term_id != 104 ): ?> 2<dt>sample A</dt> 3<?php elseif ($cat->term_id = 119 || $cat->term_id = 121 || $cat->term_id = 263 || $cat->term_id = 264 || $cat->term_id = 265 || $cat->term_id = 266) : ?> 4<dt>sample C</dt> 5<?php else: ?> 6<dt>sample B</dt>

投稿2016/08/25 11:01

ao_love

総合スコア441

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

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

oan

2016/08/25 11:10

早速ご回答頂き誠にありがとうございました。
退会済みユーザー

退会済みユーザー

2016/08/25 11:41

回答前にテストされたほうが良いかと。 else if 通りませんし。
KiyoshiMotoki

2016/08/25 11:47

te2ji様 > else if 通りませんし。 確かに、仰る通りですね。 そこは見落としておりましたw
oan

2016/08/25 12:17

<?php if( $cat->term_id == 104 ): ?> <dt>sample A</dt> <?php elseif ( $cat->term_id == 119 || $cat->term_id == 121 || $cat->term_id == 263 || $cat->term_id == 264 || $cat->term_id == 265 || $cat->term_id == 266) : ?> <dt>sample B</dt> <?php else: ?> <dt>sample C</dt> で思っていた通りの表示になりました。どうも皆様ありがとうございました。
KiyoshiMotoki

2016/08/25 12:25

oan様 それでは意図通りの動きになりません。 <?php if( $cat->term_id == 104 ): ?> <dt>sample B</dt> <?php elseif ( $cat->term_id == 119 || $cat->term_id == 121 || $cat->term_id == 263 || $cat->term_id == 264 || $cat->term_id == 265 || $cat->term_id == 266) : ?> <dt>sample C</dt> <?php else: ?> <dt>sample A</dt> です。 sample A, sample B, sample C を記述する順番が入れ替わっていることに注意してください。
oan

2016/08/25 13:04

中身の文言を置き換えてこちらで記載しておりますため、順番はすでに本番では入れ替えておりました。失礼いたしました。細かいところまで見ていただきありがとうございます。
ao_love

2016/08/26 02:44

大変失礼いたしました。 KiyoshiMotoki 様 te2ji 様 フォローありがとうございました。
guest

0

HTML、CSSからページは作成できますが、PHP全くの初心者で外注費がおりないため

ここは外注費がおりない会社のサポートをする場ではありませんよ。
外注費がおりない為「学習したい」という方の疑問に応える場ではあると思いますが。
今の質問は、「やってほしいことだけを記載した丸投げの質問」です。

ちなみに104 の選択に少し変わったことをしています。
その根拠を確認するとか、全体をちゃんと見る必要があると思いますよ。

一応サンプル

PHP

1<?PHP 2 3$test = [ 4 100, 101, 102, 103, 104, 105, 119, 121, 200, 263 5]; 6 7$hoge_b = [ 8 104 9]; 10 11$hoge_c = [ 12 121, 119, 263, 264, 265, 266 13]; 14 15 16foreach ($test as $cat) { 17 echo $cat . ':'; 18 19 if (in_array($cat, $hoge_b)) { 20 echo 'sample B'; 21 } else if (in_array($cat, $hoge_c)) { 22 echo 'sample C'; 23 } else { 24 echo 'sample A'; 25 } 26 echo '<br>'; 27}

投稿2016/08/25 11:33

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

oan

2016/08/25 11:54

このサービスを利用するのが初めてで大変失礼いたしました。 また、ご丁寧にご回答頂きありがとうございました。
退会済みユーザー

退会済みユーザー

2016/08/25 12:05

繰り返しになりますが、104 の選択に少し変わったことをしています。 この記述は普通やらないと思います。 意図を理解した上で、変更する必要があります。 変更履歴が残っていれば、少し追ってみたほうがいいかもしれないです。
oan

2016/08/25 12:14

どうもご指摘頂きありがとうございます。少し勉強させて頂きます。どうもありがとうございました。
guest

0

配列でリストをつくってin_array()でチェックが楽です

PHP

1$list=[104,100,121,119,999,263]; 2$sample_a=[104]; 3$sample_c=[121,119,263,264,265,266]; 4 5foreach($list as $val){ 6 if(in_array($val,$sample_a)){ 7 print "{$val}:sampleA<br>"; 8 }elseif(in_array($val,$sample_c)){ 9 print "{$val}:sampleC<br>"; 10 }else{ 11 print "{$val}:sampleB<br>"; 12 } 13}

投稿2016/08/25 11:12

yambejp

総合スコア114812

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

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

退会済みユーザー

退会済みユーザー

2016/08/25 11:43

原文の条件式が $cat->term_id != 104 です。 まぁ、in_array()のサンプルとしてはどっちでもいいので揚げ足取り的なものですが。
yambejp

2016/08/25 11:47

te2jiさん、ご指摘ありがとうございます $cat->term_idではループでいろんなパターンをチェックできないのであえて リスト形式にして回してみたのですが意図がうまく伝わらないようなので反省します
oan

2016/08/25 11:54

早速ご丁寧にご回答頂きありがとうございました。
退会済みユーザー

退会済みユーザー

2016/08/25 11:57

個人的には、php で「if in」って使えなかったっけ?と調べ、サンプル作ってみたのですが、その答え合わせ的な回答があって助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問