MySQLに関するサンプルコードとデータベースの件数表示方法

このQ&Aのポイント
  • 初心者向けのMySQLのサンプルコードとデータベースの件数を表示する方法を紹介します。
  • PHPを使用してウェブサイトを作成している際に、データベースを使用する必要があり、データベースの関数について困っている状況です。
  • MySQLのSELECT COUNT(*)を使用してデータベースの件数を取得し、PHPのechoを使って表示する方法をサンプルコードとして提供します。
回答を見る
  • ベストアンサー

mysqlについてサンプルなど教えてもらえませんか

すいません。今phpなどを使いウェブサイトを作っているのですが、データベースがどうしても 必要となり、参考サイトなどを見ながら作りました。 ほとんどできたのですが、最後に一部データベースの関数などでわからない事があり困っています。 (正直私はプログラムはphp程度が少し分かる程度で、データベースも単純な使い方しかしない 予定なので参考サイトをざっと見ただけでmysqlの事がほとんど分かりません) ググってそれらしい物を探してはいるのですが、私がやりたい事はデータベースから 件数を取りたいだけです。 取った件数をphpで表示したいのですが、何時間やっても良くわかりません。 申し訳ないんですが取り出した後その件数をphpのechoで表示するまでをサンプルとして書いてもらえませんか?(可能であれば「ここでこのような処理が行われている」とコメントがもらえると助かります) データベース関係はphpと違って初心者用のサイトなども無く、書いてある事がほとんど分かりません。 (ここでSELECT COUNT(*)を使うと教えてもらったのですが、SELECT COUNT(*)でググっても サンプルなども出てきません) $pdo = new PDO("mysql:dbname=aaa", "root"); $pdo->query("set names utf8;"); // ------------------------------------------------ $sql = $pdo->query("SELECT COUNT(*) FROM bbb"); $stmt = $pdo->query($sql); $stmt->execute(); $count=$stmt->rowCount(); echo $count; ----------------------------------------------- $result = mysql_query("SELECT COUNT(*) FROM bbb"); $row = mysql_fetch_assoc( $result ); echo $row;

  • MySQL
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • sora1515
  • ベストアンサー率58% (54/92)
回答No.1

前回COUNT(*)回答の者です。 あれはDBから取得時の件数カウント方法でした。わかりずらくて申し訳ありませんでした。。どっちでも一応可能ですがphp側でもっと楽に件数カウントができます。   $stmt = $pdo->query("SELECT * FROM bbb");  ←ここではカウントしない   $stmt->execute();   $count = $stmt->rowCount();  ←ここでカウント   echo $count; /* 参考: これはSELECT COUNT(*)した場合の         FETCHして1件のみ表示 ※非推奨   $count = $stmt->fetch(PDO::FETCH_ASSOC);   echo implode($count); */ ※質問ソースの場合、件数(例えば10)とDB結果が1行出たものをさらにその件数(いわゆる1行)をPHP側で数えています。(なので何件でも1と出ます)

toto073
質問者

お礼

お礼が遅くなりました。仕事でなかなかプログラムが触れませんでしたので・・。 おっしゃるやり方で上手く動きました。これでサイトは完成しましたのであとはアップロードするだけです。 ありがとうございました。

その他の回答 (1)

  • sora1515
  • ベストアンサー率58% (54/92)
回答No.2

補足 ああsql結果は基本的に配列構造なのでimplode()なりしないと1すら出ません。。

