MySQL データベースの処理13
データーベースの基礎知識
トップ5/ワースト5のレコードのみ取り出す
使用関数: LIMIT 句(SQL) ORDER BY 句(SQL)
- あるデータの値の大きさを基準にして、トップ5/ワースト5を取り出して表示する。
- COL 4 フィールドの値で降順に並べ替えて、LIMIT 句で先頭から5レコードだけを取り出す。
ワースト5は、COL 4 フィールドの値で昇順に並べ替えて、LIMIT 句で先頭から5レコードだけを取り出す。
【 書式 】
<?php $DBSERVER = "localhost"; // MySQL サーバ名 $DBUSER = "*****"; // ログインユーザ名 $DBPASSWORD = "*****"; // パスワード $DBNAME = "*****"; // データベース名 $TABLEHEAD = "<table berder='1'> <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit ("MySQL に接続できない"); } // データベースを選択 mysql_select_db ($DBNAME); // MySQL の文字コードを設定 mysql_query ("set names UTF8"); // 1〜5レコード目を読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` ORDER BY `COL 4` DESC LIMIT 5"; $body .= "【 トップ5のデータ 】" . $TABLEHEAD; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // COL 4 のワースト5を読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` ORDER BY `COL 4` LIMIT 5"; $body .= "【 ワースト5のデータ 】" . $TABLEHEAD; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; //MySQLとの接続を解除 mysql_close(); ?> <table border="1"> <tr> <th>タイトル</th> <th>本体価格</th> <th>発売</th> </tr> <tr> <?=$body?> </tr> </table>
ソースコード
ソースコード【 HTML 】
<?php $DBSERVER = "localhost"; // MySQL サーバ名 $DBUSER = "*****"; // ログインユーザ名 $DBPASSWORD = "*****"; // パスワード $DBNAME = "*****"; // データベース名 $TABLEHEAD = "<table berder='1'> <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit ("MySQL に接続できない"); } // データベースを選択 mysql_select_db ($DBNAME); // MySQL の文字コードを設定 mysql_query ("set names UTF8"); // 1〜5レコード目を読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` ORDER BY `COL 4` DESC LIMIT 5"; $body .= "【 トップ5のデータ 】" . $TABLEHEAD; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // COL 4 のワースト5を読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` ORDER BY `COL 4` LIMIT 5"; $body .= "【 ワースト5のデータ 】" . $TABLEHEAD; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; //MySQLとの接続を解除 mysql_close(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="description" content=""> <meta name="keywords" content=""> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"> <title>webサイト開発 | PHPサンプルサイト</title> <link href="../css/reset.css" rel="stylesheet" type="text/css" media="screen"> <!-- CSS for slidesjs.com example --> <link rel="stylesheet" href="../css/example.css"> <link rel="stylesheet" href="../css/font-awesome.min.css"> <!-- End CSS for slidesjs.com example --> <link rel="stylesheet" href="../css/embet.css"> <link href="../css/common.css" rel="stylesheet" type="text/css" media="screen"> <link href="../css/page.css" rel="stylesheet" type="text/css" media="screen"> <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#main_menu > li > ul').slideUp() }); $('#main_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#main_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#main_menu > li > ul').slideUp() }); $('#main_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#main_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#list_menu > li > ul').slideUp() }); $('#list_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#list_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <style type="text/css"> #main_menu > li > ul { display: none; padding: 10px 10px 5px; background: rgba(169, 169, 170, 1.0); cursor: pointer!important; } </style> </head> <body> <!--▽#container--> <div id="container"> <header class="clearfix"> <h1><a href="../index.html"><img src="../images/logo.png" width="75" alt=""></a><span>webサイト開発 | PHPサンプルサイト</span></h1> <!--▽#menu--> <ul id="main_menu"> <li> <a href=""><img src="../images/menu.png" width="38px" alt=""></a> <ul class="menu_home"> <li><span class="menu_title">HOME</span> <li><a href="#top">TOP</a></li> </li> </ul> <ul class="menu_link"> <li><span class="menu_title">LINK</span> <li><a href="http://d.hatena.ne.jp/webry/">実践するWEBサイト制作 | webnote</a></li> <li><a href="http://webry.dousetsu.com/images_deta/">はてなデーターの保管庫 | webrynote</a></li> <li><a href="http://webrynote.jimdo.com/"></a>動画で確認するscript | FlashとJavaScrip</li> <li><a href="http://webry.dousetsu.com/"></a>実践でカフェオレを俺流においしく作るサイト | カフェ俺流に作る</li> </li> </ul> <ul class="menu_sns"> <li><span class="menu_title">SNS</span> <li><a href="https://twitter.com/webrynote">Twitter</a></li> <li><a href="https://www.facebook.com/note.webry">Facebook.</a></li> <li><a href="http://webry.tumblr.com/">Tumblr</a></li> </li> </ul> </li> </ul> </header> <!--▽.content--> <div class="content"> <!--▽.col1--> <section class="col1"> <h2>データーベースの基礎知識</h2> </section> <!--▲.col1--> <!--▽.content_inner--> <div class="content_inner"> <section class="col2"> <section id="post01" class="col2-1 post"> <a href="#post01"> <h2><span class="ita">2-11 </span>トップ5/ワースト5のレコードのみ取り出す</h2> </a> <div class="post_inner">LIMIT 句(SQL) ORDER BY 句(SQL) </p> <ul class="list01"> <li>あるデータの値の大きさを基準にして、トップ5/ワースト5を取り出して表示する。</li> <li>COL 4 フィールドの値で降順に並べ替えて、LIMIT 句で先頭から5レコードだけを取り出す。<br> ワースト5は、COL 4 フィールドの値で昇順に並べ替えて、LIMIT 句で先頭から5レコードだけを取り出す。</li> </ul> </div> </section> <!--▲.col2-1--> <section class="col-code"> <div id="post02" class="post"> <a href="#post02"> <h2><span>PHPのコードを表示</span></h2> </a> <div class="post_inner"> <div class="inner"> <pre> <code> <?php $DBSERVER = "*******"; // MySQL サーバ名 $DBUSER = "*******"; // ログインユーザ名 $DBPASSWORD = "********"; // パスワード $DBNAME = "*********"; // データベース名 $TABLEHEAD = "<table berder='1'> <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit ("MySQL に接続できない"); } // データベースを選択 mysql_select_db ($DBNAME); // MySQL の文字コードを設定 mysql_query ("set names UTF8"); // 1〜5レコード目を読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` ORDER BY `COL 4` DESC LIMIT 5"; $body .= "【 トップ5のデータ 】" . $TABLEHEAD; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // COL 4 のワースト5を読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` ORDER BY `COL 4` LIMIT 5"; $body .= "【 ワースト5のデータ 】" . $TABLEHEAD; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; //MySQLとの接続を解除 mysql_close(); ?> <?php <?=$body?> ?> </code> </pre> </div> </div> </div> </section> <section class="col2"> <div id="post03" class="post"> <a href="#post03"> <h2><span>PHPでの表示</span></h2> </a> <div class="post_inner"> <div class="inner"> <div class="php wd_wrap"> <table border="1"> <tr> <th>タイトル</th> <th>本体価格</th> <th>発売</th> </tr> <tr> <?=$body?> </tr> </table> </div> </div> </div> </div> </section> <!--<section class="col2"> <div id="post04" class="post"> <a href="#post04"><h2><span>FORMでの入力</span></h2></a> <div class="post_inner"> <div class="inner"> <div> </div> </div> </div> </div> </section>--> <p class="c_top"><a href="../index.html#13">▲ カテゴリートップへ戻る</a></p> <section class="bottom clearfix"> <a href="#"> <p class="page_top">TOP</p> </a> <div class="share_box"> <p><span>このサイトをシェアする</span> <a href="https://twitter.com/share" class="twitter-share-button" data-via="webrynote">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script><br> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> </p> </div> </section> <!--▲.bottom--> </section> <!--▲.content--> <footer> <ul> <li><a href="http://d.hatena.ne.jp/webry/">実践するWEBサイト制作 | webnote</a></li> <li><a href="http://webry.dousetsu.com/images_deta/">はてなデーターの保管庫 | webrynote</a></li> <li><a href="http://webrynote.jimdo.com/">動画で確認するscript | FlashとJavaScrip</a></li> <li><a href="http://webry.dousetsu.com/">実践でカフェオレを俺流においしく作るサイト | カフェ俺流に作る</a></li> <li><a href="https://twitter.com/webrynote">Twitter</a></li> <li><a href="https://www.facebook.com/note.webry">Facebook.</a></li> <li><a href="http://webry.tumblr.com/">Tumblr</a></li> </ul> <address> Copyright © 2014 webry - 『 webサイト開発 | PHPサンプルサイト 』 All Rights Reserved. </address> </footer> </div> <!--▲.content_inner--> </div> <!--▲#container--> </body> </html>
表示内容を確認
MySQL データベースの処理12
データーベースの基礎知識
新着データをピックアップ表示する
使用関数: LIMIT 句(SQL) ORDER BY 句(SQL)
- 「 bookinfo 」テーブルには書籍のタイトル、価格、発売日のデータが保存されている。それぞれに「 title 」「 price 」「 releasedate 」という、フィールド名がつけられている。
新しい書籍が発売されるたびにデータが追加登録されるので、発売日が古い順にデータが保存される。
まず「 ORDER BY releasedate DESC 」という SQL 文によって、発売日の降順 = 最近発売された順に並べ替える。さらに「 LIMIT 5 」という記述によって、並べ替え後の先頭レコードから 5 レコード目までだけを取り出す。
これにより「 新着書籍5冊 」をピックアップできる。
【 書式 】
<?php $DBSERVER = "localhost"; // MySQL サーバ名 $DBUSER = "*****"; // ログインユーザ名 $DBPASSWORD = "*****"; // パスワード $DBNAME = "*****"; // データベース名 // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit ("MySQL に接続できない"); } // データベースを選択 mysql_select_db ($DBNAME); // MySQL の文字コードを設定 mysql_query ("set names UTF8"); // 1〜5レコード目を読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 5` ORDER BY `releasedate` DESC LIMIT 5"; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD>" . $col['title'] . "</TD>"; $body .= "<TD align='right'>" . $col['price'] . "</TD>"; $body .= "<TD>" . $col['releasedate'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); //MySQLとの接続を解除 mysql_close(); ?> <table border="1"> <tr> <th>タイトル</th> <th>本体価格</th> <th>発売</th> </tr> <tr> <?=$body?> </tr> </table>
ソースコード
ソースコード【 HTML 】
<?php $DBSERVER = "localhost"; // MySQL サーバ名 $DBUSER = "*****"; // ログインユーザ名 $DBPASSWORD = "*****"; // パスワード $DBNAME = "*****"; // データベース名 // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit ("MySQL に接続できない"); } // データベースを選択 mysql_select_db ($DBNAME); // MySQL の文字コードを設定 mysql_query ("set names UTF8"); // 1〜5レコード目を読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 5` ORDER BY `releasedate` DESC LIMIT 5"; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD>" . $col['title'] . "</TD>"; $body .= "<TD align='right'>" . $col['price'] . "</TD>"; $body .= "<TD>" . $col['releasedate'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); //MySQLとの接続を解除 mysql_close(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="description" content=""> <meta name="keywords" content=""> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"> <title>webサイト開発 | PHPサンプルサイト</title> <link href="../css/reset.css" rel="stylesheet" type="text/css" media="screen"> <!-- CSS for slidesjs.com example --> <link rel="stylesheet" href="../css/example.css"> <link rel="stylesheet" href="../css/font-awesome.min.css"> <!-- End CSS for slidesjs.com example --> <link rel="stylesheet" href="../css/embet.css"> <link href="../css/common.css" rel="stylesheet" type="text/css" media="screen"> <link href="../css/page.css" rel="stylesheet" type="text/css" media="screen"> <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#main_menu > li > ul').slideUp() }); $('#main_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#main_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#main_menu > li > ul').slideUp() }); $('#main_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#main_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#list_menu > li > ul').slideUp() }); $('#list_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#list_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <style type="text/css"> #main_menu > li > ul { display: none; padding: 10px 10px 5px; background: rgba(169, 169, 170, 1.0); cursor: pointer!important; } </style> </head> <body> <!--▽#container--> <div id="container"> <header class="clearfix"> <h1><a href="../index.html"><img src="../images/logo.png" width="75" alt=""></a><span>webサイト開発 | PHPサンプルサイト</span></h1> <!--▽#menu--> <ul id="main_menu"> <li> <a href=""><img src="../images/menu.png" width="38px" alt=""></a> <ul class="menu_home"> <li><span class="menu_title">HOME</span> <li><a href="#top">TOP</a></li> </li> </ul> <ul class="menu_link"> <li><span class="menu_title">LINK</span> <li><a href="http://d.hatena.ne.jp/webry/">実践するWEBサイト制作 | webnote</a></li> <li><a href="http://webry.dousetsu.com/images_deta/">はてなデーターの保管庫 | webrynote</a></li> <li><a href="http://webrynote.jimdo.com/"></a>動画で確認するscript | FlashとJavaScrip</li> <li><a href="http://webry.dousetsu.com/"></a>実践でカフェオレを俺流においしく作るサイト | カフェ俺流に作る</li> </li> </ul> <ul class="menu_sns"> <li><span class="menu_title">SNS</span> <li><a href="https://twitter.com/webrynote">Twitter</a></li> <li><a href="https://www.facebook.com/note.webry">Facebook.</a></li> <li><a href="http://webry.tumblr.com/">Tumblr</a></li> </li> </ul> </li> </ul> </header> <!--▽.content--> <div class="content"> <!--▽.col1--> <section class="col1"> <h2>データーベースの基礎知識</h2> </section> <!--▲.col1--> <!--▽.content_inner--> <div class="content_inner"> <section class="col2"> <section id="post01" class="col2-1 post"> <a href="#post01"> <h2><span class="ita">2-10 </span>新着データをピックアップ表示する</h2> </a> <div class="post_inner">LIMIT 句(SQL) ORDER BY 句(SQL) </p> <ul class="list01"> <li>「 bookinfo 」テーブルには書籍のタイトル、価格、発売日のデータが保存されている。それぞれに「 title 」「 price 」「 releasedate 」という、フィールド名がつけられている。<br> 新しい書籍が発売されるたびにデータが追加登録されるので、発売日が古い順にデータが保存される。<br> まず「 ORDER BY releasedate DESC 」という SQL 文によって、発売日の降順 = 最近発売された順に並べ替える。さらに「 LIMIT 5 」という記述によって、並べ替え後の先頭レコードから 5 レコード目までだけを取り出す。<br> これにより「 新着書籍5冊 」をピックアップできる。</li> </ul> </div> </section> <!--▲.col2-1--> <section class="col-code"> <div id="post02" class="post"> <a href="#post02"> <h2><span>PHPのコードを表示</span></h2> </a> <div class="post_inner"> <div class="inner"> <pre> <code> <?php $DBSERVER = "*******"; // MySQL サーバ名 $DBUSER = "*******"; // ログインユーザ名 $DBPASSWORD = "********"; // パスワード $DBNAME = "*********"; // データベース名 // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit ("MySQL に接続できない"); } // データベースを選択 mysql_select_db ($DBNAME); // MySQL の文字コードを設定 mysql_query ("set names UTF8"); // 1〜5レコード目を読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 5` ORDER BY `releasedate` DESC LIMIT 5"; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD>" . $col['title'] . "</TD>"; $body .= "<TD align='right'>" . $col['price'] . "</TD>"; $body .= "<TD>" . $col['releasedate'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); //MySQLとの接続を解除 mysql_close(); ?> <?php <?=$body?> ?> </code> </pre> </div> </div> </div> </section> <section class="col2"> <div id="post03" class="post"> <a href="#post03"> <h2><span>PHPでの表示</span></h2> </a> <div class="post_inner"> <div class="inner"> <div class="php wd_wrap"> <table border="1"> <tr> <th>タイトル</th> <th>本体価格</th> <th>発売</th> </tr> <tr> <?=$body?> </tr> </table> </div> </div> </div> </div> </section> <!--<section class="col2"> <div id="post04" class="post"> <a href="#post04"><h2><span>FORMでの入力</span></h2></a> <div class="post_inner"> <div class="inner"> <div> </div> </div> </div> </div> </section>--> <p class="c_top"><a href="../index.html#13">▲ カテゴリートップへ戻る</a></p> <section class="bottom clearfix"> <a href="#"> <p class="page_top">TOP</p> </a> <div class="share_box"> <p><span>このサイトをシェアする</span> <a href="https://twitter.com/share" class="twitter-share-button" data-via="webrynote">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script><br> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> </p> </div> </section> <!--▲.bottom--> </section> <!--▲.content--> <footer> <ul> <li><a href="http://d.hatena.ne.jp/webry/">実践するWEBサイト制作 | webnote</a></li> <li><a href="http://webry.dousetsu.com/images_deta/">はてなデーターの保管庫 | webrynote</a></li> <li><a href="http://webrynote.jimdo.com/">動画で確認するscript | FlashとJavaScrip</a></li> <li><a href="http://webry.dousetsu.com/">実践でカフェオレを俺流においしく作るサイト | カフェ俺流に作る</a></li> <li><a href="https://twitter.com/webrynote">Twitter</a></li> <li><a href="https://www.facebook.com/note.webry">Facebook.</a></li> <li><a href="http://webry.tumblr.com/">Tumblr</a></li> </ul> <address> Copyright © 2014 webry - 『 webサイト開発 | PHPサンプルサイト 』 All Rights Reserved. </address> </footer> </div> <!--▲.content_inner--> </div> <!--▲#container--> </body> </html>
表示内容を確認
MySQL データベースの処理11
データーベースの基礎知識
特定の位置から指定レコード数のみ取り出す
使用関数: LIMIT 句(SQL)
- 特定の位置から指定した数だけのレコード数を読み込むことができる。
WHERE 句はデータの内容によって抽出するが、LIMIT 句は単純なレコード番号で抽出する。 - 「 LIMIT 」に続けて読み込む最初のレコード番号、読み込むレコード数をカンマで区切って指定する。
レコード番号は、1レコード目を「 0 」として数える。以下は、1〜5レコード目だけを読み込む例。
LIMIT 0, 5
「 LIMIT 5 」のように一方だけを指定した場合には、「 先頭から指定レコード数のみ 」が取り出せる。
「 LIMIT 0, 5 」と「 LIMIT 5 」は同じ結果になる。
【 書式 】
<?php $DBSERVER = "localhost"; // MySQL サーバ名 $DBUSER = "*****"; // ログインユーザ名 $DBPASSWORD = "*****"; // パスワード $DBNAME = "*****"; // データベース名 $TABLEHEAD = "<table border='1' <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit ("MySQL に接続できない"); } // データベースを選択 mysql_select_db ($DBNAME); // MySQL の文字コードを設定 mysql_query ("set names UTF8"); // 1〜5レコード目を読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` LIMIT 0, 5"; $body .= "【 1〜5レコード目のデータ 】" . $TABLEHEAD; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // 3〜4 レコード目のレコードを読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` LIMIT 2, 4"; $body .= "【 3〜4レコード目のデータ 】" . $TABLEHEAD; // 結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // COL 4 が 1000以上の2〜5レコード目を COL 4 の昇順で読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 4` >= 1000 ORDER BY `COL 4` LIMIT 1, 5"; $body .= "【 COL 4 が 1000 以上の 2〜5レコード目、COL 4 の昇順データ 】" . $TABLEHEAD; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; //MySQLとの接続を解除 mysql_close(); ?> <?=$body?>
ソースコード
ソースコード【 HTML 】
<?php $DBSERVER = "localhost"; // MySQL サーバ名 $DBUSER = "*****"; // ログインユーザ名 $DBPASSWORD = "*****"; // パスワード $DBNAME = "*****"; // データベース名 $TABLEHEAD = "<table border='1' <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit ("MySQL に接続できない"); } // データベースを選択 mysql_select_db ($DBNAME); // MySQL の文字コードを設定 mysql_query ("set names UTF8"); // 1〜5レコード目を読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` LIMIT 0, 5"; $body .= "【 1〜5レコード目のデータ 】" . $TABLEHEAD; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // 3〜4 レコード目のレコードを読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` LIMIT 2, 4"; $body .= "【 3〜4レコード目のデータ 】" . $TABLEHEAD; // 結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // COL 4 が 1000以上の2〜5レコード目を COL 4 の昇順で読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 4` >= 1000 ORDER BY `COL 4` LIMIT 1, 5"; $body .= "【 COL 4 が 1000 以上の 2〜5レコード目、COL 4 の昇順データ 】" . $TABLEHEAD; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; //MySQLとの接続を解除 mysql_close(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="description" content=""> <meta name="keywords" content=""> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"> <title>webサイト開発 | PHPサンプルサイト</title> <link href="../css/reset.css" rel="stylesheet" type="text/css" media="screen"> <!-- CSS for slidesjs.com example --> <link rel="stylesheet" href="../css/example.css"> <link rel="stylesheet" href="../css/font-awesome.min.css"> <!-- End CSS for slidesjs.com example --> <link rel="stylesheet" href="../css/embet.css"> <link href="../css/common.css" rel="stylesheet" type="text/css" media="screen"> <link href="../css/page.css" rel="stylesheet" type="text/css" media="screen"> <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#main_menu > li > ul').slideUp() }); $('#main_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#main_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#main_menu > li > ul').slideUp() }); $('#main_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#main_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#list_menu > li > ul').slideUp() }); $('#list_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#list_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <style type="text/css"> #main_menu > li > ul { display: none; padding: 10px 10px 5px; background: rgba(169, 169, 170, 1.0); cursor: pointer!important; } </style> </head> <body> <!--▽#container--> <div id="container"> <header class="clearfix"> <h1><a href="../index.html"><img src="../images/logo.png" width="75" alt=""></a><span>webサイト開発 | PHPサンプルサイト</span></h1> <!--▽#menu--> <ul id="main_menu"> <li> <a href=""><img src="../images/menu.png" width="38px" alt=""></a> <ul class="menu_home"> <li><span class="menu_title">HOME</span> <li><a href="#top">TOP</a></li> </li> </ul> <ul class="menu_link"> <li><span class="menu_title">LINK</span> <li><a href="http://d.hatena.ne.jp/webry/">実践するWEBサイト制作 | webnote</a></li> <li><a href="http://webry.dousetsu.com/images_deta/">はてなデーターの保管庫 | webrynote</a></li> <li><a href="http://webrynote.jimdo.com/"></a>動画で確認するscript | FlashとJavaScrip</li> <li><a href="http://webry.dousetsu.com/"></a>実践でカフェオレを俺流においしく作るサイト | カフェ俺流に作る</li> </li> </ul> <ul class="menu_sns"> <li><span class="menu_title">SNS</span> <li><a href="https://twitter.com/webrynote">Twitter</a></li> <li><a href="https://www.facebook.com/note.webry">Facebook.</a></li> <li><a href="http://webry.tumblr.com/">Tumblr</a></li> </li> </ul> </li> </ul> </header> <!--▽.content--> <div class="content"> <!--▽.col1--> <section class="col1"> <h2>データーベースの基礎知識</h2> </section> <!--▲.col1--> <!--▽.content_inner--> <div class="content_inner"> <section class="col2"> <section id="post01" class="col2-1 post"> <a href="#post01"> <h2><span class="ita">2-9 </span>特定の位置から指定レコード数のみ取り出す</h2> </a> <div class="post_inner">LIMIT 句(SQL) </p> <ul class="list01"> <li>特定の位置から指定した数だけのレコード数を読み込むことができる。 WHERE 句はデータの内容によって抽出するが、LIMIT 句は単純なレコード番号で抽出する。</li> <li>「 LIMIT 」に続けて読み込む最初のレコード番号、読み込むレコード数をカンマで区切って指定する。<br> レコード番号は、1レコード目を「 0 」として数える。以下は、1〜5レコード目だけを読み込む例。<br> <span class="b">LIMIT 0, 5</span><br> 「 LIMIT 5 」のように一方だけを指定した場合には、「 先頭から指定レコード数のみ 」が取り出せる。<br> 「 LIMIT 0, 5 」と「 LIMIT 5 」は同じ結果になる。 </li> </ul> </div> </section> <!--▲.col2-1--> <section class="col-code"> <div id="post02" class="post"> <a href="#post02"> <h2><span>PHPのコードを表示</span></h2> </a> <div class="post_inner"> <div class="inner"> <pre> <code> <?php $DBSERVER = "*******"; // MySQL サーバ名 $DBUSER = "*******"; // ログインユーザ名 $DBPASSWORD = "********"; // パスワード $DBNAME = "*********"; // データベース名 <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit ("MySQL に接続できない"); } // データベースを選択 mysql_select_db ($DBNAME); // MySQL の文字コードを設定 mysql_query ("set names UTF8"); // 1〜5レコード目を読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` LIMIT 0, 5"; $body .= "【 1〜5レコード目のデータ 】" . $TABLEHEAD; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // 3〜4 レコード目のレコードを読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` LIMIT 2, 4"; $body .= "【 3〜4レコード目のデータ 】" . $TABLEHEAD; // 結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // COL 4 が 1000以上の2〜5レコード目を COL 4 の昇順で読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 4` >= 1000 ORDER BY `COL 4` LIMIT 1, 5"; $body .= "【 COL 4 が 1000 以上の 2〜5レコード目、COL 4 の昇順データ 】" . $TABLEHEAD; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; //MySQLとの接続を解除 mysql_close(); ?> <?php <?=$body?> ?> </code> </pre> </div> </div> </div> </section> <section class="col2"> <div id="post03" class="post"> <a href="#post03"> <h2><span>PHPでの表示</span></h2> </a> <div class="post_inner"> <div class="inner"> <div class="php wd_wrap"> <?=$body?> </div> </div> </div> </div> </section> <!--<section class="col2"> <div id="post04" class="post"> <a href="#post04"><h2><span>FORMでの入力</span></h2></a> <div class="post_inner"> <div class="inner"> <div> </div> </div> </div> </div> </section>--> <p class="c_top"><a href="../index.html#13">▲ カテゴリートップへ戻る</a></p> <section class="bottom clearfix"> <a href="#"> <p class="page_top">TOP</p> </a> <div class="share_box"> <p><span>このサイトをシェアする</span> <a href="https://twitter.com/share" class="twitter-share-button" data-via="webrynote">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script><br> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> </p> </div> </section> <!--▲.bottom--> </section> <!--▲.content--> <footer> <ul> <li><a href="http://d.hatena.ne.jp/webry/">実践するWEBサイト制作 | webnote</a></li> <li><a href="http://webry.dousetsu.com/images_deta/">はてなデーターの保管庫 | webrynote</a></li> <li><a href="http://webrynote.jimdo.com/">動画で確認するscript | FlashとJavaScrip</a></li> <li><a href="http://webry.dousetsu.com/">実践でカフェオレを俺流においしく作るサイト | カフェ俺流に作る</a></li> <li><a href="https://twitter.com/webrynote">Twitter</a></li> <li><a href="https://www.facebook.com/note.webry">Facebook.</a></li> <li><a href="http://webry.tumblr.com/">Tumblr</a></li> </ul> <address> Copyright © 2014 webry - 『 webサイト開発 | PHPサンプルサイト 』 All Rights Reserved. </address> </footer> </div> <!--▲.content_inner--> </div> <!--▲#container--> </body> </html>
表示内容を確認
MySQL データベースの処理10
データーベースの基礎知識
HTML フォームで動的に並べ順をかえる
使用関数: ORDRE BY 句(SQL)
- 画面上のボタンをクリックによって、それぞれのフィールドを基準としてデータを動的に並べ替え変更する例。
【 書式 】
<?php $DBSERVER = "localhost"; // MySQL サーバ名 $DBUSER = "*****"; // ログインユーザ名 $DBPASSWORD = "*****"; // パスワード $DBNAME = "*****"; // データベース名 //クリックされたボタンに応じて並べ替え基準を設定 if (isset($_POST[btnsort1])) { //順位の昇順ボタン $orderby = "`COL 1`"; } elseif (isset($_POST[btnsort2])) { //順位の降順ボタン $orderby = "`COL 1` DESC"; } elseif (isset($_POST[btnsort3])) { //チームの昇順ボタン $orderby = "COL 2"; } elseif (isset($_POST[btnsort4])) { //チームの降順ボタン $orderby = "`COL 2` DESC"; } elseif (isset($_POST[btnsort5])) { //地域の昇順ボタン $orderby = "`COL 3`"; } elseif (isset($_POST[btnsort6])) { //地域の降順ボタン $orderby = "`COL 3` DESC"; } elseif (isset($_POST[btnsort7])) { //ポイントの昇順ボタン $orderby = "`COL 4`"; } elseif (isset($_POST[btnsort8])) { //ポイントの降順ボタン $orderby = "`COL 4` DESC"; } else { //はじめて呼び出されたときの初期状態 $orderby = "`COL 1`"; } // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit ("MySQL に接続できない"); } // データベースを選択 mysql_select_db ($DBNAME); // MySQL の文字コードを設定 mysql_query ("set names UTF8"); //テーブルヘッダ部の並べ替え用リンクのHTMLを組み立て $body = "<FORM action='$_SERVER[PHP_SELF]' method='POST'> <TABLE border='1'> <TR> <TH> 順位<BR> <INPUT type='submit' name='btnsort1' value='↑'> <INPUT type='submit' name='btnsort2' value='↓'> </TH> <TH> チーム<BR> <INPUT type='submit' name='btnsort3' value='↑'> <INPUT type='submit' name='btnsort4' value='↓'> </TH> <TH> 地域<BR> <INPUT type='submit' name='btnsort5' value='↑'> <INPUT type='submit' name='btnsort6' value='↓'> </TH> <TH> ポイント<BR> <INPUT type='submit' name='btnsort7' value='↑'> <INPUT type='submit' name='btnsort8' value='↓'> </TH> </TR>"; //TABLE 3テーブルのすべてのレコードを読み込むSQLを組み立て //$orderby変数の内容をORDER BY句に指定 $sql = "SELECT * FROM `TABLE 3` ORDER BY $orderby"; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "</TABLE> </FORM>"; //MySQLとの接続を解除 mysql_close(); ?> <?=$body?>
ソースコード
ソースコード【 HTML 】
<?php $DBSERVER = "localhost"; // MySQL サーバ名 $DBUSER = "*****"; // ログインユーザ名 $DBPASSWORD = "*****"; // パスワード $DBNAME = "*****"; // データベース名 //クリックされたボタンに応じて並べ替え基準を設定 if (isset($_POST[btnsort1])) { //順位の昇順ボタン $orderby = "`COL 1`"; } elseif (isset($_POST[btnsort2])) { //順位の降順ボタン $orderby = "`COL 1` DESC"; } elseif (isset($_POST[btnsort3])) { //チームの昇順ボタン $orderby = "COL 2"; } elseif (isset($_POST[btnsort4])) { //チームの降順ボタン $orderby = "`COL 2` DESC"; } elseif (isset($_POST[btnsort5])) { //地域の昇順ボタン $orderby = "`COL 3`"; } elseif (isset($_POST[btnsort6])) { //地域の降順ボタン $orderby = "`COL 3` DESC"; } elseif (isset($_POST[btnsort7])) { //ポイントの昇順ボタン $orderby = "`COL 4`"; } elseif (isset($_POST[btnsort8])) { //ポイントの降順ボタン $orderby = "`COL 4` DESC"; } else { //はじめて呼び出されたときの初期状態 $orderby = "`COL 1`"; } // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit ("MySQL に接続できない"); } // データベースを選択 mysql_select_db ($DBNAME); // MySQL の文字コードを設定 mysql_query ("set names UTF8"); //テーブルヘッダ部の並べ替え用リンクのHTMLを組み立て $body = "<FORM action='$_SERVER[PHP_SELF]' method='POST'> <TABLE border='1'> <TR> <TH> 順位<BR> <INPUT type='submit' name='btnsort1' value='↑'> <INPUT type='submit' name='btnsort2' value='↓'> </TH> <TH> チーム<BR> <INPUT type='submit' name='btnsort3' value='↑'> <INPUT type='submit' name='btnsort4' value='↓'> </TH> <TH> 地域<BR> <INPUT type='submit' name='btnsort5' value='↑'> <INPUT type='submit' name='btnsort6' value='↓'> </TH> <TH> ポイント<BR> <INPUT type='submit' name='btnsort7' value='↑'> <INPUT type='submit' name='btnsort8' value='↓'> </TH> </TR>"; //TABLE 3テーブルのすべてのレコードを読み込むSQLを組み立て //$orderby変数の内容をORDER BY句に指定 $sql = "SELECT * FROM `TABLE 3` ORDER BY $orderby"; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "</TABLE> </FORM>"; //MySQLとの接続を解除 mysql_close(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="description" content=""> <meta name="keywords" content=""> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"> <title>webサイト開発 | PHPサンプルサイト</title> <link href="../css/reset.css" rel="stylesheet" type="text/css" media="screen"> <!-- CSS for slidesjs.com example --> <link rel="stylesheet" href="../css/example.css"> <link rel="stylesheet" href="../css/font-awesome.min.css"> <!-- End CSS for slidesjs.com example --> <link rel="stylesheet" href="../css/embet.css"> <link href="../css/common.css" rel="stylesheet" type="text/css" media="screen"> <link href="../css/page.css" rel="stylesheet" type="text/css" media="screen"> <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#main_menu > li > ul').slideUp() }); $('#main_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#main_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#main_menu > li > ul').slideUp() }); $('#main_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#main_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#list_menu > li > ul').slideUp() }); $('#list_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#list_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <style type="text/css"> #main_menu > li > ul { display: none; padding: 10px 10px 5px; background: rgba(169, 169, 170, 1.0); cursor: pointer!important; } </style> </head> <body> <!--▽#container--> <div id="container"> <header class="clearfix"> <h1><a href="../index.html"><img src="../images/logo.png" width="75" alt=""></a><span>webサイト開発 | PHPサンプルサイト</span></h1> <!--▽#menu--> <ul id="main_menu"> <li> <a href=""><img src="../images/menu.png" width="38px" alt=""></a> <ul class="menu_home"> <li><span class="menu_title">HOME</span> <li><a href="#top">TOP</a></li> </li> </ul> <ul class="menu_link"> <li><span class="menu_title">LINK</span> <li><a href="http://d.hatena.ne.jp/webry/">実践するWEBサイト制作 | webnote</a></li> <li><a href="http://webry.dousetsu.com/images_deta/">はてなデーターの保管庫 | webrynote</a></li> <li><a href="http://webrynote.jimdo.com/"></a>動画で確認するscript | FlashとJavaScrip</li> <li><a href="http://webry.dousetsu.com/"></a>実践でカフェオレを俺流においしく作るサイト | カフェ俺流に作る</li> </li> </ul> <ul class="menu_sns"> <li><span class="menu_title">SNS</span> <li><a href="https://twitter.com/webrynote">Twitter</a></li> <li><a href="https://www.facebook.com/note.webry">Facebook.</a></li> <li><a href="http://webry.tumblr.com/">Tumblr</a></li> </li> </ul> </li> </ul> </header> <!--▽.content--> <div class="content"> <!--▽.col1--> <section class="col1"> <h2>データーベースの基礎知識</h2> </section> <!--▲.col1--> <!--▽.content_inner--> <div class="content_inner"> <section class="col2"> <section id="post01" class="col2-1 post"> <a href="#post01"> <h2><span class="ita">2-8 </span>HTML フォームで動的に並べ順をかえる</h2> </a> <div class="post_inner">ORDRE BY 句(SQL) </p> <ul class="list01"> <li>画面上のボタンをクリックによって、それぞれのフィールドを基準としてデータを動的に並べ替え変更する例。</li> </ul> </div> </section> <!--▲.col2-1--> <section class="col-code"> <div id="post02" class="post"> <a href="#post02"> <h2><span>PHPのコードを表示</span></h2> </a> <div class="post_inner"> <div class="inner"> <pre> <code> <?php $DBSERVER = "*******"; // MySQL サーバ名 $DBUSER = "*******"; // ログインユーザ名 $DBPASSWORD = "********"; // パスワード $DBNAME = "*********"; // データベース名 //クリックされたボタンに応じて並べ替え基準を設定 if (isset($_POST[btnsort1])) { //順位の昇順ボタン $orderby = "`COL 1`"; } elseif (isset($_POST[btnsort2])) { //順位の降順ボタン $orderby = "`COL 1` DESC"; } elseif (isset($_POST[btnsort3])) { //チームの昇順ボタン $orderby = "COL 2"; } elseif (isset($_POST[btnsort4])) { //チームの降順ボタン $orderby = "`COL 2` DESC"; } elseif (isset($_POST[btnsort5])) { //地域の昇順ボタン $orderby = "`COL 3`"; } elseif (isset($_POST[btnsort6])) { //地域の降順ボタン $orderby = "`COL 3` DESC"; } elseif (isset($_POST[btnsort7])) { //ポイントの昇順ボタン $orderby = "`COL 4`"; } elseif (isset($_POST[btnsort8])) { //ポイントの降順ボタン $orderby = "`COL 4` DESC"; } else { //はじめて呼び出されたときの初期状態 $orderby = "`COL 1`"; } // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit ("MySQL に接続できない"); } // データベースを選択 mysql_select_db ($DBNAME); // MySQL の文字コードを設定 mysql_query ("set names UTF8"); //テーブルヘッダ部の並べ替え用リンクのHTMLを組み立て $body = "<FORM action='$_SERVER[PHP_SELF]' method='POST'> <TABLE border='1'> <TR> <TH> 順位<BR> <INPUT type='submit' name='btnsort1' value='↑'> <INPUT type='submit' name='btnsort2' value='↓'> </TH> <TH> チーム<BR> <INPUT type='submit' name='btnsort3' value='↑'> <INPUT type='submit' name='btnsort4' value='↓'> </TH> <TH> 地域<BR> <INPUT type='submit' name='btnsort5' value='↑'> <INPUT type='submit' name='btnsort6' value='↓'> </TH> <TH> ポイント<BR> <INPUT type='submit' name='btnsort7' value='↑'> <INPUT type='submit' name='btnsort8' value='↓'> </TH> </TR>"; //TABLE 3テーブルのすべてのレコードを読み込むSQLを組み立て //$orderby変数の内容をORDER BY句に指定 $sql = "SELECT * FROM `TABLE 3` ORDER BY $orderby"; //結果セットを取得 $rst = mysql_query($sql); //結果セットからデータをループで読み込み while ($col = mysql_fetch_array($rst)) { $body .= "<TR>"; $body .= "<TD align='center'>" . $col['COL 1'] . "</TD>"; $body .= "<TD>" . $col['COL 2'] . "</TD>"; $body .= "<TD>" . $col['COL 3'] . "</TD>"; $body .= "<TD align='right'>" . $col['COL 4'] . "</TD>"; $body .= "</TR>"; } //結果セットを破棄 mysql_free_result($rst); $body .= "</TABLE> </FORM>"; //MySQLとの接続を解除 mysql_close(); ?> <?php <?=$body?> ?> </code> </pre> </div> </div> </div> </section> <section class="col2"> <div id="post03" class="post"> <a href="#post03"> <h2><span>PHPでの表示</span></h2> </a> <div class="post_inner"> <div class="inner"> <div class="php wd_wrap"> <?=$body?> </div> </div> </div> </div> </section> <!--<section class="col2"> <div id="post04" class="post"> <a href="#post04"><h2><span>FORMでの入力</span></h2></a> <div class="post_inner"> <div class="inner"> <div> </div> </div> </div> </div> </section>--> <p class="c_top"><a href="../index.html#13">▲ カテゴリートップへ戻る</a></p> <section class="bottom clearfix"> <a href="#"> <p class="page_top">TOP</p> </a> <div class="share_box"> <p><span>このサイトをシェアする</span> <a href="https://twitter.com/share" class="twitter-share-button" data-via="webrynote">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script><br> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> </p> </div> </section> <!--▲.bottom--> </section> <!--▲.content--> <footer> <ul> <li><a href="http://d.hatena.ne.jp/webry/">実践するWEBサイト制作 | webnote</a></li> <li><a href="http://webry.dousetsu.com/images_deta/">はてなデーターの保管庫 | webrynote</a></li> <li><a href="http://webrynote.jimdo.com/">動画で確認するscript | FlashとJavaScrip</a></li> <li><a href="http://webry.dousetsu.com/">実践でカフェオレを俺流においしく作るサイト | カフェ俺流に作る</a></li> <li><a href="https://twitter.com/webrynote">Twitter</a></li> <li><a href="https://www.facebook.com/note.webry">Facebook.</a></li> <li><a href="http://webry.tumblr.com/">Tumblr</a></li> </ul> <address> Copyright © 2014 webry - 『 webサイト開発 | PHPサンプルサイト 』 All Rights Reserved. </address> </footer> </div> <!--▲.content_inner--> </div> <!--▲#container--> </body> </html>
表示内容を確認
MySQL データベースの処理09
データーベースの基礎知識
レコードを並び替えて取り出す
使用関数: ORDER BY 句 (SQL)
- 「ORDER BY」句に続いてフィールド名を記述すると、そのフィールドの値を基準に、レコードを並べ替えて読み込める。
フィールド名だけを記述した場合、そのフィールドに保存されている値の昇順(小さい順)で並べ替えられる。フィールド名に「DESC」を続けると、降順(大きい順)で並べ替えができる。 - 並べ替えの基準となるフィールド名は、カンマで区切って複数を列挙することも可能。
ORCER BY 句に指定するフィールドには、MySQL 状上でインデックスをつけておくとパフォーマンスが向上する。
【 書式 】
<?php $DBSERVER = "localhost"; // MySQL サーバ名 $DBUSER = "*****"; // ログインユーザ名 $DBPASSWORD = "*****"; // パスワード $DBNAME = "*****"; // データベース名 $TABLEHEAD = "<table border='1' style='max-width: 100%; margin: 30px auto;'> <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit("MySQL に接続できない!"); } // データベース選択 mysql_select_db ($DBNAME); // MySQL コードを設定 mysql_query ("set names UTF8"); // 例1:COL 2の昇順にレコードを読み込むSQLを組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 4` >= 1400 ORDER BY `COL 2`"; $body .= "【 COL 2 の昇順 】" . $TABLEHEAD; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td>" . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // 例2:COL 1 の降順にレコードを読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 4` >= 1400 ORDER BY `COL 1` DESC"; $body .= "【 COL 1 の降順 】" . $TABLEHEAD; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td>" . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // 例3:COL 2, COL 4 の昇順にレコードを読み込むSQL を組み立てる $sql = "SELECT * FROM `TABLE 3` ORDER BY `COL 2`, `COL 4`"; $body .= "【 COL 2, COL 4 の降順 】" . $TABLEHEAD; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td>" . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // MySQL との接続を解除 mysql_close(); ?> <?=$body?>
ソースコード
ソースコード【 HTML 】
<?php $DBSERVER = "localhost"; // MySQL サーバ名 $DBUSER = "*****"; // ログインユーザ名 $DBPASSWORD = "*****"; // パスワード $DBNAME = "*****"; // データベース名 $TABLEHEAD = "<table border='1' style='max-width: 100%; margin: 30px auto;'> <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit("MySQL に接続できない!"); } // データベース選択 mysql_select_db ($DBNAME); // MySQL コードを設定 mysql_query ("set names UTF8"); // 例1:COL 2の昇順にレコードを読み込むSQLを組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 4` >= 1400 ORDER BY `COL 2`"; $body .= "【 COL 2 の昇順 】" . $TABLEHEAD; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td>" . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // 例2:COL 1 の降順にレコードを読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 4` >= 1400 ORDER BY `COL 1` DESC"; $body .= "【 COL 1 の降順 】" . $TABLEHEAD; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td>" . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // 例3:COL 2, COL 4 の昇順にレコードを読み込むSQL を組み立てる $sql = "SELECT * FROM `TABLE 3` ORDER BY `COL 2`, `COL 4`"; $body .= "【 COL 2, COL 4 の降順 】" . $TABLEHEAD; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td>" . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // MySQL との接続を解除 mysql_close(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="description" content=""> <meta name="keywords" content=""> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"> <title>webサイト開発 | PHPサンプルサイト</title> <link href="../css/reset.css" rel="stylesheet" type="text/css" media="screen"> <!-- CSS for slidesjs.com example --> <link rel="stylesheet" href="../css/example.css"> <link rel="stylesheet" href="../css/font-awesome.min.css"> <!-- End CSS for slidesjs.com example --> <link rel="stylesheet" href="../css/embet.css"> <link href="../css/common.css" rel="stylesheet" type="text/css" media="screen"> <link href="../css/page.css" rel="stylesheet" type="text/css" media="screen"> <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#main_menu > li > ul').slideUp() }); $('#main_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#main_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#main_menu > li > ul').slideUp() }); $('#main_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#main_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#list_menu > li > ul').slideUp() }); $('#list_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#list_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <style type="text/css"> #main_menu > li > ul { display: none; padding: 10px 10px 5px; background: rgba(169, 169, 170, 1.0); cursor: pointer!important; } </style> </head> <body> <!--▽#container--> <div id="container"> <header class="clearfix"> <h1><a href="../index.html"><img src="../images/logo.png" width="75" alt=""></a><span>webサイト開発 | PHPサンプルサイト</span></h1> <!--▽#menu--> <ul id="main_menu"> <li> <a href=""><img src="../images/menu.png" width="38px" alt=""></a> <ul class="menu_home"> <li><span class="menu_title">HOME</span> <li><a href="#top">TOP</a></li> </li> </ul> <ul class="menu_link"> <li><span class="menu_title">LINK</span> <li><a href="http://d.hatena.ne.jp/webry/">実践するWEBサイト制作 | webnote</a></li> <li><a href="http://webry.dousetsu.com/images_deta/">はてなデーターの保管庫 | webrynote</a></li> <li><a href="http://webrynote.jimdo.com/"></a>動画で確認するscript | FlashとJavaScrip</li> <li><a href="http://webry.dousetsu.com/"></a>実践でカフェオレを俺流においしく作るサイト | カフェ俺流に作る</li> </li> </ul> <ul class="menu_sns"> <li><span class="menu_title">SNS</span> <li><a href="https://twitter.com/webrynote">Twitter</a></li> <li><a href="https://www.facebook.com/note.webry">Facebook.</a></li> <li><a href="http://webry.tumblr.com/">Tumblr</a></li> </li> </ul> </li> </ul> </header> <!--▽.content--> <div class="content"> <!--▽.col1--> <section class="col1"> <h2>データーベースの基礎知識</h2> </section> <!--▲.col1--> <!--▽.content_inner--> <div class="content_inner"> <section class="col2"> <section id="post01" class="col2-1 post"> <a href="#post01"> <h2><span class="ita">2-7 </span>レコードを並び替えて取り出す</h2> </a> <div class="post_inner">ORDER BY 句 (SQL) </p> <ul class="list01"> <li>「ORDER BY」句に続いてフィールド名を記述すると、そのフィールドの値を基準に、レコードを並べ替えて読み込める。<br> フィールド名だけを記述した場合、そのフィールドに保存されている値の昇順(小さい順)で並べ替えられる。フィールド名に「DESC」を続けると、降順(大きい順)で並べ替えができる。</li> <li>並べ替えの基準となるフィールド名は、カンマで区切って複数を列挙することも可能。<br> ORCER BY 句に指定するフィールドには、MySQL 状上でインデックスをつけておくとパフォーマンスが向上する。</li> </ul> </div> </section> <!--▲.col2-1--> <section class="col-code"> <div id="post02" class="post"> <a href="#post02"> <h2><span>PHPのコードを表示</span></h2> </a> <div class="post_inner"> <div class="inner"> <pre> <code> <?php $DBSERVER = "*******"; // MySQL サーバ名 $DBUSER = "*******"; // ログインユーザ名 $DBPASSWORD = "********"; // パスワード $DBNAME = "*********"; // データベース名 $TABLEHEAD = "<table border='1' style='max-width: 100%; margin: 30px auto;'> <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit("MySQL に接続できない!"); } // データベース選択 mysql_select_db ($DBNAME); // MySQL コードを設定 mysql_query ("set names UTF8"); // 例1:COL 2の昇順にレコードを読み込むSQLを組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 4` >= 1400 ORDER BY `COL 2`"; $body .= "【 COL 2 の昇順 】" . $TABLEHEAD; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td>" . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // 例2:COL 1 の降順にレコードを読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 4` >= 1400 ORDER BY `COL 1` DESC"; $body .= "【 COL 1 の降順 】" . $TABLEHEAD; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td>" . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // 例3:COL 2, COL 4 の昇順にレコードを読み込むSQL を組み立てる $sql = "SELECT * FROM `TABLE 3` ORDER BY `COL 2`, `COL 4`"; $body .= "【 COL 2, COL 4 の降順 】" . $TABLEHEAD; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td>" . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // MySQL との接続を解除 mysql_close(); ?> <?php <?=$body?> ?> </code> </pre> </div> </div> </div> </section> <section class="col2"> <div id="post03" class="post"> <a href="#post03"> <h2><span>PHPでの表示</span></h2> </a> <div class="post_inner"> <div class="inner"> <div class="php wd_wrap"> <?=$body?> </div> </div> </div> </div> </section> <!--<section class="col2"> <div id="post04" class="post"> <a href="#post04"><h2><span>FORMでの入力</span></h2></a> <div class="post_inner"> <div class="inner"> <div> </div> </div> </div> </div> </section>--> <p class="c_top"><a href="../index.html#13">▲ カテゴリートップへ戻る</a></p> <section class="bottom clearfix"> <a href="#"> <p class="page_top">TOP</p> </a> <div class="share_box"> <p><span>このサイトをシェアする</span> <a href="https://twitter.com/share" class="twitter-share-button" data-via="webrynote">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script><br> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> </p> </div> </section> <!--▲.bottom--> </section> <!--▲.content--> <footer> <ul> <li><a href="http://d.hatena.ne.jp/webry/">実践するWEBサイト制作 | webnote</a></li> <li><a href="http://webry.dousetsu.com/images_deta/">はてなデーターの保管庫 | webrynote</a></li> <li><a href="http://webrynote.jimdo.com/">動画で確認するscript | FlashとJavaScrip</a></li> <li><a href="http://webry.dousetsu.com/">実践でカフェオレを俺流においしく作るサイト | カフェ俺流に作る</a></li> <li><a href="https://twitter.com/webrynote">Twitter</a></li> <li><a href="https://www.facebook.com/note.webry">Facebook.</a></li> <li><a href="http://webry.tumblr.com/">Tumblr</a></li> </ul> <address> Copyright © 2014 webry - 『 webサイト開発 | PHPサンプルサイト 』 All Rights Reserved. </address> </footer> </div> <!--▲.content_inner--> </div> <!--▲#container--> </body> </html>
表示内容を確認
MySQL データベースの処理08
データーベースの基礎知識
SQL でレコード数を取得する
使用関数: Count(*) (SQL)
- SQL 文の SELECT 文に「 Count(*) 」という定型的な記述(正確にはSQLの集計用関数)を続けると、指定されたテーブルの抽出条件に一致するレコード数が得られる。
mysql_num_rows 関数は結果セットを取得したあと、それに含まれるレコード数を返すため、ここのデータも取得できる。一方、「 Count(*) 」はあくまでも「レコード数そのものがデータとして返される」だけである。MySQL からは常に1件のレコードだけが返され、そのフィールドデータとしてレコード数が格納されている。同時にここのデータを取り出すことができない。
なお、取得したいレコード数はフィールドの中に格納されているので、取り出す際は「 $col[reccnt] 」のような配列を記述する。
このとき、「Count(*)」だけではそのフィールド名がわからないので、通常は「 Count(*) AS reccnt 」
【 書式 】
<?php $DBSERVER = "localhost"; // MySQL サーバ名 $DBUSER = "*****"; // ログインユーザ名 $DBPASSWORD = "*****"; // パスワード $DBNAME = "*****"; // データベース名 $TABLEHEAD = "<table border='1' style='max-width: 100%; margin: 30px auto;'> <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit("MySQL に接続できない!"); } // データベース選択 mysql_select_db ($DBNAME); // MySQL コードを設定 mysql_query ("set names UTF8"); // TABLE 3 テーブルの全レコード数を取得する SQL を組み立て $sql = "SELECT Count(*) AS reccnt FROM `TABLE 3`"; // 結果セットを取得 $rst = mysql_query($sql); // 1レコード目からレコード数を取得 $col = mysql_fetch_array($rst); $body .= "TABLE 3 テーブルにはA" . $col[reccnt] . " 件のデータがある。<br>"; // 結果セットを破棄 mysql_free_result($rst); $body .= "<br>"; // COL 3 がヨーロッパでないレコード数を取得する SQL を組み立てる $sql = "SELECT Count(*) AS reccnt FROM `TABLE 3` WHERE `COL 3` <> 'ヨーロッパ'"; // 結果セットを取得 $rst = mysql_query($sql); // 1レコード目からレコード数を取得 $col = mysql_fetch_array($rst); $body .= "COL 3 がヨーロッパでないデータは" . $col[reccnt] . " 件ある。<br>"; // 結果セットを破棄 mysql_free_result($rst); // MySQL との接続を解除 mysql_close(); ?> <?=$body?>
ソースコード
ソースコード【 HTML 】
<?php $DBSERVER = "localhost"; // MySQL サーバ名 $DBUSER = "*****"; // ログインユーザ名 $DBPASSWORD = "*****"; // パスワード $DBNAME = "*****"; // データベース名 $TABLEHEAD = "<table border='1' style='max-width: 100%; margin: 30px auto;'> <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit("MySQL に接続できない!"); } // データベース選択 mysql_select_db ($DBNAME); // MySQL コードを設定 mysql_query ("set names UTF8"); // TABLE 3 テーブルの全レコード数を取得する SQL を組み立て $sql = "SELECT Count(*) AS reccnt FROM `TABLE 3`"; // 結果セットを取得 $rst = mysql_query($sql); // 1レコード目からレコード数を取得 $col = mysql_fetch_array($rst); $body .= "TABLE 3 テーブルにはA" . $col[reccnt] . " 件のデータがある。<br>"; // 結果セットを破棄 mysql_free_result($rst); $body .= "<br>"; // COL 3 がヨーロッパでないレコード数を取得する SQL を組み立てる $sql = "SELECT Count(*) AS reccnt FROM `TABLE 3` WHERE `COL 3` <> 'ヨーロッパ'"; // 結果セットを取得 $rst = mysql_query($sql); // 1レコード目からレコード数を取得 $col = mysql_fetch_array($rst); $body .= "COL 3 がヨーロッパでないデータは" . $col[reccnt] . " 件ある。<br>"; // 結果セットを破棄 mysql_free_result($rst); // MySQL との接続を解除 mysql_close(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="description" content=""> <meta name="keywords" content=""> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"> <title>webサイト開発 | PHPサンプルサイト</title> <link href="../css/reset.css" rel="stylesheet" type="text/css" media="screen"> <!-- CSS for slidesjs.com example --> <link rel="stylesheet" href="../css/example.css"> <link rel="stylesheet" href="../css/font-awesome.min.css"> <!-- End CSS for slidesjs.com example --> <link rel="stylesheet" href="../css/embet.css"> <link href="../css/common.css" rel="stylesheet" type="text/css" media="screen"> <link href="../css/page.css" rel="stylesheet" type="text/css" media="screen"> <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#main_menu > li > ul').slideUp() }); $('#main_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#main_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#main_menu > li > ul').slideUp() }); $('#main_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#main_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#list_menu > li > ul').slideUp() }); $('#list_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#list_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <style type="text/css"> #main_menu > li > ul { display: none; padding: 10px 10px 5px; background: rgba(169, 169, 170, 1.0); cursor: pointer!important; } </style> </head> <body> <!--▽#container--> <div id="container"> <header class="clearfix"> <h1><a href="../index.html"><img src="../images/logo.png" width="75" alt=""></a><span>webサイト開発 | PHPサンプルサイト</span></h1> <!--▽#menu--> <ul id="main_menu"> <li> <a href=""><img src="../images/menu.png" width="38px" alt=""></a> <ul class="menu_home"> <li><span class="menu_title">HOME</span> <li><a href="#top">TOP</a></li> </li> </ul> <ul class="menu_link"> <li><span class="menu_title">LINK</span> <li><a href="http://d.hatena.ne.jp/webry/">実践するWEBサイト制作 | webnote</a></li> <li><a href="http://webry.dousetsu.com/images_deta/">はてなデーターの保管庫 | webrynote</a></li> <li><a href="http://webrynote.jimdo.com/"></a>動画で確認するscript | FlashとJavaScrip</li> <li><a href="http://webry.dousetsu.com/"></a>実践でカフェオレを俺流においしく作るサイト | カフェ俺流に作る</li> </li> </ul> <ul class="menu_sns"> <li><span class="menu_title">SNS</span> <li><a href="https://twitter.com/webrynote">Twitter</a></li> <li><a href="https://www.facebook.com/note.webry">Facebook.</a></li> <li><a href="http://webry.tumblr.com/">Tumblr</a></li> </li> </ul> </li> </ul> </header> <!--▽.content--> <div class="content"> <!--▽.col1--> <section class="col1"> <h2>データーベースの基礎知識</h2> </section> <!--▲.col1--> <!--▽.content_inner--> <div class="content_inner"> <section class="col2"> <section id="post01" class="col2-1 post"> <a href="#post01"> <h2><span class="ita">2-6 </span>SQL でレコード数を取得する</h2> </a> <div class="post_inner">Count(*) (SQL) </p> <ul class="list01"> <li>SQL 文の SELECT 文に「 Count(*) 」という定型的な記述(正確にはSQLの集計用関数)を続けると、指定されたテーブルの抽出条件に一致するレコード数が得られる。<br> mysql_num_rows 関数は結果セットを取得したあと、それに含まれるレコード数を返すため、ここのデータも取得できる。一方、「 Count(*) 」はあくまでも「レコード数そのものがデータとして返される」だけである。MySQL からは常に1件のレコードだけが返され、そのフィールドデータとしてレコード数が格納されている。同時にここのデータを取り出すことができない。<br> なお、取得したいレコード数はフィールドの中に格納されているので、取り出す際は「 $col[reccnt] 」のような配列を記述する。<br> このとき、「Count(*)」だけではそのフィールド名がわからないので、通常は「 Count(*) AS reccnt 」</li> </ul> </div> </section> <!--▲.col2-1--> <section class="col-code"> <div id="post02" class="post"> <a href="#post02"> <h2><span>PHPのコードを表示</span></h2> </a> <div class="post_inner"> <div class="inner"> <pre> <code> <?php $DBSERVER = "*******"; // MySQL サーバ名 $DBUSER = "*******"; // ログインユーザ名 $DBPASSWORD = "********"; // パスワード $DBNAME = "*********"; // データベース名 $TABLEHEAD = "<table border='1' style='max-width: 100%; margin: 30px auto;'> <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit("MySQL に接続できない!"); } // データベース選択 mysql_select_db ($DBNAME); // MySQL コードを設定 mysql_query ("set names UTF8"); // TABLE 3 テーブルの全レコード数を取得する SQL を組み立て $sql = "SELECT Count(*) AS reccnt FROM `TABLE 3`"; // 結果セットを取得 $rst = mysql_query($sql); // 1レコード目からレコード数を取得 $col = mysql_fetch_array($rst); $body .= "TABLE 3 テーブルにはA" . $col[reccnt] . " 件のデータがある。<br>"; // 結果セットを破棄 mysql_free_result($rst); $body .= "<br>"; // COL 3 がヨーロッパでないレコード数を取得する SQL を組み立てる $sql = "SELECT Count(*) AS reccnt FROM `TABLE 3` WHERE `COL 3` <> 'ヨーロッパ'"; // 結果セットを取得 $rst = mysql_query($sql); // 1レコード目からレコード数を取得 $col = mysql_fetch_array($rst); $body .= "COL 3 がヨーロッパでないデータは" . $col[reccnt] . " 件ある。<br>"; // 結果セットを破棄 mysql_free_result($rst); // MySQL との接続を解除 mysql_close(); ?> <?php <?=$body?> ?> </code> </pre> </div> </div> </div> </section> <section class="col2"> <div id="post03" class="post"> <a href="#post03"> <h2><span>PHPでの表示</span></h2> </a> <div class="post_inner"> <div class="inner"> <div class="php wd_wrap"> <?=$body?> </div> </div> </div> </div> </section> <!--<section class="col2"> <div id="post04" class="post"> <a href="#post04"><h2><span>FORMでの入力</span></h2></a> <div class="post_inner"> <div class="inner"> <div> </div> </div> </div> </div> </section>--> <p class="c_top"><a href="../index.html#13">▲ カテゴリートップへ戻る</a></p> <section class="bottom clearfix"> <a href="#"> <p class="page_top">TOP</p> </a> <div class="share_box"> <p><span>このサイトをシェアする</span> <a href="https://twitter.com/share" class="twitter-share-button" data-via="webrynote">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script><br> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> </p> </div> </section> <!--▲.bottom--> </section> <!--▲.content--> <footer> <ul> <li><a href="http://d.hatena.ne.jp/webry/">実践するWEBサイト制作 | webnote</a></li> <li><a href="http://webry.dousetsu.com/images_deta/">はてなデーターの保管庫 | webrynote</a></li> <li><a href="http://webrynote.jimdo.com/">動画で確認するscript | FlashとJavaScrip</a></li> <li><a href="http://webry.dousetsu.com/">実践でカフェオレを俺流においしく作るサイト | カフェ俺流に作る</a></li> <li><a href="https://twitter.com/webrynote">Twitter</a></li> <li><a href="https://www.facebook.com/note.webry">Facebook.</a></li> <li><a href="http://webry.tumblr.com/">Tumblr</a></li> </ul> <address> Copyright © 2014 webry - 『 webサイト開発 | PHPサンプルサイト 』 All Rights Reserved. </address> </footer> </div> <!--▲.content_inner--> </div> <!--▲#container--> </body> </html>
表示内容を確認
MySQL データベースの処理07
データーベースの基礎知識
読み込んだレコード数を調べる
使用関数: mysql_num_rows 関数
- SELECT 文によって返された結果セットに含まれるレコード数を取得できる。
この関数の引数には、mysql_query 関数の返り値である結果セットIDを指定する。
SELECT 文で抽出分を指定しない場合はテーブルの全レコード数、抽出条件を指定した場合はそれで抽出されたレコードを調べることができる。
【 書式 】
<?php $DBSERVER = "localhost"; // MySQL サーバ名 $DBUSER = "*****"; // ログインユーザ名 $DBPASSWORD = "*****"; // パスワード $DBNAME = "*****"; // データベース名 $TABLEHEAD = "<table border='1' style='max-width: 100%; margin: 30px auto;'> <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit("MySQL に接続できない!"); } // データベース選択 mysql_select_db ($DBNAME); // MySQL コードを設定 mysql_query ("set names UTF8"); // COL 4 が1500以上のレコードを読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 4` >= 1500"; $body .= "【 COL 4 が 1500 以上データ 】<br>"; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットに含まれるレコード数を取得 $body .= mysql_num_rows($rst) . " 件のデータがある。<br>"; $body .= $TABLEHEAD; // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td> " . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // COL 2 がヨーロッパでないレコードを読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 3` <> 'ヨーロッパ'"; $body .= "【 COL 3 がヨーロッパでないデータ 】<br>"; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットに含まれるレコード数を取得 $body .= mysql_num_rows($rst) . " 件のデータがある。<br>"; $body .= $TABLEHEAD; // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td> " . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // MySQL との接続を解除 mysql_close(); ?> <?=$body?>
ソースコード
ソースコード【 HTML 】
<?php $DBSERVER = "localhost"; // MySQL サーバ名 $DBUSER = "*****"; // ログインユーザ名 $DBPASSWORD = "*****"; // パスワード $DBNAME = "*****"; // データベース名 $TABLEHEAD = "<table border='1' style='max-width: 100%; margin: 30px auto;'> <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit("MySQL に接続できない!"); } // データベース選択 mysql_select_db ($DBNAME); // MySQL コードを設定 mysql_query ("set names UTF8"); // COL 4 が1500以上のレコードを読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 4` >= 1500"; $body .= "【 COL 4 が 1500 以上データ 】<br>"; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットに含まれるレコード数を取得 $body .= mysql_num_rows($rst) . " 件のデータがある。<br>"; $body .= $TABLEHEAD; // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td> " . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // COL 2 がヨーロッパでないレコードを読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 3` <> 'ヨーロッパ'"; $body .= "【 COL 3 がヨーロッパでないデータ 】<br>"; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットに含まれるレコード数を取得 $body .= mysql_num_rows($rst) . " 件のデータがある。<br>"; $body .= $TABLEHEAD; // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td> " . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // MySQL との接続を解除 mysql_close(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="description" content=""> <meta name="keywords" content=""> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"> <title>webサイト開発 | PHPサンプルサイト</title> <link href="../css/reset.css" rel="stylesheet" type="text/css" media="screen"> <!-- CSS for slidesjs.com example --> <link rel="stylesheet" href="../css/example.css"> <link rel="stylesheet" href="../css/font-awesome.min.css"> <!-- End CSS for slidesjs.com example --> <link rel="stylesheet" href="../css/embet.css"> <link href="../css/common.css" rel="stylesheet" type="text/css" media="screen"> <link href="../css/page.css" rel="stylesheet" type="text/css" media="screen"> <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#main_menu > li > ul').slideUp() }); $('#main_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#main_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#main_menu > li > ul').slideUp() }); $('#main_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#main_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { //****************************************** //クリックによる開閉 //****************************************** //基本的に、ページ内のどこをクリックしても全てのサブメニューを閉じるようにしておく。 $(document).click(function() { $('#list_menu > li > ul').slideUp() }); $('#list_menu > li').click(function(ev){ var sub = $(this).children('ul'); if ($(sub).is(':hidden')) { //今回は、これからサブメニューを開きたい項目をクリックしているので、 //上記の、全てのサブメニューを閉じるイベントを発火させてはならない。 //よって、イベントのバブリングを中止する。 ev.stopPropagation(); //他に開いているサブメニューを閉じる。 //開いたままでもよければ、下の1行は必要ない。 $('#list_menu > li > ul:visible').slideUp(); $(sub).slideDown(); } }); //クリックによる開閉の場合、親メニューの"a"要素の機能は必要ないので無効にする。 $('#main_menu > li > a').click(function(ev) { ev.preventDefault() }); }); </script> <style type="text/css"> #main_menu > li > ul { display:none; padding: 10px 10px 5px; background: rgba(169, 169, 170, 1.0); cursor: pointer!important; } </style> </head> <body> <!--▽#container--> <div id="container"> <header class="clearfix"> <h1><a href="../index.html"><img src="../images/logo.png" width="75" alt=""></a><span>webサイト開発 | PHPサンプルサイト</span></h1> <!--▽#menu--> <ul id="main_menu"> <li><a href=""><img src="../images/menu.png" width="38px" alt=""></a> <ul class="menu_home"> <li><span class="menu_title">HOME</span> <li><a href="#top">TOP</a></li> </li></ul> <ul class="menu_link"> <li><span class="menu_title">LINK</span> <li><a href="http://d.hatena.ne.jp/webry/">実践するWEBサイト制作 | webnote</a></li> <li><a href="http://webry.dousetsu.com/images_deta/">はてなデーターの保管庫 | webrynote</a></li> <li><a href="http://webrynote.jimdo.com/"></a>動画で確認するscript | FlashとJavaScrip</li> <li><a href="http://webry.dousetsu.com/"></a>実践でカフェオレを俺流においしく作るサイト | カフェ俺流に作る</li> </li></ul> <ul class="menu_sns"> <li><span class="menu_title">SNS</span> <li><a href="https://twitter.com/webrynote">Twitter</a></li> <li><a href="https://www.facebook.com/note.webry">Facebook.</a></li> <li><a href="http://webry.tumblr.com/">Tumblr</a></li> </li></ul> </li> </ul> </header> <!--▽.content--> <div class="content"> <!--▽.col1--> <section class="col1"> <h2>データーベースの基礎知識</h2> </section><!--▲.col1--> <!--▽.content_inner--> <div class="content_inner"> <section class="col2"> <section id="post01" class="col2-1 post"> <a href="#post01"><h2><span class="ita">2-5 </span>読み込んだレコード数を調べる</h2></a> <div class="post_inner">mysql_num_rows 関数</p> <ul class="list01"> <li>SELECT 文によって返された結果セットに含まれるレコード数を取得できる。<br> この関数の引数には、mysql_query 関数の返り値である結果セットIDを指定する。<br> SELECT 文で抽出分を指定しない場合はテーブルの全レコード数、抽出条件を指定した場合はそれで抽出されたレコードを調べることができる。</li> </ul> </div> </section><!--▲.col2-1--> <section class="col-code"> <div id="post02" class="post"> <a href="#post02"><h2><span>PHPのコードを表示</span></h2></a> <div class="post_inner"> <div class="inner"> <pre> <code> <?php $DBSERVER = "*******"; // MySQL サーバ名 $DBUSER = "*******"; // ログインユーザ名 $DBPASSWORD = "********"; // パスワード $DBNAME = "*********"; // データベース名 $TABLEHEAD = "<table border='1' style='max-width: 100%; margin: 30px auto;'> <tr> <th>順位</th> <th>チーム</th> <th>地域</th> <th>ポイント</th> </tr>"; $TABLEFOOT = "</table>"; // MySQL に接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit("MySQL に接続できない!"); } // データベース選択 mysql_select_db ($DBNAME); // MySQL コードを設定 mysql_query ("set names UTF8"); // COL 4 が1500以上のレコードを読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 4` >= 1500"; $body .= "【 COL 4 が 1500 以上データ 】<br>"; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットに含まれるレコード数を取得 $body .= mysql_num_rows($rst) . " 件のデータがある。<br>"; $body .= $TABLEHEAD; // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td> " . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // COL 2 がヨーロッパでないレコードを読み込む SQL を組み立てる $sql = "SELECT * FROM `TABLE 3` WHERE `COL 3` <> 'ヨーロッパ'"; $body .= "【 COL 3 がヨーロッパでないデータ 】<br>"; // 結果セットを取得 $rst = mysql_query($sql); // 結果セットに含まれるレコード数を取得 $body .= mysql_num_rows($rst) . " 件のデータがある。<br>"; $body .= $TABLEHEAD; // 結果セットからデータをループで読み込む while ($col = mysql_fetch_array($rst)) { $body .= "<tr>"; $body .= "<td align='center'>" . $col['COL 1'] . "</td>"; $body .= "<td> " . $col['COL 2'] . "</td>"; $body .= "<td>" . $col['COL 3'] . "</td>"; $body .= "<td align='right'>" . $col['COL 4'] . "</td>"; $body .= "</tr>"; } // 結果セットを破棄 mysql_free_result($rst); $body .= "$TABLEFOOT<br>"; // MySQL との接続を解除 mysql_close(); ?> <?php <?=$body?> ?> </code> </pre> </div> </div> </div> </section> <section class="col2"> <div id="post03" class="post"> <a href="#post03"><h2><span>PHPでの表示</span></h2></a> <div class="post_inner"> <div class="inner"> <div class="php wd_wrap"> <?=$body?> </div> </div> </div> </div> </section> <!--<section class="col2"> <div id="post04" class="post"> <a href="#post04"><h2><span>FORMでの入力</span></h2></a> <div class="post_inner"> <div class="inner"> <div> </div> </div> </div> </div> </section>--> <p class="c_top"><a href="../index.html#13">▲ カテゴリートップへ戻る</a></p> <section class="bottom clearfix"> <a href="#"><p class="page_top">TOP</p></a> <div class="share_box"> <p><span>このサイトをシェアする</span> <a href="https://twitter.com/share" class="twitter-share-button" data-via="webrynote">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script><br> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script></p> </div> </section><!--▲.bottom--> </section><!--▲.content--> <footer> <ul> <li><a href="http://d.hatena.ne.jp/webry/">実践するWEBサイト制作 | webnote</a></li> <li><a href="http://webry.dousetsu.com/images_deta/">はてなデーターの保管庫 | webrynote</a></li> <li><a href="http://webrynote.jimdo.com/">動画で確認するscript | FlashとJavaScrip</a></li> <li><a href="http://webry.dousetsu.com/">実践でカフェオレを俺流においしく作るサイト | カフェ俺流に作る</a></li> <li><a href="https://twitter.com/webrynote">Twitter</a></li> <li><a href="https://www.facebook.com/note.webry">Facebook.</a></li> <li><a href="http://webry.tumblr.com/">Tumblr</a></li> </ul> <address>Copyright © 2014 webry - 『 webサイト開発 | PHPサンプルサイト 』 All Rights Reserved.</address> </footer> </div><!--▲.content_inner--> </div><!--▲#container--> </body> </html>