MySQL データベースの処理27




レコードを操作する

同一データがあれば更新、なければ追加する

使用関数: Count 関数(SQL)

  • 下記の例は「テーブルを編集する際、まず同一のデータがすでに保存されているかを確認して、もしあればそれを新しい内容で更新し、なければ新しいレコードとして追加する。」
  • まず、COL 3が「ヨーロッパ」である既存のレコード数を取得。Count 関数を使うとともに、WHERE 句にそのCOL 3を指定。
  • つづいて、そこから得られたレコード数に応じて処理を分岐する。そのレコード数が「0」より多きければ、既存レコードが存在していることになるので、それに対する更新のSQL分を組み立てる。

    そうでなければ、追加するSQL文を組み立てる。なお、更新の場合、そのCOL 3を持った1レコードだけがその対象となるので、UPDATA文にWHERE句を指定することに注意。


【 書式 】

PHPスクリプト

	<?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");
?>

<?=
	// TABLE 3テーブルの同一データのレコード数を取得
	$sql = "SELECT Count(*) AS reccnt FROM `TABLE 3` WHERE `COL 3` = \"西ドイツ\"";
	$rst = mysql_query($sql);
	$col = mysql_fetch_array($rst);
	$reccnt = $col[reccnt];
	mysql_free_result($rst);
	
	if ($reccnt > 0) {
		// 同一データが存在していれば更新するSQLを組み立て
		$sql = "UPDATA `TABLE 3` SET
		`COL 3` = \"西ドイツ\",
		`COL 4` = '1000',
		`COL 1` = '121',
		WHERE `COL 3` = \"西ドイツ\"";
		
		print "レコード更新!<br><br>";
	}
	else {
		// 同一なデータがなければ追加するSQLを組み立てる
		$sql = "INSERT INTO `TABLE 3` (`COL 3`, `COL 4`, `COL 1`)";
		print "レコードを追加!<br><br>";
	}
	// SQL を発行
	if (mysql_query($sql)) {
		print "処理に成功<br><br>";
	}
	else {
		print "処理に失敗<br><br>";
	}
	
	// MySQLとの接続解除
	mysql_close();
	 ?>


ソースコード


ソースコード【 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");
?>

<!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">1-12&nbsp;</span>同一データがあれば更新、なければ追加する</h2>
								</a>
								<div class="post_inner">Count 関数(SQL)
										</p>
										<ul class="list01">
												<li>下記の例は「テーブルを編集する際、まず同一のデータがすでに保存されているかを確認して、もしあればそれを新しい内容で更新し、なければ新しいレコードとして追加する。」
												<li>
												<li>まず、COL 3が「ヨーロッパ」である既存のレコード数を取得。Count 関数を使うとともに、WHERE 句にそのCOL 3を指定。</li>
												<li>つづいて、そこから得られたレコード数に応じて処理を分岐する。そのレコード数が「0」より多きければ、既存レコードが存在していることになるので、それに対する更新のSQL分を組み立てる。<br>
														そうでなければ、追加するSQL文を組み立てる。なお、更新の場合、そのCOL 3を持った1レコードだけがその対象となるので、UPDATA文にWHERE句を指定することに注意。</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>
&lt;?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");
?&gt;

&lt;?=
	// TABLE 3テーブルの同一データのレコード数を取得
	$sql = "SELECT Count(*) AS reccnt FROM `TABLE 3` WHERE `COL 3` = \"西ドイツ\"";
	$rst = mysql_query($sql);
	$col = mysql_fetch_array($rst);
	$reccnt = $col[reccnt];
	mysql_free_result($rst);
	
	if ($reccnt &gt; 0) {
		// 同一データが存在していれば更新するSQLを組み立て
		$sql = "UPDATA `TABLE 3` SET
		`COL 3` = \"西ドイツ\",
		`COL 4` = '1000',
		`COL 1` = '121',
		WHERE `COL 3` = \"西ドイツ\"";
		
		print "レコード更新!&lt;br&gt;&lt;br&gt;";
	}
	else {
		// 同一なデータがなければ追加するSQLを組み立てる
		$sql = "INSERT INTO `TABLE 3` (`COL 3`, `COL 4`, `COL 1`)";
		print "レコードを追加!&lt;br&gt;&lt;br&gt;";
	}
	// SQL を発行
	if (mysql_query($sql)) {
		print "処理に成功&lt;br&gt;&lt;br&gt;";
	}
	else {
		print "処理に失敗&lt;br&gt;&lt;br&gt;";
	}
	
	// MySQLとの接続解除
	mysql_close();
