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

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

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

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

PHP

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

Q&A

解決済

2回答

1693閲覧

PHPでデータベース

shanso

総合スコア14

MySQL

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

PHP

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

0グッド

0クリップ

投稿2015/10/09 01:07

授業でPHPの課題が出たのですが
14行目の???のところに何を入力すればよいかわかりません
教えていただけないでしょうか?
ソースコードに間違いがあった場合そこの指摘もお願いします。

<!docutype html> <html> <head> <meta charset="utf-8"> <title>データベースの操作</title> </head> <body> 1.販売先表の表示<br> <?php $conn=mysqli_connect('localhost','root','パス') or exit('DB接続失敗'); mysqli_db_select('$conn','DB名') or exit("DBがありません"); $sql="select * from テーブル名;"; $result=mysql_query($conn,$sql)or exit("問い合わせに失敗しました"); if(mysqli_num_row($result)==????) exit("行は存在しません"); else{ echo "<table>\n <tr><th>販売先コード</th>\n <th>商品コード</th>\n <th>販売先</th>\n <th>販売先住所</th>\n <th>販売先電話番号</th>\n <th>販売先FAX</th>\n <th>販売先メルアド</th>\n <th>役職</th>\n <th>担当者</th><tr>\n"; while($row=mysqli_fetch_array($result)){ echo "<tr>\n <td>{$row['saleDestinationId']}</td>\n <td>{$row['commodityid']}</td>\n <td>{$row['saleDestinationName']}</td>\n <td>{$row['saleDestinationAddress']}</td>\n <td>{$row['saleDestinationTel']}</td>\n <td>{$row['saleDestinationFax']}</td>\n <td>{$row['saleDestinationMail']}</td>\n <td>{$row['saleDestinationPosition']}</td>\n <td>{$row['saleDestinationResponsible']}</td>\n </tr>"; } echo"</table>\n"; ?> </body> </html>

こちらがデータベースのソースコードになります
saleDestinationId varchar(10) not null primary key,
commondityId varchar(10) not null,
saleDestinationName varchar(100) not null,
saleDestinationAddress varchar(200) not null,
saleDestinationTel varchar(15) not null,
saleDestinationMail varchar(50),
saleDestinationPosition varchar(20),
saleDestinationResponsible varchar(30)

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

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

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

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

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

guest

回答2

0

ベストアンサー

文書型宣言に誤りがある、というのも指摘対象でしょうか(<!docutype html><!DOCTYPE html>)。綴りが違いますし大文字で書くべきかと思います(The HTML5 SYNTAX)。

投稿2015/10/09 02:47

編集2015/10/09 02:49
k1000

総合スコア67

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

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

0

mysqli_num_row()' はクエリー実行結果の行数(レコード数)を返します。 クエリー実行が正常にできていれば、結果なし(0行)ならゼロが返されるはずですので、 0と比較すればよろしいかと思われます。 また、おそらく転記ミスだと思いますが、 mysql_query()mysqli_query()`ですよね。
mysqli系の方がmysql系よりも後発で改良されているものなので、
混ざってないか今一度点検すると良いでしょう。

【参考】
PHP: mysqli_result::$num_rows - Manual
http://php.net/manual/ja/mysqli-result.num-rows.php

あと、これは好みの問題(?)ですが、こういう書き方もあります

php

1echo <<<EOT 2 <tr> 3 <td>{$row['saleDestinationId']}</td> 4 <td>{$row['commodityid']}</td> 5 <td>{$row['saleDestinationName']}</td> 6 <td>{$row['saleDestinationAddress']}</td> 7 <td>{$row['saleDestinationTel']}</td> 8 <td>{$row['saleDestinationFax']}</td> 9 <td>{$row['saleDestinationMail']}</td> 10 <td>{$row['saleDestinationPosition']}</td> 11 <td>{$row['saleDestinationResponsible']}</td> 12 </tr> 13EOT;

とか

php

1?><tr> 2 <td><?php echo $row['saleDestinationId']; ?></td> 3 <td><?php echo $row['commodityid']; ?></td> 4 <td><?php echo $row['saleDestinationName']; ?></td> 5 <td><?php echo $row['saleDestinationAddress']; ?></td> 6 <td><?php echo $row['saleDestinationTel']; ?></td> 7 <td><?php echo $row['saleDestinationFax']; ?></td> 8 <td><?php echo $row['saleDestinationMail']; ?></td> 9 <td><?php echo $row['saleDestinationPosition']; ?></td> 10 <td><?php echo $row['saleDestinationResponsible']; ?></td> 11</tr> 12<?php

$row['~'] を直接出力すると、その出力する文字列に<``>``&などを含むと文字欠けが生じるので、
htmlspecialchars() を駆使して対策することが多いと思います。

参考:PHP: htmlspecialchars - Manual
http://php.net/manual/ja/function.htmlspecialchars.php
ヒアドキュメント
http://php.net/manual/ja/language.types.string.php#language.types.string.syntax.heredoc

投稿2015/10/09 02:24

編集2015/10/09 04:01
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

shanso

2015/10/09 02:45

ありがとうございます 指摘された点を修正しましたが42行目、つまり最後の行でエラーがでます。 エラー内容は Parse error: syntax error, unexpected end of file in ファイル名 on line 42 これはどこが間違っているのでしょうか 何度もすいませんがお願いします
退会済みユーザー

退会済みユーザー

2015/10/09 04:02 編集

if(mysqli_num_rowル(...)) else {ループをくくる`}`が足りてない気がします。
退会済みユーザー

退会済みユーザー

2015/10/09 03:47

なお、phpコードとhtmlコードが混在すると`{`~`}`の組み合わせが読みづらくなる場合があるので、`if () :`~`endif;`構造を駆使するといいかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問