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

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

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

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

Q&A

解決済

2回答

1413閲覧

PHPのDBについて

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

0グッド

0クリップ

投稿2016/02/19 06:31

DBの勉強のため、書籍を読んでコードを書いているのですがうまく動きません
tableの番号、商品名、単価は表示されるのですがその下が表示できません
なぜでしょうか

PHP

1 <?php 2 $usr = ''; 3 $pwd = ''; 4 $dbname = "sqlite:pdb.db"; 5 6 $db = new PDO($dbname, $usr, $pwd); 7 $db->exec("DROP TABLE IF EXISTS product"); 8 $db->exec("CREATE TABLE product (id INTEGER PRIMARY KEY, name STRING, price INTEGER)"); 9 10 $qry = array( 11 "INTEGER INTO product (name, price) VALUE('鉛筆', 80)", 12 "INTEGER INTO product (name, price) VALUE('消しゴム', 50)", 13 "INTEGER INTO product (name, price) VALUE('定規', 200)", 14 "INTEGER INTO product (name, price) VALUE('ボールペン', 100)" 15 ); 16 foreach ($qry as $value) { 17 $db->exec($value); 18 } 19 20 $qry = "SELECT * FROM product"; 21 $date = $db->query($qry); 22 ?> 23 24 <table border="2"> 25 <tr bgcolor="#AAAAAA"> 26 <th>番号</th> 27 <th>商品名</th> 28 <th>単価</th> 29 </tr> 30 <?php 31 while($value = $date->fetch()){ 32 $id = $value["id"]; 33 $name = $value["name"]; 34 $price = $value["price"]; 35 print "<tr><td>{$id}</td><td>{$name}</td><td>{$price}</td></tr>\n"; 36 } 37 $db = null; 38 ?> 39 </table>

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

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

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

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

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

guest

回答2

0

ベストアンサー

前半のデータ挿入部で $qry に指定されているクエリ文が正しくありません。
INTEGER ではなく INSERT で、VALUE ではなく VALUES ですね。

lang

1$qry = array( 2 "INSERT INTO product (name, price) VALUES('鉛筆', 80)", 3 "INSERT INTO product (name, price) VALUES('消しゴム', 50)", 4 "INSERT INTO product (name, price) VALUES('定規', 200)", 5 "INSERT INTO product (name, price) VALUES('ボールペン', 100)" 6);

投稿2016/02/19 06:52

編集2016/02/19 06:53
chitoku

総合スコア1610

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

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

0

executeした場合はfetchで取れるみたいですね。

今回の場合だとqueryメソッドを利用しているので、

foreach($date as $record) {

のようにforeachでそのまま取れるかと思います。

もし、fetchで取りたい場合は、queryメソッドを使っている部分を

$date = $db->prepare($qry); $date->execute();

に変更すると良いでしょう。
($dateではなく$dataなのでは・・・と思ってますが)

投稿2016/02/19 06:39

編集2016/02/19 06:46
fagai

総合スコア2158

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

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

fagai

2016/02/19 06:57

chitokuさんの通りなのです・・・。補足程度にどうぞ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問