?&gt;
</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 3テーブルの同一データのレコード数を取得
	$sql = "SELECT Count(*) AS reccnt FROM `TABLE 3` WHERE `COL 3` = \"西ドイツ\"";
	$rst = mysql_query($sql);
	$col = mysql_fetch_array($rst);
	$reccnt = $col[reccnt];
	mysql_free_result($rst);
	
	if ($reccnt > 0) {
		// 同一データが存在していれば更新するSQLを組み立て
		$sql = "UPDATA `TABLE 3` SET
		`COL 3` = \"西ドイツ\",
		`COL 4` = '1000',
		`COL 1` = '121',
		WHERE `COL 3` = \"西ドイツ\"";
		
		print "レコード更新!<br><br>";
	}
	else {
		// 同一なデータがなければ追加するSQLを組み立てる
		$sql = "INSERT INTO `TABLE 3` (`COL 3`, `COL 4`, `COL 1`)";
		print "レコードを追加!<br><br>";
	}
	// SQL を発行
	if (mysql_query($sql)) {
		print "処理に成功<br><br>";
	}
	else {
		print "処理に失敗<br><br>";
	}
	
	// MySQLとの接続解除
	mysql_close();
	 ?>
														</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">&nbsp;カテゴリートップへ戻る</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 &copy; 2014 webry&nbsp;-&nbsp;『 webサイト開発 | PHPサンプルサイト 』 All Rights Reserved.
						</address>
				</footer>
		</div>
		<!--▲.content_inner--> 
</div>
<!--▲#container-->

</body>
</html>


表示内容を確認

同一データがあれば更新、なければ追加する




MySQL データベースの処理26




レコードを操作する

テーブルのレコードを更新する

使用関数: UPDATE 文(SQL) mysql_query 関数

  • テーブルに保存されている既存のレコードを更新するには、「UPDATE」文を使ったSQLmysql_query 関数で発行する。UPDATE 文は次のような構文で記述する。UPDATE 文を mysql_query 関数で発行すると、レコードの更新に成功した場合は True, 失敗した場合は False が返される。

    UPDATE 文
    UPDATE テーブル名 SET

    フィールド名 = 値,
    フィールド名 = 値,・・・

    テーブル名

    更新する既存のテーブル名を指定する。

    フィールド名

    更新対象となるフィールド名を指定する。



    左辺のフィールドに対する更新後の値を指定する。フィールドが文字列型の場合「”」や「'」で囲むなど、値は更新先フィールドのデータ型に準じて記述される。「SET 'COL 4' = 3000」のうように、直接その値を指定する(この場合は全レコードが「3000」に更新される。ほかのフィールドに保存されているデータを加工して、その値に更新することもできる。)

    複数のフィールドを更新する場合は、「フィールド名=値」を1セットとして、カンマ区切りで列挙する(最後はカンマ不要)。WHERE 句を併用して、特定の条件に一致するレコードだけを更新することもできる。


【 書式 】

