//tips
//php理解
スタッフログイン画面のformは問題なく稼働している。
<form method="post" action="staff_login_check.php">
スタッフコード<br/>
<input type="text" name="code"><br/>
パスワード<br/>
<input type="password" name="pass"><br/>
staff_login_check.php部分に下記が入っていたためで、こちらは不要であったので削除。
<?php
session_start();
session_regenerate_id(true);
if(isset($_SESSION['member_login'])==false){
print 'ようこそゲスト様 ';
print'<a href="member_login.html">会員ログイン</a>';
print'<br/>';
}else{
print'ようこそ';
print $_SESSION['member_name'];
print'様 ';
print '<a href="member_logout.php">ログアウト</a><br/>';
print'<br/>';
}
?>
これで問題なく入ることはできたが、ログインができない場合の戻るボタンにリンクが貼られない問題が起きている。文字はきちんと表示されている。
if($rec==false)
{
print 'スタッフコードかパスワードが間違っています<br/';
print '<a href="staff_login.html">戻る</a>';//staff_login.html
}else{
再度下記のように入力し直して、問題解決。<br/‘と>漏れのミスをしていたのが要因。
print 'スタッフコードかパスワードが間違っています。<br />';
print '<a href="staff_login.html"> 戻る</a>';
無事に商品登録できた。
カートに複数商品を入れていく。
そうすると、ただいま障害により大変ご迷惑をおかけしております。の表示が出てmyadminに注文内容が追加されない。
Myadminのテーブルの一つが保存できていなかったようで消滅していたので再生成。
catch(Exception $e)部分を表示するために
catch(Exception $e)
{
print'ただいま障害により大変ご迷惑をおかけしております。';
echo $e->getMessage();
exit();
}
とすることで下記のエラーメッセージを取得。
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'code_member' in 'field list'
codenumberに文言を修正。
すると無事に注文情報がphpadminに登録された。
ここからはテーブル結合を実行し、必要な情報をいっぺんに取得できる方法を見ていく。
SELECT * FROM dat_sales,dat_sales_product WHERE dat_sales.code=dat_sales_product.code_sales
のように、まずは結合させたいテーブルをfrom以下に記載し、それぞれのテーブルの同一部分をWHERE以下に記載する。この場合は注文テーブルの注文コードと注文明細テーブルの注文コードを結合対象としている。
これをphpmyadminのSQLの項目に記入し、実行すると二つのテーブルが結合されたデータが表示される。
現段階だと注文が同タイミングで行われた場合に誤作動が起こる可能性があるので、同じタイミングに重ならないように順番をしっかり決めていく。
その場合にはロック機能が使用され、LOCK TABLES dat_sales WRITE,dat_sales_product WRITEのようにdat_sales WRITE部分でロックしたい対象を選択し、列挙していく。
ロックを解除したい場合は、UNLOCK TABLESを使用する。
$sql='LOCK TABLES dat_sales WRITE,dat_sales_product WRITE';
$stmt=$dbh->prepare($sql);
$stmt->execute();
を$sql='INSERT INTO dat_sales(code_number,name,email,postal1,postal2,address,tel)VALUES(?,?,?,?,?,?,?)’;の処理を実行する前に実行しておく。
こうすることで二つのテーブルにアクセスできるのはロックをかけた人だけになる。最後に接続を解除する前にロックを解除しておく。
$sql='UNLOCK TABLES';
$stmt=$dbh->prepare($sql);
$stmt->execute();
$dbh=null;
次に注文内容をcsvファイルで出力してエクセルで管理できるようにしていく。
スタッフ管理画面にダウンロードメニューを追加する。
<a href="../order/order_download.php">注文ダウンロード</a><br/>
ダウンロードしたい注文日付を選択する画面を作成する。
<?php
session_start();
session_regenerate_id(true);
if(isset($_SESSION['login'])==false){
print 'ログインされていません<br/>';
print'<a href="./staff_login.html">ログイン画面へ</a>';
exit();
}else{
print $_SESSION['staff_name'];
print 'さんログイン中<br/>';
print'<br/>';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ログイン</title>
</head>
<body>
ダウンロードしたい注文日を選んでください。<br/>
<form method="post" action="order_download_done.php">
<select name="year">
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
</select>
年
<select name="month">
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
月
<select name="day">
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
日<br/>
<br/>
<input type="submit" value="ダウンロードへ">
</form>
</body>
</html>
これでダウンロードしたい日付を選べるようになった。
年月日の入力プルダウンは便利なので関数化して今後いろいろなところで使えるようにする。
Common.phpのなかに内容を移し替える。