関連するQ&A

  • mysql_fetch_assoc()の非推奨

    phpを始めてまだ数ヶ月の初心者です。 (少々表現が変なところはお許し下さい。) ■やりたい事 phpである登録画面を作成しています。サーバーには スタッフのデーターが入っているテーブルがあります。 (1)DBに登録してあるスタッフの名前を全部引っ張り出す(mysql)。 (2)登録画面の入力項目の1つとして(登録スタッフ)があり、  そこを<select>で上記(1)から取り出したものを自動で表示したい。 ところが、mysql_fetch_assoc()について調べたら、非推奨などと載っていて (内容がよく理解できませんでしたが)どのように記述したら、将来困らない  コーディングとなりますか? <select name="register"> <?php $sql = "select count_ID, name from reserve"; $result = mysql_query($sql); while ($row = mysql_fetch_assoc($result)) { echo "<option value=\"".$row["count_ID"]."\">" .$row["name"]."</option>"; } ?> </select> 今からphpの知識を少しづつつけていくにあたり、非常に混乱して います。mysqlをそもそも学んでいてもしょうがないということでは ないですよね。本当に初心者なので、お手数ですがわかりやすい表現 でお願いします。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpでmysqlから画像パスを出力する

    phpを勉強始めたばかりで、データベースを使う必要がでてきたため、初心者サイトを 読んでいるのですが、一点質問があります。 行いたい事は、データベースに保存した画像パスをphpで出力するだけなのですが、パスが 文字列として扱われてしまっています。画像を出力するにはどうすれば良いでしょうか? 例えば以下のようなphpプログラムで、nameには画像パスである 「abc.jpg」という文字が 入っていたとすると以下ではそのままabc.jpgという文字列が出力されてしまします・・・。 <?php $pdo = new PDO("mysql:dbname=aaa", "root"); $pdo->query("set names utf8;"); $st = $pdo->query("SELECT * FROM bbb"); while ($row = $st->fetch()) { $name = htmlspecialchars($row['name']); echo '<img src="$name">'; } ?>

  • mysql

    phpでmysqlのテーブルからデータを引っ張ってくる構文なのですが $pdo = new PDO("mysql:dbname=データベース名", "root", "root"); $st = $pdo->query("SELECT * FROM テーブル名"); while ($row = $st->fetch()) { $name = htmlspecialchars($row['テーブル名']); $price = htmlspecialchars($row['price']); echo "<tr><td>$name</td><td>$price 円</td></tr>"; 上記のデバックに手こずっております。 自分の知りたいところはカタカナ、漢字の使われているところが正しいのか知りたいです。 またもっと楽な方法があれば教えて頂きたいです。 馬鹿でスミマセンがよろしくお願いします。

    • ベストアンサー
    • MySQL
  • PHP MySQLでエラーがでてしまいます。

    PHP MySQLからデータを取得したいのですが、以下のエラーが出てしまい原因が分かりません。 詳しい方お願い致します。 <b>Warning</b>: json_encode() expects exactly 1 parameter, 2 given in <b>/home/users/2/***.**-********/web/****************/php/seupPharmacyData.php</b> on line <b>21</b><br /> エラーが出るコードは以下になります。 <?php include "db.php"; $sql = "SELECT * FROM user_data"; $query = mysql_query($sql, $db) or die("クエリの送信に失敗しました。<br />SQL:".$sql); $result= array(); while ($row = mysql_fetch_object($query)) { $result[] = array( 'name1' => $row->name1, 'name2' => $row->name2, 'name3' => $row->name3, 'id' => $row->id, ); } //jsonとして出力 header('Content-type:application/json; charset=UTF-8'); echo json_encode($result,JSON_UNESCAPED_UNICODE); ?>

    • ベストアンサー
    • PHP
  • MYSQL→PHP→10件表示

    現在phpを勉強しているのですがどうしても分からないことがあり、 質問をさせて頂きました。 PHPとMYSQLを使い、プルダウンメニューから検索した結果を 10件表示をしていきたいのですが、どうしてもうまくいかず混乱しております。 どのなたかご存知の方、お伺いしても宜しいでしょうか? $PAGESIZE = 10; //ここにmysqlに接続するスクリプト extract($_REQUEST); if (!isset($page)) { $page = 1; } if(!empty($fld)) { //$fldに検索したい住所が入ってます。 $local = addslashes($fld); $where .= "add1 = '$fld' && "; } if(!empty($where)) { $where = substr($where, 0, -3); $where = "WHERE " . $where; } $sql = "select count(*) as cnt from ○○ ". $where; $rst = mysql_query($sql); $row = mysql_fetch_array($rst); $tcnt = $row["cnt"]; mysql_free_result($rst); $totalpage = ceil($tcnt / $PAGESIZE); $pagehead = "<B>$tcnt 件みつかりました。 " . "[" . ($PAGESIZE * ($page - 1) + 1) . "-"; if ($page < $totalpage) { $pagehead .= ($PAGESIZE * $page) . "] を表示</B>"; } else { $pagehead .= "$tcnt] を表示</B>"; } $sql = "select * from ○○ ". $where. " order by renban desc limit " . $PAGESIZE * ($page - 1) . ", $PAGESIZE"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>登録データがありません。</p>"; } else { while($row = mysql_fetch_array($result)){ echo "<p>"; echo $row["renban"]; echo " "; echo $row["tourokubi"]; echo "<br />"; echo $row["people"]; echo " "; echo $row["add1"]; echo $row["add2"]; echo "-"; echo $row["sta"]; echo " "; echo $row["tel"]; echo $row["url"]; echo $row["sejitu"]; echo $row["pr"]; echo "</p><hr />"; } } ?> <?= $pagehead ?> <?php mysql_free_result($result); mysql_close; $param_local = rawurlencode($local); if ($page > 1) { $body .= "<A href = '$PHP_SELF?page=" . ($page - 1) . "&tcnt=$tcnt&local=". $param_local. $param_category. "'>" . "前の $PAGESIZE 件</A>"; } if ($totalpage > 1 and $page < $totalpage) { $body .= "<A href = '$PHP_SELF?page=" . ($page + 1) . "&tcnt=$tcnt&local=". $param_local. $param_category. "'>" . "次の $PAGESIZE 件</A>"; } ?> <?= $body ?> </body> </html>

    • ベストアンサー
    • PHP
  • phpMyadminとPHP上からの違い?

    おせわになります よろしくお願いします SELECT COUNT(*) FROM テーブル名 WHERE dee = 0 AND Fee LIKE '%文字%' というSQL文があり、 phpMyadmin上からSQLを実行すると 4と表示されるのですが PHPから $sql = "SELECT COUNT(*) FROM テーブル名 WHERE dee = 0 AND Fee LIKE '%文字%'"; $result = mysql_query($sql,$conn); $row = mysql_fetch_row($result); とすると0、$row[0]は0となります 特にエラーの表示もなく データベースへの接続も問題ないようなのですが 原因がわかるかたいらっしゃいましたら 教えて下さい 以上よろしくお願いします

    • ベストアンサー
    • PHP
  • MYSQL、PHP. データが入っていない個所を非表示にする方法

    よろしくお願いいたします。 現在、MYSQLとPHPを使ってゲームのデータベースのサイトを作っています。 ゲームのキャラクターなどを登録してあるのですが、キャラクター登録のないゲームのページもあります。 そういうとき、キャラクターがあるときには、 例 ================================================================ FF7に登場するキャラクター ================================================================ ・クラウド ・セフィロス ・コルネオ ・・・ というように出して、データ登録がない場合は(ここでいうと帯ごと)表示させないようにするにはどのようにしたらよいのでしょうか? ifを使うというのは何となく予想しているのですが、実際どのように組んだらよいものかさっぱりわからずに。。 ちなみに、現在の僕のサイトの該当箇所はこのように組んであります。(少し簡略化させていただきました) echo "<h3><div id =midashi>$○○ に登場するキャラクター</div></h3>"; $sql= "select * from game; $result = mysql_query($sql); $rows = mysql_num_rows($result); while($row = mysql_fetch_array($result)){ echo "<p>"; echo $row3["chara"]; echo "</p>"; } 何か説明が足りない個所などございましたらがんがんおっしゃってください。 よろしくお願いいたします!

    • ベストアンサー
    • PHP
  • mysqlデータベースの表示のさせ方

    超初歩的な質問ですいません。。独学でやっているもので、頼る人もいないうえに、どういう勉強をしたらよいのか分からなかったので質問しました。 データベースを作って、それを出力する際に、htmlのデーブルの中に値を入れたいと思っています。 --------------------------------------------------------------- $sql= "select * from テーブル"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>該当データがありません。</p>"; } else { while($row = mysql_fetch_array($result)){ echo "<p>"; echo $row["kashu"];               echo $row["hurigana"]; echo "</p><hr />"; } } ?> ---------------------------------------------------------------- いろいろなウェブサイトの見よう見まねでここまではできました。 今の状態で表示すると、 サザンオールスターズ さざんおーるすたーず というように並ぶのですが、これを、 +----------+---------------------+ | 歌手      |サザンオールスターズ   | +----------+---------------------+ | ふりがな   |さざんおーるすたーず   | +----------+---------------------+ という感じに、htmlのテーブルに入れて表示させるには、どのように表記すればよいのでしょうか?? また、こういったデータベースの値を表示させるようなことを初心者向けに解説している本などもしご存知でしたら教えていただけると恐縮です(こちらはご存じでしたらでいいです)。

    • ベストアンサー
    • MySQL
  • PHP+MySQLを実行するとエラーが出てパソコンがフリーズする。

    次のphpを実行すると、求めるデータは表示出来ますが、その下に引き続き Warnning:mysql_result()[function.mysql_result]: Unable to jump to row 7 on MySQL result index 3 in C:****test.php on line 10; 同文で on line 11; 以下,Unable to jump toの 「 row 7」 が row 8 row 9・・・・・・ と延々と続き、パソコンがフリーズしてしまいます。 実行したphp文。 <?php $con=mysql_connect(localhost,"root","root"); $selectdb=mysql_select_db("sales",$con); $sql="select * from sample"; $result=mysql_query($sql,$con); $row=mysql_fetch_array($result); $price=mysql_result($result,$i,1); $volume=mysql_result($result,$i,2); echo("$price:$volume<br>\n"); mysql_close($con); ?> 参考書を調べて、いろいろ変えてみましたが、分かりません。 幼稚なphp文で恐縮ですが、悪いところをご指摘頂ければ有難いです。

    • ベストアンサー
    • PHP
  • GETメソッド ID MYSQL

    分からないことがありましたのでご質問をさせて頂きます。 現在作成してる仕様なのですが、 フォームの一つの項目のリンクを設置し、別のページに渡し そこで更に詳細な情報をMYSQLからひっぱってきて表示させようとしております。 そこでGETメソッドを使って行おうとしているのですが、どうしても 変数の受け渡しがうまくいきません。 こちらがそのコードになります。 1,フォーム <td><a href="shousai.php?code=<?php echo $row['id'];?>">詳しくはこちら</a></td> 2,詳細ページ(shousai.php) <?php echo var_dump($_GET["id"]); $id = $_GET["id"]; $con = mysql_connect('localhost','aaaa','aaa'); if (!$con) { print("MySQLへの接続に失敗しました"); exit; } if (!mysql_select_db("database")) { print("データベースへの接続に失敗しました"); exit; } $sql="select * from table where id ='$id'"; $result=mysql_query($sql,$con); //SQL文の発 $rows=mysql_num_rows($result); while($row = mysql_fetch_array($result)){ ?> <table border ="1"> <tr><td><?php echo $row["name"]; ?></p></td></tr> <tr><td><?php echo $row["address"]; ?></td></tr> <tr><td><?php echo $row["station"]; ?></td></tr> <?php } ?> </table> 2の詳細ページにてvar_dumpで$_GET["id"];の値を受け取ってるか 確かめたのですがNULLになっており、ページになにも反映されません。 フォームからリンクで値を送り、それをきっかけにデータベースに接続して詳細を表示させたいと思っております。 どなたかご存知の方お伺いできませんでしょうか?

    • ベストアンサー
    • PHP