PHPスクリプト

	<?php
	$DBSERVER = "localhost"; // MySQL サーバ名
	$DBUSER = "*****"; // ログインユーザ名
	$DBPASSWORD = "*****"; // パスワード
	$DBNAME = "*****"; // データベース名

	$TABLEHEAD = "<table border='1'>
	<tr>
	<th>TITLE</th>
	<th>POINT</th>
	<th>ID</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 * FROM `TABLE 3`";
	$body .= "【 更新前のデータ 】" . $TABLEHEAD;
	
	// 結果セットを取得
	$rst = mysql_query($sql);
	
	// 結果セットからデータをループで読み込む
	while ($col = mysql_fetch_array($rst)) {
		$body .= "<tr>";
		$body .= "<td>" . $col['COL 2'] . "</td>";
		$body .= "<td align='right'>" . $col['COL 4'] . "</td>";
		$body .= "<td align='center'>" . $col['COL 1'] . "</td>";
		$body .= "</tr>";
	}
	
	// 結果セットを破棄
	mysql_free_result($rst);
	$body .= "$TABLEFOOT<br>";
	
	// レコードを更新する SQL を組み立てる
	$sql = "UPDATE `TABLE 3` SET `COL 4` = `COL 4` * 1.05";
	// SQL を発行
	if (mysql_query($sql)) {
		$body .= "レコードを更新した!<br><br>";
	}
	else {
		$body .= "レコードの更新に失敗!!<br><br>";
	}
	
	// TABLE 3 テーブルのすべてのレコードを読み込む SQL を組み立てる
	$sql = "SELECT * FROM `TABLE 3`";
	$body .= "【 更新データ後 】" . $TABLEHEAD;
	
	// 結果セットを取得
	$rst = mysql_query($sql);
	
	// 結果セットからデータをループで読み込む
	while ($col = mysql_fetch_array($rst)) {
		$body .= "<tr>";
		$body .= "<td>" . $col['COL 2'] . "</td>";
		$body .= "<td align='right'>" . $col['COL 4'] . "</td>";
		$body .= "<td align='center'>" . $col['COL 1'] . "</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>TITLE</th>
	<th>POINT</th>
	<th>ID</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 * FROM `TABLE 3`";
	$body .= "【 更新前のデータ 】" . $TABLEHEAD;
	
	// 結果セットを取得
	$rst = mysql_query($sql);
	
	// 結果セットからデータをループで読み込む
	while ($col = mysql_fetch_array($rst)) {
		$body .= "<tr>";
		$body .= "<td>" . $col['COL 2'] . "</td>";
		$body .= "<td align='right'>" . $col['COL 4'] . "</td>";
		$body .= "<td align='center'>" . $col['COL 1'] . "</td>";
		$body .= "</tr>";
	}
	
	// 結果セットを破棄
	mysql_free_result($rst);
	$body .= "$TABLEFOOT<br>";
	
	// レコードを更新する SQL を組み立てる
	$sql = "UPDATE `TABLE 3` SET `COL 4` = `COL 4` * 1.05";
	// SQL を発行
	if (mysql_query($sql)) {
		$body .= "レコードを更新した!<br><br>";
	}
	else {
		$body .= "レコードの更新に失敗!!<br><br>";
	}
	
	// TABLE 3 テーブルのすべてのレコードを読み込む SQL を組み立てる
	$sql = "SELECT * FROM `TABLE 3`";
	$body .= "【 更新データ後 】" . $TABLEHEAD;
	
	// 結果セットを取得
	$rst = mysql_query($sql);
	
	// 結果セットからデータをループで読み込む
	while ($col = mysql_fetch_array($rst)) {
		$body .= "<tr>";
		$body .= "<td>" . $col['COL 2'] . "</td>";
		$body .= "<td align='right'>" . $col['COL 4'] . "</td>";
		$body .= "<td align='center'>" . $col['COL 1'] . "</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">1-11&nbsp;</span>テーブルのレコードを更新する</h2>
								</a>
								<div class="post_inner">UPDATE 文(SQL)  mysql_query 関数
										</p>
										<ul class="list01">
												<li>テーブルに保存されている既存のレコードを更新するには、「UPDATE」文を使ったSQL を mysql_query 関数で発行する。UPDATE 文は次のような構文で記述する。UPDATE 文を mysql_query 関数で発行すると、レコードの更新に成功した場合は True, 失敗した場合は False が返される。<br>
														<span class="b">UPDATE 文<br>
														UPDATE テーブル名 SET<br>
														フィールド名 = 値,
														フィールド名 = 値,・・・</span><br><span class="b">テーブル名</span><br>
														更新する既存のテーブル名を指定する。<br><span class="b">フィールド名</span><br>
														更新対象となるフィールド名を指定する。<br><span class="b"></span><br>
														左辺のフィールドに対する更新後の値を指定する。フィールドが文字列型の場合「”」や「'」で囲むなど、値は更新先フィールドのデータ型に準じて記述される。「SET 'COL 4' = 3000」のうように、直接その値を指定する(この場合は全レコードが「3000」に更新される。ほかのフィールドに保存されているデータを加工して、その値に更新することもできる。)<br>
														複数のフィールドを更新する場合は、「フィールド名=値」を1セットとして、カンマ区切りで列挙する(最後はカンマ不要)。WHERE 句を併用して、特定の条件に一致するレコードだけを更新することもできる。
												<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>
&lt;?php
	$DBSERVER = "*******"; // MySQL サーバ名
	$DBUSER = "*******"; // ログインユーザ名
	$DBPASSWORD = "********"; // パスワード
	$DBNAME = "*********"; // データベース名
	$TABLEHEAD = "&lt;table border='1'&gt;
	&lt;tr&gt;
	&lt;th&gt;TITLE&lt;/th&gt;
	&lt;th&gt;POINT&lt;/th&gt;
	&lt;th&gt;ID&lt;/th&gt;
	&lt;/tr&gt;";
	
	$TABLEFOOT = "&lt;table&gt;";

  //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 * FROM `TABLE 3`";
	$body .= "【 更新前のデータ 】" . $TABLEHEAD;
	
	// 結果セットを取得
	$rst = mysql_query($sql);
	
	// 結果セットからデータをループで読み込む
	while ($col = mysql_fetch_array($rst)) {
		$body .= "&lt;tr&gt;";
		$body .= "&lt;td&gt;" . $col['COL 2'] . "&lt;/td&gt;";
		$body .= "&lt;td align='right'&gt;" . $col['COL 4'] . "&lt;/td&gt;";
		$body .= "&lt;td align='center'&gt;" . $col['COL 1'] . "&lt;/td&gt;";
		$body .= "&lt;/tr&gt;";
	}
	
	// 結果セットを破棄
	mysql_free_result($rst);
	$body .= "$TABLEFOOT&lt;br&gt;";
	
	// レコードを更新する SQL を組み立てる
	$sql = "UPDATE `TABLE 3` SET `COL 4` = `COL 4` * 1.05";
	// SQL を発行
	if (mysql_query($sql)) {
		$body .= "レコードを更新した!&lt;br&gt;&lt;br&gt;";
	}
	else {
		$body .= "レコードの更新に失敗!!&lt;br&gt;&lt;br&gt;";
	}
	
	// TABLE 3 テーブルのすべてのレコードを読み込む SQL を組み立てる
	$sql = "SELECT * FROM `TABLE 3`";
	$body .= "【 更新データ後 】" . $TABLEHEAD;
	
	// 結果セットを取得
	$rst = mysql_query($sql);
	
	// 結果セットからデータをループで読み込む
	while ($col = mysql_fetch_array($rst)) {
		$body .= "&lt;tr&gt;";
		$body .= "&lt;td&gt;" . $col['COL 2'] . "&lt;/td&gt;";
		$body .= "&lt;td align='right'&gt;" . $col['COL 4'] . "&lt;/td&gt;";
		$body .= "&lt;td align='center'&gt;" . $col['COL 1'] . "&lt;/td&gt;";
		$body .= "&lt;/tr&gt;";
	}
	
	// 結果セットを破棄
	mysql_free_result($rst);
	$body .= "$TABLEFOOT&lt;br&gt;";
	
	// MySQL との接続を解除
	mysql_close();
?&gt;

&lt;?=$body ?&gt;
</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">&nbsp;カテゴリートップへ戻る</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 &copy; 2014 webry&nbsp;-&nbsp;『 webサイト開発 | PHPサンプルサイト 』 All Rights Reserved.
						</address>
				</footer>
		</div>
		<!--▲.content_inner--> 
</div>
<!--▲#container-->

</body>
</html>


表示内容を確認

テーブルのレコードを更新する




MySQL データベースの処理25




レコードを操作する

配列のデータをまとめて追加する

使用関数: INSERT 文(SQL) mysql_query 関数 foreach

  • 下記の例は、あらかじめ配列に用意された複数のデータをまとめてテーブルに追加する例。

    多次元の $arydata 配列に代入されているデータを TABLE 3 に追加している。foreach 文によるループによって、配列内のデータを順番に取り出しながら、それらをまとめてレコードを追加する。ただし、INSERT 文そのものは1回1レコードの追加であることに注意。


【 書式 】

PHPスクリプト

	<?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");
?>

<?=
  // データを配列に用意
  $arydata = array(
  array("目白", "山の手", "1200"),
  array("大久保", "山手", "13000"),
  array("新宿", "新宿線", "500")
  );
  
  // 配列のデータを順番に取り出す
  foreach ($arydata as $data) {
	  // レコードを追加する SQL を組み立てる
	  $sql = "INSERT INTO `TABLE 3` (`COL 2`, `COL 3`, `COL 4`) VALUES (\"$data[0]\", \"$data[1]\", '$data[2]')";
	  
	  // SQL を発行
	  if (mysql_query($sql)) {
		  print "" . $data[0] . "」のレコードを追加<br><br>";
		}
		else {
			print "レコードの追加に失敗した。<br><br>";
		}
  }
  
  // MySQL との接続を解除
  mysql_close();
?>


ソースコード


ソースコード【 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");
?>

<!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">1-10&nbsp;</span>配列のデータをまとめて追加する</h2>
								</a>
								<div class="post_inner">INSERT 文(SQL)  mysql_query 関数  foreach
										</p>
										<ul class="list01">
												<li>下記の例は、あらかじめ配列に用意された複数のデータをまとめてテーブルに追加する例。<br>
														多次元の $arydata 配列に代入されているデータを TABLE 3 に追加している。foreach 文によるループによって、配列内のデータを順番に取り出しながら、それらをまとめてレコードを追加する。ただし、INSERT 文そのものは1回1レコードの追加であることに注意。</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>
&lt;?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");
?&gt;

&lt;?=
  // データを配列に用意
  $arydata = array(
  array("目白", "山の手", "1200"),
  array("大久保", "山手", "13000"),
  array("新宿", "新宿線", "500")
  );
  
  // 配列のデータを順番に取り出す
  foreach ($arydata as $data) {
	  // レコードを追加する SQL を組み立てる
	  $sql = "INSERT INTO `TABLE 3` (`COL 2`, `COL 3`, `COL 4`) VALUES (\"$data[0]\", \"$data[1]\", '$data[2]')";
	  
	  // SQL を発行
	  if (mysql_query($sql)) {
		  print "「" . $data[0] . "」のレコードを追加&lt;br&gt;&lt;br&gt;";
		}
		else {
			print "レコードの追加に失敗した。&lt;br&gt;&lt;br&gt;";
		}
  }
  
  // MySQL との接続を解除
  mysql_close();
?&gt;
</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">
																<?=
  // データを配列に用意
  $arydata = array(
  array("目白", "山の手", "1200"),
  array("大久保", "山手", "13000"),
  array("新宿", "新宿線", "500")
  );
  
  // 配列のデータを順番に取り出す
  foreach ($arydata as $data) {
	  // レコードを追加する SQL を組み立てる
	  $sql = "INSERT INTO `TABLE 3` (`COL 2`, `COL 3`, `COL 4`) VALUES (\"$data[0]\", \"$data[1]\", '$data[2]')";
	  
	  // SQL を発行
	  if (mysql_query($sql)) {
		  print "「" . $data[0] . "」のレコードを追加<br><br>";
		}
		else {
			print "レコードの追加に失敗した。<br><br>";
		}
  }
  
  // MySQL との接続を解除
  mysql_close();
?>
														</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">&nbsp;カテゴリートップへ戻る</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 &copy; 2014 webry&nbsp;-&nbsp;『 webサイト開発 | PHPサンプルサイト 』 All Rights Reserved.
						</address>
				</footer>
		</div>
		<!--▲.content_inner--> 
</div>
<!--▲#container-->

</body>
</html>


表示内容を確認

配列のデータをまとめて追加する




MySQL データベースの処理24




レコードを操作する

テーブルにレコードを追加する

使用関数: INSERT 文(SQL) mysql_query 関数

  • テーブルレコードを追加するには、「INSERT」文を使ったSQLmysql_query 関数によって発行する。INSERT 文は次のような構文になる。

  • INSERT 文

    INSERT INTO テーブル名

    (フィールド名, フィールド名, ・・・・)

    VALUES

    (値, 値, ・・・・);

    • テーブル名

      レコードの追加さきとなる既存テーブルの名前を指定。
    • フィールド

      データを書き込むフィールド名を指定する。複数ある場合はカンマで区切って列挙する。


    • 実際にテーブルに書き込むデータの値を指定。
  • 下記の例の場合

    title ← Excel 関数で困ったときの基本技・便利技

    price ← 880

    releasedate ← 2006-8-5

    「値」は、書き込み先のフィールドのデータ型に準じて記述する必要がある。例、フィールドが文字列場合は「”」や「'」で囲む。数値の場合そのまま記述。日付/時刻型も「"」や「'」で囲む。
  • 下記の例のtitleの文字列に「"」や「'」やエスケープ文字が含まれたりすると、変数$sql に代入するPHP スクリプト上の文字列が壊れることがある。これを回避するため「\"」で囲んでいる。

    HTML フォームから入力された文字列をテーブルに保存する場合など、この方法でトラブルを回避できる。ことがある。

  • INSERT 文を mysql_query 関数で発行する場合、SELECT 文のような結果セットは返されない。レコードの追加に成功した場合は Ture, 失敗した場合は False が返される。


【 書式 】

PHPスクリプト

	<?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");
?>

<?=  //`TABLE 3`テーブルの総レコード数を取得
  $sql = "SELECT Count(*) AS `COL 3` FROM `TABLE 3`";
  $rst = mysql_query($sql);
  $col = mysql_fetch_array($rst);
  print "COL 3 のレコード数は?" . $col['COL 3'] . "<BR><BR>";
  mysql_free_result($rst);

  //
  $sql = "INSERT INTO `TABLE 3` (`COL 2`, `COL 4`, `COL 3`) VALUES (\"日本\", \"東京\" , '1999')";
  //SQLを発行
  if (mysql_query($sql)) {
    print "保存した。<BR><BR>";
  }
  else {
    print "保存できない。<BR><BR>";
  }

  // 追加後のデータの確認
  $sql = "SELECT Count(*) AS `COL 3` FROM `TABLE 3`";
  $rst = mysql_query($sql);
  $col = mysql_fetch_array($rst);
  print "COL 3 の総レコード数は?" . $col['COL 3'] . "<BR><BR>";
  mysql_free_result($rst);

  // MySQL との接続を解除
  mysql_close();
?>


ソースコード


ソースコード【 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");
?>

<!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">1-9&nbsp;</span>テーブルにレコードを追加する</h2>
								</a>
								<div class="post_inner">INSERT 文(SQL)  mysql_query 関数
										</p>
										<ul class="list01">
												<li>テーブルレコードを追加するには、「INSERT」文を使ったSQLをmysql_query 関数によって発行する。INSERT 文は次のような構文になる。</li>
												INSERT 文
												INSERT INTO テーブル名
												(フィールド名, フィールド名, ・・・・)
												VALUES
												(値, 値, ・・・・);
												<li>
														<ul>
																<li>テーブル名<br>
																		レコードの追加さきとなる既存テーブルの名前を指定。</li>
																<li>フィールド<br>
																		データを書き込むフィールド名を指定する。複数ある場合はカンマで区切って列挙する。</li>
																<li><br>
																		実際にテーブルに書き込むデータの値を指定。</li>
														</ul>
												</li>
												<li>下記の例の場合<br>
														title     ← Excel 関数で困ったときの基本技・便利技<br>
														price    ← 880<br>
														releasedate ← 2006-8-5<br>
														「値」は、書き込み先のフィールドのデータ型に準じて記述する必要がある。例、フィールドが文字列場合は「”」や「'」で囲む。数値の場合そのまま記述。日付/時刻型も「"」や「'」で囲む。
												<li>下記の例のtitleの文字列に「"」や「'」やエスケープ文字が含まれたりすると、変数$sql に代入するPHP スクリプト上の文字列が壊れることがある。これを回避するため「\"」で囲んでいる。<br>
														HTML フォームから入力された文字列をテーブルに保存する場合など、この方法でトラブルを回避できる。ことがある。</li>
												<li>INSERT 文を mysql_query 関数で発行する場合、SELECT 文のような結果セットは返されない。レコードの追加に成功した場合は Ture, 失敗した場合は False が返される。</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>
&lt;?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");
?&gt;

&lt;? =
//`TABLE 3`テーブルの総レコード数を取得
  $sql = "SELECT Count(*) AS `COL 3` FROM `TABLE 3`";
  $rst = mysql_query($sql);
  $col = mysql_fetch_array($rst);
  print "COL 3 のレコード数は?" . $col['COL 3'] . "&lt;BR&gt;&lt;BR&gt;";
  mysql_free_result($rst);

  //
  $sql = "INSERT INTO `TABLE 3` (`COL 2`, `COL 4`, `COL 3`) VALUES (\"日本\", \"東京\" , '1999')";
  //SQLを発行
  if (mysql_query($sql)) {
    print "保存した。&lt;BR&gt;&lt;BR&gt;";
  }
  else {
    print "保存できない。&lt;BR&gt;&lt;BR&gt;";
  }

  // 追加後のデータの確認
  $sql = "SELECT Count(*) AS `COL 3` FROM `TABLE 3`";
  $rst = mysql_query($sql);
  $col = mysql_fetch_array($rst);
  print "COL 3 の総レコード数は?" . $col['COL 3'] . "&lt;BR&gt;&lt;BR&gt;";
  mysql_free_result($rst);

  // MySQL との接続を解除
  mysql_close();
?&gt;
</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 3`テーブルの総レコード数を取得
  $sql = "SELECT Count(*) AS `COL 3` FROM `TABLE 3`";
  $rst = mysql_query($sql);
  $col = mysql_fetch_array($rst);
  print "COL 3 のレコード数は?" . $col['COL 3'] . "<BR><BR>";
  mysql_free_result($rst);

  //
  $sql = "INSERT INTO `TABLE 3` (`COL 2`, `COL 4`, `COL 3`) VALUES (\"日本\", \"東京\" , '1999')";
  //SQLを発行
  if (mysql_query($sql)) {
    print "保存した。<BR><BR>";
  }
  else {
    print "保存できない。<BR><BR>";
  }

  // 追加後のデータの確認
  $sql = "SELECT Count(*) AS `COL 3` FROM `TABLE 3`";
  $rst = mysql_query($sql);
  $col = mysql_fetch_array($rst);
  print "COL 3 の総レコード数は?" . $col['COL 3'] . "<BR><BR>";
  mysql_free_result($rst);

  // MySQL との接続を解除
  mysql_close();
?>
														</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">&nbsp;カテゴリートップへ戻る</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 &copy; 2014 webry&nbsp;-&nbsp;『 webサイト開発 | PHPサンプルサイト 』 All Rights Reserved.
						</address>
				</footer>
		</div>
		<!--▲.content_inner--> 
</div>
<!--▲#container-->

</body>
</html>


表示内容を確認

テーブルにレコードを追加する




MySQL データベースの処理23




レコードを操作する

レコードとフィールドを配列で読み込む

使用関数: mysql_result 関数

  • mysql_result 関数を使うと、結果セットに含まれる特定のレコードの、特定のフィールドだけを取り出せる。

    この関数の第1引数には「結果セットID」、第2引数には「取り出したいレコード番号」、第3引数には「取り出したいフィールド番号」を指定する。いずれも先頭を「0」として数える。
  • mysql_num_rows 関数によって得られた結果セットのレコード数、ならびにmysql_num_fields 関数によって得られたフィールド数をカウンタの上限とする2重構造のループ処理する。これにより、すべてのレコード/フィールドのデータを読み込むことができる。

    この方法は、あらかじめフィールドの数や名前を知る必要がないので、「とにかくテーブルの中身を画面に表示させたい」ときに便利。任意のレコード/フィールドにランダムにアクセスする場合なども有効。


【 書式 】

PHPスクリプト

	<?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");

  //`TABLE 3`テーブルのすべてのフィールドを読み込むSQLを組み立て
  $sql = "SELECT * FROM `TABLE 3`";

  //結果セットを取得
  $rst = mysql_query($sql);
  
  // 結果セットのフィールド数を取得
  $fldmax = mysql_num_fields($rst);
  
  // 結果セットのレコード数を取得
  $recmax = mysql_num_rows($rst);
  
  // HTML の表のヘッダを組みたて
  $body = "<tr>";
  for ($fldnum = 0; $fldnum < $fldmax; $fldnum++) {
	  $body .= "<th>" . mysql_field_name($rst, $fldnum) . "</th>";
	}
	$body .= "</tr>";
	
	// HTML の表のデータ部を組み立て
	for ($recnum = 0; $recnum < $recmax; $recnum++) {
		$body .= "<tr>";
		for ($fldnum = 0; $fldnum < $fldmax; $fldnum++) {
		$body .= "<td>" . mysql_result($rst, $recnum, $fldnum) . "</td>";
	}
	$body .= "</tr>";
	}
?>

<table border="1">
<?=$body?>
</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");

  //`TABLE 3`テーブルのすべてのフィールドを読み込むSQLを組み立て
  $sql = "SELECT * FROM `TABLE 3`";

  //結果セットを取得
  $rst = mysql_query($sql);
  
  // 結果セットのフィールド数を取得
  $fldmax = mysql_num_fields($rst);
  
  // 結果セットのレコード数を取得
  $recmax = mysql_num_rows($rst);
  
  // HTML の表のヘッダを組みたて
  $body = "<tr>";
  for ($fldnum = 0; $fldnum < $fldmax; $fldnum++) {
	  $body .= "<th>" . mysql_field_name($rst, $fldnum) . "</th>";
	}
	$body .= "</tr>";
	
	// HTML の表のデータ部を組み立て
	for ($recnum = 0; $recnum < $recmax; $recnum++) {
		$body .= "<tr>";
		for ($fldnum = 0; $fldnum < $fldmax; $fldnum++) {
		$body .= "<td>" . mysql_result($rst, $recnum, $fldnum) . "</td>";
	}
	$body .= "</tr>";
	}
?>

<!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">1-8&nbsp;</span>レコードとフィールドを配列で読み込む</h2>
								</a>
								<div class="post_inner">mysql_result 関数
										</p>
										<ul class="list01">
												<li>mysql_result 関数を使うと、結果セットに含まれる特定のレコードの、特定のフィールドだけを取り出せる。<br>
														この関数の第1引数には「結果セットID」、第2引数には「取り出したいレコード番号」、第3引数には「取り出したいフィールド番号」を指定する。いずれも先頭を「0」として数える。</li>
												<li>mysql_num_rows 関数によって得られた結果セットのレコード数、ならびにmysql_num_fields 関数によって得られたフィールド数をカウンタの上限とする2重構造のループ処理する。これにより、すべてのレコード/フィールドのデータを読み込むことができる。<br>
														この方法は、あらかじめフィールドの数や名前を知る必要がないので、「とにかくテーブルの中身を画面に表示させたい」ときに便利。任意のレコード/フィールドにランダムにアクセスする場合なども有効。</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>
&lt;?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");

  //`TABLE 3`テーブルのすべてのフィールドを読み込むSQLを組み立て
  $sql = "SELECT * FROM `TABLE 3`";

  //結果セットを取得
  $rst = mysql_query($sql);
  
  // 結果セットのフィールド数を取得
  $fldmax = mysql_num_fields($rst);
  
  // 結果セットのレコード数を取得
  $recmax = mysql_num_rows($rst);
  
  // HTML の表のヘッダを組みたて
  $body = "&lt;tr&gt;";
  for ($fldnum = 0; $fldnum &lt; $fldmax; $fldnum++) {
	  $body .= "&lt;th&gt;" . mysql_field_name($rst, $fldnum) . "&lt;/th&gt;";
	}
	$body .= "&lt;/tr&gt;";
	
	// HTML の表のデータ部を組み立て
	for ($recnum = 0; $recnum &lt; $recmax; $recnum++) {
		$body .= "&lt;tr&gt;";
		for ($fldnum = 0; $fldnum &lt; $fldmax; $fldnum++) {
		$body .= "&lt;td&gt;" . mysql_result($rst, $recnum, $fldnum) . "&lt;/td&gt;";
	}
	$body .= "&lt;/tr&gt;";
	}
?&gt;

&lt;?=$body?&gt;
</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">
																		<?=$body?>
																</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">&nbsp;カテゴリートップへ戻る</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 &copy; 2014 webry&nbsp;-&nbsp;『 webサイト開発 | PHPサンプルサイト 』 All Rights Reserved.
						</address>
				</footer>
		</div>
		<!--▲.content_inner--> 
</div>
<!--▲#container-->

</body>
</html>


表示内容を確認

レコードとフィールドを配列で読み込む




MySQL データベースの処理22




レコードを操作する

レコードのフィールド名を調べる

使用関数: mysql_field_name 関数

  • mysql_field_name 関数を使うと、SELECT 文の発行によって得られた結果セットの各フィールド名を取得できる。この関数の第1引数には、mysql_query 関数の返り値である「結果セットID」を指定する。

    第2引数には「名前を知りたいフィールドの列番号」(先頭は「0」を指定)。
  • mysql_num_fields 関数によって得られた総フィールド数を上限とするループでこの引数を変えていくことにより、すべてのフィールド名を得ることができる。


【 書式 】

PHPスクリプト

	<?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");

  //`TABLE 3`テーブルのすべてのフィールドを読み込むSQLを組み立て
  $sql = "SELECT * FROM `TABLE 3`";

  //結果セットを取得
  $rst = mysql_query($sql);
?>

<?=
  //結果セットのフィールド数を取得
  $fldmax = mysql_num_fields($rst);
  print "$fldmax ヶのフィールドがある。<br>";
  
  // すべてのフィールド名を出力
  for ($fldmax = 0; $fldmax < $fldmax; $fldmax++) {
	  print mysql_field_name ($rst, $fldmax) . "<br>";
	}
  //結果セットを破棄
  mysql_free_result($rst);

	// MySQL との接続を解除
	mysql_close();
?>


ソースコード


ソースコード【 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");

  //`TABLE 3`テーブルのすべてのフィールドを読み込むSQLを組み立て
  $sql = "SELECT * FROM `TABLE 3`";

  //結果セットを取得
  $rst = mysql_query($sql);
?>

<!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">1-7&nbsp;</span>レコードのフィールド名を調べる</h2>
								</a>
								<div class="post_inner">mysql_field_name 関数
										</p>
										<ul class="list01">
												<li>mysql_field_name 関数を使うと、SELECT 文の発行によって得られた結果セットの各フィールド名を取得できる。この関数の第1引数には、mysql_query 関数の返り値である「結果セットID」を指定する。<br>
														第2引数には「名前を知りたいフィールドの列番号」(先頭は「0」を指定)。</li>
												<li>mysql_num_fields 関数によって得られた総フィールド数を上限とするループでこの引数を変えていくことにより、すべてのフィールド名を得ることができる。</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>
&lt;?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");

  //`TABLE 3`テーブルのすべてのフィールドを読み込むSQLを組み立て
  $sql = "SELECT * FROM `TABLE 3`";

  //結果セットを取得
  $rst = mysql_query($sql);
?&gt;

&lt;?=
  //結果セットのフィールド数を取得
  $fldmax = mysql_num_fields($rst);
  print "$fldmax ヶのフィールドがある。&lt;br&gt;";
  
  // すべてのフィールド名を出力
  for ($fldmax = 0; $fldmax &lt; $fldmax; $fldmax++) {
	  print mysql_field_name ($rst, $fldmax) . "&lt;br&gt;";
	}
  //結果セットを破棄
  mysql_free_result($rst);

	// MySQL との接続を解除
	mysql_close();
?&gt;
</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">
																<?=
  //結果セットのフィールド数を取得
  $fldmax = mysql_num_fields($rst);
  print "$fldmax ヶのフィールドがある。<br>";
  
  // すべてのフィールド名を出力
  for ($fldmax = 0; $fldmax < $fldmax; $fldmax++) {
	  print mysql_field_name ($rst, $fldmax) . "<br>";
	}
  //結果セットを破棄
  mysql_free_result($rst);

	// MySQL との接続を解除
	mysql_close();
?>
														</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">&nbsp;カテゴリートップへ戻る</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 &copy; 2014 webry&nbsp;-&nbsp;『 webサイト開発 | PHPサンプルサイト 』 All Rights Reserved.
						</address>
				</footer>
		</div>
		<!--▲.content_inner--> 
</div>
<!--▲#container-->

</body>
</html>


表示内容を確認

レコードのフィールド名を調べる




MySQL データベースの処理21




レコードを操作する

レコードのフィールド数を調べる

使用関数: mysql_num_fields 関数

  • mysql_num_fields 関数を使うと、SELECT 文の発行によって得られた結果セットのフィールド数を取得できる。

    この関数の引数には、mysql_query 関数の返り値である「結果セットID」をしていする。


【 書式 】

PHPスクリプト

	<?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");

  //`TABLE 3`テーブルのすべてのフィールドを読み込むSQLを組み立て
  $sql = "SELECT * FROM `TABLE 3`";
?>

<?=
  //結果セットを取得
  $rst = mysql_query($sql);
  //結果セットのフィールド数を取得
  print mysql_num_fields($rst) . " ヶのフィールドがある<br>";
  //結果セットを破棄
  mysql_free_result($rst);

	// `TABLE 3` のテーブルの `COL 2`と`COL 4`フィールドだけを読み込む SQL を組み立てる
	$sql = "SELECT `COL 2`, `COL 4` FROM `TABLE 3`";
	// 結果セットを取得
	$rst = mysql_query($sql);
	// 結果セットのフィールド数を取得
	print mysql_num_fields($rst) . "ヶのフィールドがある<br>";
	// 結果セットを破棄
	mysql_free_result($rst);
	
	// MySQL との接続を解除
	mysql_close();?>


ソースコード


ソースコード【 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");

  //`TABLE 3`テーブルのすべてのフィールドを読み込むSQLを組み立て
  $sql = "SELECT * FROM `TABLE 3`";
?>

<!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">1-6&nbsp;</span>レコードのフィールド数を調べる</h2>
								</a>
								<div class="post_inner">mysql_num_fields 関数
										</p>
										<ul class="list01">
												<li>mysql_num_fields 関数を使うと、SELECT 文の発行によって得られた結果セットのフィールド数を取得できる。<br>
														この関数の引数には、mysql_query 関数の返り値である「結果セットID」をしていする。</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>
&lt;?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");

  //`TABLE 3`テーブルのすべてのフィールドを読み込むSQLを組み立て
  $sql = "SELECT * FROM `TABLE 3`";
?&gt;

&lt;?=
  //結果セットを取得
  $rst = mysql_query($sql);
  //結果セットのフィールド数を取得
  print mysql_num_fields($rst) . " ヶのフィールドがある&lt;br&gt;";
  //結果セットを破棄
  mysql_free_result($rst);

	// `TABLE 3` のテーブルの `COL 2`と`COL 4`フィールドだけを読み込む SQL を組み立てる
	$sql = "SELECT `COL 2`, `COL 4` FROM `TABLE 3`";
	// 結果セットを取得
	$rst = mysql_query($sql);
	// 結果セットのフィールド数を取得
	print mysql_num_fields($rst) . "ヶのフィールドがある&lt;br&gt;";
	// 結果セットを破棄
	mysql_free_result($rst);
	
	// MySQL との接続を解除
	mysql_close();?&gt;
</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">
																<?=
  //結果セットを取得
  $rst = mysql_query($sql);
  //結果セットのフィールド数を取得
  print mysql_num_fields($rst) . " ヶのフィールドがある<br>";
  //結果セットを破棄
  mysql_free_result($rst);

	// `TABLE 3` のテーブルの `COL 2`と`COL 4`フィールドだけを読み込む SQL を組み立てる
	$sql = "SELECT `COL 2`, `COL 4` FROM `TABLE 3`";
	// 結果セットを取得
	$rst = mysql_query($sql);
	// 結果セットのフィールド数を取得
	print mysql_num_fields($rst) . "ヶのフィールドがある<br>";
	// 結果セットを破棄
	mysql_free_result($rst);
	
	// MySQL との接続を解除
	mysql_close();?>
														</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">&nbsp;カテゴリートップへ戻る</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 &copy; 2014 webry&nbsp;-&nbsp;『 webサイト開発 | PHPサンプルサイト 』 All Rights Reserved.
						</address>
				</footer>
		</div>
		<!--▲.content_inner--> 
</div>
<!--▲#container-->

</body>
</html>


表示内容を確認

レコードのフィールド数を調べる