![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
下記のコードでは、sprintfにクエリを書いていますが、その中でも一部の行だけifを使って条件分岐で切り替えることができないものかと思いました? もちろん下記のコードでは動きませんが、イメージとしては、このような感じです。
try{
$sql = sprintf('SELECT '
. 'SQL_CALC_FOUND_ROWS %1$s.ID,'
. '%1$s.ID, '
. '%1$s.post_author,'
. '%1$s.post_title, '
. '%1$s.post_date, '
. '%1$s.post_status,'
. '(SELECT %2$s.name FROM %2$s WHERE %1$s.category = %2$s.term_id) AS category , '
. '(SELECT %2$s.name FROM %2$s WHERE %1$s.category_child = %2$s.term_id) AS category_child , '
. '%1$s.post_content , '
. '(SELECT count(%3$s.post_id) FROM %3$s WHERE %1$s.ID = %3$s.post_id) AS b_count, '
. '(SELECT count(%4$s.post_id) FROM %4$s WHERE %1$s.ID = %4$s.post_id) AS l_count, '
. '(SELECT count(%5$s.comment_ID) FROM %5$s WHERE %1$s.ID = %5$s.comment_post_ID) AS c_count '
if(isset($ID)){
. 'FROM %1$s WHERE %1$s.post_author = :post_author AND %1$s.post_status = 2 ORDER BY %1$s.post_date DESC LIMIT %6$s, %7$s', $this->posts, $this->category,$this->bookmark,$this->like,$this->comments,$limit, $offset);
}elseif(isset($ID) AND $ID==$user_id){
. 'FROM %1$s WHERE %1$s.post_author = :post_author AND %1$s.post_status = 3 ORDER BY %1$s.post_date DESC LIMIT %6$s, %7$s', $this->posts, $this->category,$this->bookmark,$this->like,$this->comments,$limit, $offset);
}else{
. 'FROM %1$s WHERE %1$s.post_author = :post_author AND %1$s.post_status = 1 ORDER BY %1$s.post_date DESC LIMIT %6$s, %7$s', $this->posts, $this->category,$this->bookmark,$this->like,$this->comments,$limit, $offset);
}
$stmt = $this->db->prepare($sql);
$stmt->bindValue('post_author', $user_id);
$stmt->execute();
$data['all'] = $stmt->fetchAll();
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pythonのhttp.serverでpostされ...
-
アコーディオンPHPが上手くいか...
-
php sprintfの中で、ifのような...
-
POSTを使わずに値を渡す方法
-
ストアドプロシージャーでルー...
-
セッションを使わずに遷移先画...
-
HTMLで前の画面に戻る時、入力...
-
GET又はPOSTで受け取るデータに...
-
POSTの項目に追加
-
複数のセレクトボックスを1つに...
-
PHPで画像の渡しが上手く行きま...
-
チェックボックスの必須項目指定
-
HTMLのリンクをクリックするこ...
-
PHP5でsimple_xml_load_fileす...
-
検索時の選択内容を保持する方法
-
エラーを元の画面に表示させるには
-
PDOのprepareでLIKEの部分一致...
-
WordのIDataObject::GetData呼...
-
<input type="hidden" >で配列...
-
$_POST['hoge']のデータをフラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
laravelを利用してコントロール...
-
POSTを使わずに値を渡す方法
-
pythonのhttp.serverでpostされ...
-
サーバ上でGETはできるがPOSTが...
-
POSTの値を配列として受け取っ...
-
php sprintfの中で、ifのような...
-
CGI Perlでの認証について
-
[Smarty] 空の変数は0に反応す...
-
ブックマークレットで他ドメイ...
-
アコーディオンPHPが上手くいか...
-
wordpressでのパーマリンクの表...
-
jQuery Ajaxで送信先ドキュメン...
-
海外郵便 宛名国名のスペル教えて
-
シーク教徒のターバンの巻き方は?
-
郵便番号検索
-
ストアドプロシージャーでルー...
-
<input type="hidden" >で配列...
-
PHP ボタンが押されたら処理を...
-
HTMLで前の画面に戻る時、入力...
-
検索時の選択内容を保持する方法
おすすめ情報