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

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

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

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

PHP

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

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

Q&A

解決済

2回答

2895閲覧

PHP オブジェクト指向でデータベースの表示

shanso

総合スコア14

mysqli

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

PHP

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

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

0グッド

0クリップ

投稿2016/01/26 16:43

phpでデータベースを表示しようとしていますが
「データがありません」と表示されます
データベース名、テーブル名に間違いはなくデータも入ってます
どこに間違いがあるのか教えてもらえますか
お願いします

以下ソースをのせます。

<?php class dbClass { public $hostName;//DBのホスト名 public $userName;//DBユーザ名 public $passWord;//DBのパスワード public $mysqli;//DBのリソースオブジェクト public $result;//問い合わせの戻り値 public $num_rows; //コンストラクタ public function __construct($hostName,$userName,$passWord,$dbName) { $this->hostName=$hostName; $this->userName=$userName; $this->passWord=$passWord; $this->dbName=$dbName; } public function dbConect() { $this->mysqli=new mysqli($this->hostName,$this->userName,$this->passWord,$this->dbName); if($this->mysqli->connect_error){ die('Connect error:'.$this->mysqli->connect_error); } } public function dbExecute($sql) { if(!$this->result=$this->mysqli->query($sql)){ die('Query error:'.$this->mysqli->error); } } public function dbNumRow() { if($this->result=$this->num_rows==0)return 0; else return $this->result->num_rows; } public function dbFetchArray($para) { return $this->result->fetch_array($para); } } $dbA=new dbClass('localhost','root','pass','userid_db'); $dbA->dbConect(); $dbA->dbExecute('select * from userid_tbl;'); if($dbA->dbNumRow()==0)exit('データはありません'); while($row=$dbA->dbFetchArray(MYSQLI_ASSOC)){ echo $row['id'].":".$row['userName'].":".$row['passWd'].":".$row['eMail']."<br>\n"; } $dbA->mysqli->close(); ?>

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

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

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

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

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

guest

回答2

0

ベストアンサー

PHP

1public function dbNumRow() 2{ 3 if($this->result=$this->num_rows==0)return 0; 4 else return $this->result->num_rows; 5}

こちらのコードの「if文の条件箇所」に誤りがあると思います。
$this->result = $this->num_rows==0

によって、検索結果が入っている $this->result を、 boolean 型の値で上書きしてしまってます。

mysqlのインストールをしていないため、未検証になって大変恐縮ですが・・・
dbNumRowメソッド名から推察するに、結果の件数が知りたいはずですので、以下のようにされれば良いかと思いますが、いかがでしょうか。

PHP

1public function dbNumRow() 2{ 3 //もしも result が mysql_resultクラスのインスタンスでなければ 0 を返す 4 if(!($this->result instanceof mysqli_result)) 5 return 0; 6 else 7 return $this->result->num_rows; 8}

投稿2016/01/27 08:25

Toyoshima

総合スコア422

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

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

shanso

2016/01/27 12:32

無事にテーブルの内容が表示されました ありがとうございます!
guest

0

dbNumRow() のなかで、 $this->num_rows と 0 が、一致したら 0 をかえしていますが、$this->num_rows には、いつ値を代入しているのでしょうか。

投稿2016/01/26 22:20

CHERRY

総合スコア25171

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問