XAMPP壊れた際の対処方法
https://jobtech.jp/mysql/4027/
通常のコマンドプロントで開く方法
cd C:\Users\ica\Desktop\xampp\mysql\bin
これを打ち込み、移動してからいつも通り「mysql -u root -p」
みたいな感じで打ち込むと実行できる
データベース領域のバックアップ方法(フォルダver)
パス:C:\Users\ica\Desktop\xampp\mysql\data
ここにできたデータベース領域をコピーしておく
「スクリプトファイル」コピーして残しておくのが基本的
レコードの登録
insert_test.php
$dbobj = mysqli_connect(
'Tanaka', mysql -u Tanaka -p
'Manager' PW:Manager
) or die('DB接続できませんでした');
mysqli_select_db($dbobj, 'practice'); USE practice;
mysqli_set_charset($dbobj, 'utf8');
ここまでいつもの接続処理(後々関数化する予定)
INSERT文の時はSQL実行後の戻り値を変数に代入していなかった
INSERT文sの場合はDB側で処理されればOKだから
ちなみにINSERT文実行後の戻り値は真偽値
実行OK「true」実行NG「false」が返るので、戻り値を使って
HTMLの表示内容を変更することも可
mysqli_query($dbobj, 'INSERT INTO stationery
SET item="分度器", price=240, stock=6, keyword="事務", maker=2'
) or die(mysqli_error($dbobj));
新規商品入力フォームを作成
entry.php
$debug = true;
自作関数定義読み込み
require_once dirname(__FILE__) . '/functions.php';
DB接続
$dbobj = mysqli_connect('localhost', 'Tanaka', 'Manager')
or die("DB接続できませんでした");
mysqli_select_db($dbobj, 'practice');
mysqli_set_charset($dbobj, 'utf8');
$sql = 'SELECT * FROM trader';
$trSet = mysqli_query($dbobj, $sql) or die(mysqli_error($dbobj));
下記テーブル情報を変数trSet(traderSet)に代入
+------+----------+---------+--------------+
| m_id | company | address | tel |
+------+----------+---------+--------------+
| 1 | ペン工房 | 東京都 | 03-0000-0000 |
| 2 | 小鳥文具 | 栃木県 | 028-111-1111 |
| 3 | 黒木屋 | 島根県 | 0853-55-5555 |
+------+----------+---------+--------------+
body内
<body>
<? if($debug): ?>
<div class="debug">
<p>デバック用</p>
</p>
</div>
<? endif; ?>
<div id="container">
<div id="head">
<h1>新規登録</h1>
</div>
<div id="content">
<form action="insert.php" method="post">
<fieldset>
<legend>新しい商品の情報</legend>
<dl>
<dt><label for="item">商品名<span>※必須</span></label></dt>
<dd><input name="item" type="text" id="item" size="20" maxlength="10"></dd>
<dt><label for="price">価格</label></dt>
<dd><input name="price" type="text" id="price" size="10" maxlength="10">円</dd>
<dt><label for="stock">在庫</label></dt>
<dd><input name="stock" type="text" id="stock" size="10" maxlength="10"></dd>
<dt><label for="keyword">キーワード</label></dt>
<dd><input name="keyword" type="text" id="keyword" size="50" maxlength="255"></dd>
</dl>
</fieldset>
<fieldset>
<legend>メーカーの情報</legend>
<dl>
<dt>メーカー<span>※必須</span></dt>
<dd>
<!-- レコードの数繰り返す -->
<? while($trData=mysqli_fetch_assoc($trSet)): ?>
<label>
<input name="maker" type="radio" value="<? echo h($trData['m_id']); ?>">
<? echo h($trData['company']); ?>
</label>
<? endwhile; ?>
</dd>
</dl>
</fieldset>
<div class="submit_btn"><input type="submit" value="登録"></div>
</form>
<p><a href="index.php" onclick="return confirm('一覧に戻りますか?')">一覧に戻る</a></p>
<!--#content-->
</div>
<!--#container-->
</div>
</body>
◆ladelタグの使い方
1. 文字とフォームパーツをladelタグで囲んでグループ化する
例) ラジオボタンやチェックボックスで使用
2. 文字とフォームパーツが離れている場合は
「ladelタグのfor属性」と
「フォームパーツのid属性」を
揃えて関連があることを定義する
例)
<label for="パーツ名">項目1</label>
<input id="パーツ名" type="radio" name="hoge" value="1">
●メーカー選択ラジオボタン
レコードの数繰り返す
<? while($trData=mysqli_fetch_assoc($trSet)): ?>
<label>
<input name="maker" type="radio" value="<? echo h($trData['m_id']); ?>">
<? echo h($trData['company']); ?>
</label>
<? endwhile; ?>
・確認する際は、ソースコード見るとわかりやすい
・データベースでメーカーを増やすと連動して増える
●一覧に戻るボタン
onclick="return confirm('一覧に戻りますか?')">一覧に戻る</a>
◆onclick属性
・JavaScript専用属性
・イベント用属性
場所:a要素
種類(タイミング):クリックしたとき
処理:属性値に記述されている
return confirm('一覧に戻りますか?')
confirmメソッド:確認ダイアログ画面表示
「OK」 → 戻り値「true」
「キャンセル」 → 戻り値「false」
■今回のa要素はクリックで確認ダイアログ画面表示
「OK」 → リンク先に移動
「キャンセル」 → そのまま
insert.php
●いつもの
$debug = true;
自作関数定義読み込み
require_once dirname(__FILE__) . '/functions.php';
●三項演算子で値が届いているか確認したうえで各変数に値を代入
・値が届いていたら「届いた値」を代入
・値が届いていなかったら「NULL」を代入
$item = isset($_POST['item']) ? $_POST['item'] : NULL;
$price = isset($_POST['price']) ? $_POST['price'] : NULL;
$stock = isset($_POST['stock']) ? $_POST['stock'] : NULL;
$keyword = isset($_POST['keyword']) ? $_POST['keyword'] : NULL;
$maker = isset($_POST['maker']) ? $_POST['maker'] : NULL;
●打ち込みミス対策
文字列の先頭・末尾にあるホワイトスペースを取り除く
ホワイトスペース:半角スペース、改行、タブ等
$item = trim($item);
$price = trim($price);
$stock = trim($stock);
$keyword = trim($keyword);
$maker = trim($maker);
●使う変数代入
$message = ''; ブラウザ表示用メーセージ
$btn = ''; ブラウザ表示用リンク
途中...