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

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

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

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

PHP

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

Q&A

解決済

3回答

2725閲覧

同じファイルでSQL文を2個実行したい

dog50

総合スコア26

SQL

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

PHP

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

0グッド

0クリップ

投稿2020/02/04 08:30

編集2020/02/04 15:38

同じphpファイルでSQL文を2個実行しその2つを表示させたいのですが、片方が表示されたら片白が表示出来なくなってしまうのですが、何故だか教えていただいたいです。

index.php

1$List = []; 2$List2 = []; 3 4try { 5 $db = new PDO(Conf::DB_DNS, Conf::DB_USERNAME, Conf::DB_PASSWORD); 6 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 7 $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 8 9 10 11 $offset = PER_PAGE * ($page - 1); 12 $sql = "SELECT * FROM product LIMIT ".$offset.",".PER_PAGE; 13 $stmt = $db->prepare($sql); 14 $result = $stmt->execute(); 15 16 17 while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 18 $dp = []; 19 foreach ($row as $col => $val) { 20 $dp[$col] = $val; 21 } 22 23 $book = new Book(); 24 $book->setId($dp['id']); 25 $book->setText($dp['text']); 26 $book->setBookimg($dp['img']); 27 $book->setBoName($dp['name']); 28 29 $List[$dp['book_id']] = $book; 30 } 31 32$sql2 = "SELECT * FROM product ORDER BY regidtered LIMIT 5"; 33 $stmt2 = $db->prepare($sql2); 34 35 while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) { 36 $dp2 = []; 37 foreach ($row2 as $col2 => $val2) { 38 $dp2[$col2] = $val2; 39 } 40 41 $book2 = new Book(); 42 $book2->setId($dp2['id']); 43 $book2->setText($dp2['text']); 44 $book2->setBookimg($dp2['img']); 45 $book2->setBoName($dp2['name']); 46 47 48 $List2[$dp2['id']] = $book2; 49 } 50 51require_once($_SERVER["DOCUMENT_ROOT"] . "tpl/index.php");

index.php

1 2 <section> 3 <tbody> 4 <div class="box"> 5 <?php 6 if (empty($List)) { 7 ?> 8 <tr> 9 <td colspan="5">商品は存在しません。</td> 10 </tr> 11 <?php 12 } 13 else { 14 ?> 15 <h3>新着商品</h3> 16 <?php foreach ($List2 as $book2) { ?> 17 18 <ul id="bookimg"> 19 <li><img src= "<?= $book2->getBookimg()?>"></li> 20 <li id="box2"><?= $book2->getBoName() ?></li> 21 22 </ul> 23 <?php } ?> 24 25 26 <?php foreach ($List as $book) { ?> 27 <ul id="bookimg"> 28 <li> <img src= "<?= $book->getBookimg()?>"> </li> 29 <li id="box2"><?= $book->getBoName() ?></li> 30 <li>¥<?= $book->getPrice() ?>+税</li> 31 32 </ul> 33 <?php 34 } 35 } 36 ?> 37 <br> 38 <?php for($i=1; $i <= $pagenation; $i++) :?> 39 <a href="?page=<?php echo $i ?>"><?php echo $i; ?></a> 40 <?php endfor; ?> 41 </tbody> 42 </section> 43 </body> 44</html> 45 46 47コード

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

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

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

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

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

sazi

2020/02/04 08:44

エスパーでもかなり上位のエスパーでないと回答できない案件ですね。
退会済みユーザー

退会済みユーザー

2020/02/04 22:36

公開されたけど、 件数(OFFSET/LIMIT)の違う同じSQLですが、実装誤ってません?
退会済みユーザー

退会済みユーザー

2020/02/04 22:56

まあ、nページ目が存在しない場合、新着商品?のみ表示する。 それ以外の場合、新着商品にnページ目の商品を追加表示する。 別に間違えた実装ではないけど。 ころころ変わる新着商品だな
guest

回答3

0

そういう実装をしているからです。
書いた通り動いてます。

どのように書いたかは知らないですけど。

投稿2020/02/04 08:50

m.ts10806

総合スコア80852

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

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

0

ベストアンサー

execute()してないからfetch()False返してるんじゃない?

php

1 $stmt2 = $db->prepare($sql2); 2 3 while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) {

投稿2020/02/05 01:14

Y.H.

総合スコア7914

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

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

0

  • 片方しか実行できない何かがあるか
  • 最初の実行の出力をしないまま次のSQLを実行して表示してる

とかですかね

投稿2020/02/04 08:38

yambejp

総合スコア114883

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問