<?xml version="1.0" encoding="UTF-8" ?>
<rss version="0.91">
  <channel>
    <title>からすまる日誌 mySQL</title>
    <description>授業ノートのまとめ</description>
    <link>https://karasumaru.tosalog.com/</link>
    <language>ja</language>
    <copyright>Copyright (C) NINJATOOLS ALL RIGHTS RESERVED.</copyright>

    <item>
      <title>高度(29) おまけ さくらサーバーについて</title>
      <description>&lt;p&gt;授業の最後の週に&lt;br /&gt;
まきの先生に制作課題さくらサーバーにあげましたと報告したところ、&lt;br /&gt;
さくらには無料SSLがあるのでそれを取得した方が良いとのこと&lt;br /&gt;
&lt;br /&gt;
設定がいまいち不明だったので、&lt;br /&gt;
さくらサーバーに問い合わせた回答がこちら&lt;br /&gt;
&lt;br /&gt;
(余談ですがさくらサーバーはUIが個人的に分かりづらい&lt;br /&gt;
サポートセンターは親切)&lt;br /&gt;
&lt;br /&gt;
かいつまんでいうと、&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;・初期ドメインでは無料SSLサーバ証明書は発行できないが、&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;「共有SSL」が利用可能&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;・「http」と「https」でファイルのアップロード先は同一のフォルダ&lt;br /&gt;
&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
どういうことかというと、さくらサーバーにファイルをアップした時点で、&lt;br /&gt;
&lt;span style=&quot;color: #ff0000;&quot;&gt;http&lt;/span&gt;://xxxxxxx&lt;br /&gt;
&lt;span style=&quot;color: #ff0000;&quot;&gt;https&lt;/span&gt;://xxxxxxx&lt;br /&gt;
&lt;br /&gt;
の2つが自動で生成されている&lt;br /&gt;
&lt;br /&gt;
httpsの方は証明書、暗号化通信つき&lt;br /&gt;
ということのようです&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
実際の回答もおいておきます&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;&lt;hr /&gt;
&lt;p&gt;&amp;gt;お問い合わせいただきました無料SSLサーバ証明書の発行につきまして、&lt;br /&gt;
ご案内いたします。&lt;/p&gt;
&lt;p&gt;恐れ入りますが、初期ドメインでは無料SSLサーバ証明書は発行できませんが、&lt;br /&gt;
「共有SSL」がご利用可能でございます。&lt;/p&gt;
&lt;p&gt;　▼【共有SSL】設定方法&lt;br /&gt;
　&lt;a href=&quot;https://help.sakura.ad.jp/206054862/&quot;&gt;https://help.sakura.ad.jp/206054862/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なお、すでに初期ドメインに「共有SSL」が設定されているため、以下のURLで&lt;br /&gt;
アクセスが可能でございます。&lt;/p&gt;
&lt;p&gt;-----------------------------------------------------&lt;br /&gt;
　　　https://xxxxx&lt;br /&gt;
-----------------------------------------------------&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;gt;「http」と「https」でファイルのアップロード先は同一のフォルダでございます。&lt;/p&gt;
&lt;p&gt;初期ドメイン「berrysystems.sakura.ne.jp」は「www」フォルダ直下に&lt;br /&gt;
アップロードされたファイルを参照いたします。&lt;/p&gt;
&lt;p&gt;つきましては、FTP接続設定の際にファイルのアップロード先フォルダを&lt;br /&gt;
「www」に指定してくださいますようお願いいたします。&lt;/p&gt;
&lt;p&gt;FFFTPの設定方法に関しましては、以下のサポートページに詳細な案内が&lt;br /&gt;
ございますので、ご参照ください。&lt;/p&gt;
&lt;p&gt;　▼FFFTPを利用する&lt;br /&gt;
　&lt;a href=&quot;https://help.sakura.ad.jp/206207161/&quot;&gt;https://help.sakura.ad.jp/206207161/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上記手順でホームページデータをサーバにアップロードが完了しましたら、&lt;br /&gt;
ブラウザでアクセスする際にURLを「https://xxxxx」に&lt;br /&gt;
していただくと暗号化通信が可能でございます。&lt;br /&gt;
&lt;/p&gt;</description> 
      <link>https://karasumaru.tosalog.com/high/%E9%AB%98%E5%BA%A6-29-%20%E3%81%8A%E3%81%BE%E3%81%91%20%E3%81%95%E3%81%8F%E3%82%89%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6</link> 
    </item>
    <item>
      <title>高度(28) class(6)</title>
      <description>&lt;div&gt;編集のシーンで入力漏れがないかバリデーションをする&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;新規登録でもしたい&lt;/div&gt;
&lt;div&gt;&amp;rarr;関数化すれば使いまわせる&lt;/div&gt;
&lt;div&gt;名前と値段は必須というやつ&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;優先順位としては、送信していいかどうかよりも前&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;e.preventDefault();の綴りを2回間違ってるので&lt;/div&gt;
&lt;div&gt;Defaultの綴りに注意&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;こういう分岐&lt;br /&gt;
&lt;br /&gt;
未入力がある？&lt;/div&gt;
&lt;div&gt;はい&amp;rarr;alert表示、プリベントデフォルト&lt;/div&gt;
&lt;div&gt;いいえ&amp;rarr;&lt;/div&gt;
&lt;div&gt;　本当に編集していい？&lt;/div&gt;
&lt;div&gt;　はい&amp;rarr;実行&lt;/div&gt;
&lt;div&gt;　いいえ&amp;rarr;プリベントデフォルト&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;こういう感じ&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;ここまで&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
lunch.js&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
$(function(){&lt;br /&gt;
&amp;nbsp;//console.log(&quot;hoge&quot;);&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;//バリデーション&lt;br /&gt;
&amp;nbsp;function check(){&lt;br /&gt;
&amp;nbsp; var chk;&lt;br /&gt;
&amp;nbsp; if($('#menu').val()&amp;nbsp; ==&amp;nbsp; ''&amp;nbsp; ||&amp;nbsp; $('#price').val()==''){//空なら&lt;br /&gt;
&amp;nbsp;&amp;nbsp; chk = false;&lt;br /&gt;
&amp;nbsp; }else{&lt;br /&gt;
&amp;nbsp;&amp;nbsp; chk=true;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; return chk;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;//編集ボタン&lt;br /&gt;
&amp;nbsp;$('#sub1').on('click',function(e){&lt;br /&gt;
&amp;nbsp; var chk=check();//上で宣言したのを実行&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; //バリデーション&lt;br /&gt;
&amp;nbsp; if(!chk){&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; //未入力項目あり&lt;br /&gt;
&amp;nbsp;&amp;nbsp; alert('未入力項目あるよ');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; e.preventDefault();//イベント無効化&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; }else{&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; //入力OK,編集していいかどうか確認&lt;br /&gt;
&amp;nbsp;&amp;nbsp; var&amp;nbsp; flag=confirm('編集してよろしいかな');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; if(!flag){//いいえを押された&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; e.preventDefault();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;});&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;//削除ボタン&lt;br /&gt;
&amp;nbsp;$('#sub2').on('click',function(e){&lt;br /&gt;
&amp;nbsp; var&amp;nbsp; flag=confirm('削除してよろしいかな');&lt;br /&gt;
&amp;nbsp; if(!flag){//いいえを押された&lt;br /&gt;
&amp;nbsp;&amp;nbsp; e.preventDefault();&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;});&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
});&lt;br /&gt;

&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;さて新規と、編集削除の分岐をする&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;form.phpに戻って、&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php if(empty($id)): ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;submit&quot; name=&quot;sub3&quot; id=&quot;sub3&quot; value=&quot;新規作成&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php else: ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;submit&quot; name=&quot;sub1&quot; id=&quot;sub1&quot; value=&quot;編集&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;submit&quot; name=&quot;sub2&quot; id=&quot;sub2&quot; value=&quot;削除&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php endif&amp;nbsp; ?&amp;gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;id=&quot;sub3&quot;を付け加えたので&lt;/div&gt;
&lt;div&gt;jsにも付け加え&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&amp;nbsp;//新規作成ボタン&lt;/div&gt;
&amp;nbsp;$('#sub3').on('click',function(e){&lt;br /&gt;
&amp;nbsp; var chk=check();&lt;br /&gt;
&amp;nbsp; if(!chk){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; alert('未入力項目あるよ');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; e.preventDefault();&lt;br /&gt;
&amp;nbsp; }else{&lt;br /&gt;
&amp;nbsp;&amp;nbsp; var flag=confirm('登録してよろしいかな');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; if(!flag){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; e.preventDefault();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;});
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;外部からのアタックにチケットの発行は有効なので、&lt;/div&gt;
&lt;div&gt;ランダムな数をつくってhiddenでこっそりわたして&lt;/div&gt;
&lt;div&gt;sessionととんできたのと比較する&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;自分で予定しているフォームからきていることを確認する&lt;/div&gt;
&lt;div&gt;チケットの半券システム&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;echo time();&lt;/div&gt;
&lt;div&gt;1900年だかから何秒経過したか&lt;/div&gt;
&lt;div&gt;時間だけだとアタックしやすいので、&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;$ran = rand(1,100);&lt;/div&gt;
&lt;div&gt;$salt=&quot;hogemakino&quot;;&lt;/div&gt;
&lt;div&gt;$ticket =md5($ran.time().$salt);&lt;/div&gt;
&lt;div&gt;echo $ticket ;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041309.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586748311/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
ソルトが大事&lt;/div&gt;
&lt;div&gt;time()だけではアタックされるしrandomだけでも弱い&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041310.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586748323/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
検証で確認すること&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;input type=&quot;submit&quot; name=&quot;sub&quot; id=&quot;sub3&quot; value=&quot;新規作成&quot;&amp;gt;&lt;/div&gt;
&lt;div&gt;新規、編集、削除3つのボタンのnameを全部subに変える&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;すべて整っている前提で、&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;switch文で分岐をする&lt;/div&gt;
&lt;div&gt;caseごとにbreakを忘れずに&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;ここまで&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;strong&gt;exec.php&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&amp;nbsp;print_r($_POST);&lt;br /&gt;
&amp;nbsp;session_start();&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;if($_SESSION[&quot;ticket&quot;] != $_POST[&quot;ticket&quot;]){//チケットの半券一致せず&lt;br /&gt;
&amp;nbsp; exit();&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;require_once(&quot;class/lunch.class.php&quot;);&lt;br /&gt;
&amp;nbsp;$obj = new Lunch();&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;switch($_POST[&quot;sub&quot;]){&lt;br /&gt;
&amp;nbsp; case &quot;新規作成&quot;://飛んできたvalueが新規&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $obj-&amp;gt;setMenu($_POST[&quot;menu&quot;], $_POST[&quot;price&quot;], $_POST[&quot;c_id&quot;]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; case &quot;編集&quot;:&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $obj-&amp;gt;updateMenu($_POST[&quot;menu&quot;], $_POST[&quot;price&quot;], $_POST[&quot;c_id&quot;], $_POST[&quot;id&quot;]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; case &quot;削除&quot;:&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $obj-&amp;gt;deleteMenu($_POST[&quot;id&quot;]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
//header(&quot;Location:list.php&quot;);&lt;br /&gt;
//exit();&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;strong&gt;form.php&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
session_start();&lt;br /&gt;
&lt;br /&gt;
$ran = rand(1,100);&lt;br /&gt;
$salt=&quot;hogemakino&quot;;&lt;br /&gt;
$ticket =md5($ran.time().$salt);&lt;br /&gt;
//echo $ticket ;&lt;br /&gt;
$_SESSION[&quot;ticket&quot;] = $ticket;//sessionでチケット発行&lt;br /&gt;
&lt;br /&gt;
//新規でも編集でもこのファイルを使いたい&lt;br /&gt;
&lt;br /&gt;
require_once(&quot;class/lunch.class.php&quot;);&lt;br /&gt;
$obj = new Lunch();&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
if(!empty($_GET[&quot;id&quot;])){&lt;br /&gt;
&amp;nbsp;//編集の場合&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;//getで送られてくるidを事前につかまえる&lt;br /&gt;
&amp;nbsp;$id=intval($_GET[&quot;id&quot;]);&lt;br /&gt;
&amp;nbsp;$title=&quot;編集&quot;;//タイトルも分岐によって変わる&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;$arr = $obj-&amp;gt;getMenuById($id);&lt;br /&gt;
&amp;nbsp;$menu = htmlspecialchars($arr[&quot;menu&quot;],ENT_QUOTES);&lt;br /&gt;
&amp;nbsp;$price = $arr[&quot;price&quot;];&lt;br /&gt;
&amp;nbsp;$c_id = $arr[&quot;c_id&quot;];&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
}else{&lt;br /&gt;
&amp;nbsp;//新規作成の場合&lt;br /&gt;
&amp;nbsp;$title=&quot;新規作成&quot;;&lt;br /&gt;
&amp;nbsp;$menu = &quot;&quot;;&lt;br /&gt;
&amp;nbsp;$price =&quot;&quot;;&lt;br /&gt;
&amp;nbsp;$c_id=0;//A.I.（オートインクリメント）は1から始まる。わざとありえない番号を初期値にしておく&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&quot;ja&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;title&amp;gt;メニュー&amp;lt;?php echo $title; ?&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;css/style.css&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;script src=&quot;../jquery-3.4.1.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;div id=&quot;container&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;h1&amp;gt;メニュー&amp;lt;?php echo $title; ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;form action=&quot;exec.php&quot; method=&quot;post&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;&amp;lt;label for=&quot;menu&quot;&amp;gt;メニュー&amp;lt;/label&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; name=&quot;menu&quot; id=&quot;menu&quot; value=&quot;&amp;lt;?php echo $menu; ?&amp;gt;&quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;&amp;lt;label for=&quot;price&quot;&amp;gt;価格&amp;lt;/label&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; name=&quot;price&quot; id=&quot;price&quot; value=&quot;&amp;lt;?php echo $price; ?&amp;gt;&quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;&amp;lt;label for=&quot;c_id&quot;&amp;gt;カテゴリ&amp;lt;/label&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php $obj-&amp;gt;makeCatSelect($c_id); ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php if(empty($id)): ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;submit&quot; name=&quot;sub&quot; id=&quot;sub3&quot; value=&quot;新規作成&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php else: ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;submit&quot; name=&quot;sub&quot; id=&quot;sub1&quot; value=&quot;編集&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;submit&quot; name=&quot;sub&quot; id=&quot;sub2&quot; value=&quot;削除&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;hidden&quot; name=&quot;id&quot; value=&quot;&amp;lt;?php echo $id; ?&amp;gt;&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php endif ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;hidden&quot; name=&quot;ticket&quot; value=&quot;&amp;lt;?php echo $ticket;/*form側でもチケット発行*/ ?&amp;gt;&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;lt;script src=&quot;js/lunch.js&quot;&amp;gt;&amp;lt;/script&amp;gt; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;strong&gt;lunch.js&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
$(function(){&lt;br /&gt;
&amp;nbsp;//console.log(&quot;hoge&quot;);&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;//バリデーション&lt;br /&gt;
&amp;nbsp;function check(){&lt;br /&gt;
&amp;nbsp; var chk;&lt;br /&gt;
&amp;nbsp; if($('#menu').val() == '' || $('#price').val()==''){//空なら&lt;br /&gt;
&amp;nbsp;&amp;nbsp; chk = false;&lt;br /&gt;
&amp;nbsp; }else{&lt;br /&gt;
&amp;nbsp;&amp;nbsp; chk=true;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; return chk;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;//編集ボタン&lt;br /&gt;
&amp;nbsp;$('#sub1').on('click',function(e){&lt;br /&gt;
&amp;nbsp; var chk=check();//上で宣言したのを実行&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; //バリデーション&lt;br /&gt;
&amp;nbsp; if(!chk){&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; //未入力項目あり&lt;br /&gt;
&amp;nbsp;&amp;nbsp; alert('未入力項目あるよ');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; e.preventDefault();//イベント無効化&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; }else{&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; //入力OK,編集していいかどうか確認&lt;br /&gt;
&amp;nbsp;&amp;nbsp; var flag=confirm('編集してよろしいかな');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; if(!flag){//いいえを押された&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; e.preventDefault();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;});&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;//削除ボタン&lt;br /&gt;
&amp;nbsp;$('#sub2').on('click',function(e){&lt;br /&gt;
&amp;nbsp; var flag=confirm('削除してよろしいかな');&lt;br /&gt;
&amp;nbsp; if(!flag){//いいえを押された&lt;br /&gt;
&amp;nbsp;&amp;nbsp; e.preventDefault();&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;});&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;//新規作成ボタン&lt;br /&gt;
&amp;nbsp;$('#sub3').on('click',function(e){&lt;br /&gt;
&amp;nbsp; var chk=check();&lt;br /&gt;
&amp;nbsp; if(!chk){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; alert('未入力項目あるよ');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; e.preventDefault();&lt;br /&gt;
&amp;nbsp; }else{&lt;br /&gt;
&amp;nbsp;&amp;nbsp; var flag=confirm('登録してよろしいかな');&lt;br /&gt;
&amp;nbsp;&amp;nbsp; if(!flag){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; e.preventDefault();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;});&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;strong&gt;lunch.class.php&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class Lunch{&lt;br /&gt;
&amp;nbsp;private $pdo;//外から直接アクセスはできないように&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function __construct(){//コンストラクタ。初期化されたときに動く&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; //環境によって変更&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; $host=&quot;localhost&quot;;&lt;br /&gt;
&amp;nbsp; $dbuser=&quot;root&quot;;&lt;br /&gt;
&amp;nbsp; $dbpass=&quot;&quot;;&lt;br /&gt;
&amp;nbsp; $dbname=&quot;lunch&quot;;&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; $dsn = &quot;mysql:host={$host}; dbname={$dbname}; charset=utf8&quot;;&lt;br /&gt;
&amp;nbsp; $this-&amp;gt;pdo=new PDO($dsn,$dbuser,$dbpass); //$pdoとは書かない&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;}//constructの終わり&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function getAllMenu(){//publicでないと外から呼び出せない&lt;br /&gt;
&amp;nbsp; $sql = &quot;SELECT * FROM foods&quot;;&lt;br /&gt;
&amp;nbsp; $rs = $this-&amp;gt;pdo-&amp;gt;query($sql);&lt;br /&gt;
&amp;nbsp; $rows = $rs-&amp;gt;fetchAll(PDO::FETCH_ASSOC);&lt;br /&gt;
&amp;nbsp; return $rows;//戻り値&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function getMenubyId($id=1){//指定したid番号を取得、引き取るid番号が仮引数の$id&lt;br /&gt;
&amp;nbsp; $sql=&quot;SELECT * FROM foods WHERE id=:id&quot;;&lt;br /&gt;
&amp;nbsp; $stmt = $this-&amp;gt;pdo-&amp;gt;prepare($sql);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:id&quot;,$id,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;execute();&lt;br /&gt;
&amp;nbsp; $row = $stmt-&amp;gt;fetch(PDO::FETCH_ASSOC);&lt;br /&gt;
&amp;nbsp; return $row;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function setMenu($menu,$price,$c_id){//idはオートインクリメントなので必要ない&lt;br /&gt;
&amp;nbsp; $sql = &quot;INSERT INTO foods(menu,price,c_id) VALUES (:menu,:price,:c_id)&quot;;//メニューと値段とカテゴリidを追加 &lt;br /&gt;
&amp;nbsp; $stmt = $this-&amp;gt;pdo-&amp;gt;prepare($sql);//クラス内の変数なのでstmtやsqlのスコープはここだけ&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:menu&quot;,$menu,PDO::PARAM_STR);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:price&quot;,$price,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:c_id&quot;,$c_id,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;execute();&lt;br /&gt;
&amp;nbsp; //戻り値は要らない&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function updateMenu($menu,$price,$c_id,$id){//どれがupdateされるか分からないので3つとも仮引数を用意&lt;br /&gt;
&amp;nbsp; //主キーである$idがないと全部書き換わってしまうのでどこのレコードか指定するため今回4つプロパティが要る&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; $sql = &quot;UPDATE foods SET menu=:menu, price=:price, c_id=:c_id WHERE id=:id&quot;;&lt;br /&gt;
&amp;nbsp; $stmt = $this-&amp;gt;pdo-&amp;gt;prepare($sql);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:menu&quot;,$menu,PDO::PARAM_STR);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:price&quot;,$price,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:c_id&quot;,$c_id,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:id&quot;,$id,PDO::PARAM_INT);//idも必要ですよ&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;execute();&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function deleteMenu($id){//パラメータは主キーであるidだけでいい&lt;br /&gt;
&amp;nbsp; $sql = &quot;DELETE FROM foods WHERE id=:id&quot;;&lt;br /&gt;
&amp;nbsp; $stmt = $this-&amp;gt;pdo-&amp;gt;prepare($sql);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:id&quot;,$id,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;execute();&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;//セレクトプルダウンに表示&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function makeCatSelect($c_id){&lt;br /&gt;
&amp;nbsp; $sql = &quot;SELECT * FROM cats&quot;;&lt;br /&gt;
&amp;nbsp; $rs = $this-&amp;gt;pdo-&amp;gt;query($sql);//レコードセットの中に結果セットを入れる形&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; echo &quot;&amp;lt;SELECT name=\&quot;c_id\&quot; id=\&quot;c_id\&quot;&amp;gt;\n&quot;;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; //ダミーのオプション&lt;br /&gt;
&amp;nbsp; echo &quot;&amp;lt;option value=\&quot;\&quot;&amp;gt;以下から選択&amp;lt;/option&amp;gt;\n&quot;;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; while($row = $rs-&amp;gt;fetch(PDO::FETCH_ASSOC)){&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; $selStr = $c_id==$row[&quot;c_id&quot;] ? &quot; selected&quot; : &quot;&quot;;//三項演算。selectedか何もないか。あるにせよないにせよechoする。一致すればselected、なければ&quot;&quot;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; //option value=&quot;1&quot;うどん&amp;lt;/option&amp;gt;みたいなのを出力したい&lt;br /&gt;
&amp;nbsp;&amp;nbsp; echo &quot;&amp;lt;option value=\&quot;{$row[&quot;c_id&quot;]}\&quot;{$selStr}&amp;gt;&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; echo htmlspecialchars($row[&quot;cat&quot;],ENT_QUOTES);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; echo &quot;&amp;lt;/option&amp;gt;\n&quot;;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; echo &quot;&amp;lt;/select&amp;gt;\n&quot;;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;strong&gt;style.css&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
body{&lt;br /&gt;
&amp;nbsp;background:#eff;&lt;br /&gt;
}&lt;br /&gt;
#container{&lt;br /&gt;
&amp;nbsp;width:80%;&lt;br /&gt;
&amp;nbsp;margin:auto;&lt;br /&gt;
}&lt;br /&gt;
table{&lt;br /&gt;
&amp;nbsp;border-collapse:collapse;&lt;br /&gt;
}&lt;br /&gt;
th,td{&lt;br /&gt;
&amp;nbsp;padding:0.3rem 0.5rem;&lt;br /&gt;
&amp;nbsp;text-align:left;&lt;br /&gt;
&amp;nbsp;background:#fff;&lt;br /&gt;
&amp;nbsp;border:solid 1px #555;&lt;br /&gt;
}&lt;br /&gt;
th{&lt;br /&gt;
&amp;nbsp;background:#ccc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;なおエラーがでたが原因は、&lt;br /&gt;
&lt;br /&gt;
switch($_POST[&quot;sub&quot;]){&lt;br /&gt;
&amp;nbsp; case &quot;新規作成&quot;://飛んできたvalueが新規&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $obj-&amp;gt;setMenu($_POST[&quot;menu&quot;], $_POST[&quot;$price&quot;], $_POST[&quot;$c_id&quot;]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
$_POST[&quot;$price&quot;]じゃなくて、&lt;br /&gt;
$_POST[&quot;price&quot;]&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
$がいらなかった
&lt;div&gt;　&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041311.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586748443/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;</description> 
      <link>https://karasumaru.tosalog.com/high/%E9%AB%98%E5%BA%A6-28-%20class-6-</link> 
    </item>
    <item>
      <title>高度(27) class(5)</title>
      <description>&lt;div&gt;セレクトはよく使うので、&lt;/div&gt;
&lt;div&gt;専用のメソッドを作って&lt;/div&gt;
&lt;div&gt;書き出しまでやってしまおう&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041302.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586744946/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div&gt;ここの&quot;c_id&quot;は&quot;&quot;の中なので、￥をつけて無効化する&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;本来echo &quot;&amp;lt;SELECT name=&quot;c_id&quot; id=&quot;c_id&quot;&amp;gt;&quot;;と書きたいが&lt;/div&gt;
&lt;div&gt;これだと「echo &quot;&amp;lt;SELECT name=&quot;」で一回終わってしまうので&lt;/div&gt;
&lt;div&gt;無効化が必要&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&amp;nbsp; while($row = $rs-&amp;gt;fetch(PDO::FETCH_ASSOC)){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; echo &quot;&amp;lt;option value=\&quot;1\&quot;&amp;gt;&quot;;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;

&lt;div&gt;&lt;/div&gt;
&lt;div&gt;こうしたいが、&lt;/div&gt;
&lt;div&gt;valueの中身は1じゃなくて$row[&quot;c_id&quot;]にしたい&lt;/div&gt;
&lt;div&gt;まず1と書いてみて、&lt;/div&gt;
&lt;div&gt;そのあとはめこんでいく&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;echo &quot;&amp;lt;option value=\&quot;{$row[&quot;c_id&quot;]}\&quot;&amp;gt;&quot;;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;この{}はなくてもいいらしいが一応つける&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041303.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586744974/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div&gt;これが&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041304.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586744988/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
こうなる&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041305.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586745003/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
ここには{}が必要なのだが、&lt;/div&gt;
&lt;div&gt;それ以前に、&lt;/div&gt;
&lt;div&gt;ここの&quot;&quot;は無効化してはいけない&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;なぜかというと、この部分はphpに解読して実行もらわないといけない&lt;br /&gt;
phpの文章なので&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;その前のoption value=\&quot;&lt;/div&gt;
&lt;div&gt;の部分の無効化は、&lt;br /&gt;
「htmlなので」「そうやって書き出してくれ」という意味で必要&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;phpの部分はパースしてもらいたいから&quot;&quot;がそのまま要るし、&lt;br /&gt;
htmlの部分はパースされちゃ困るから無効化する&lt;br /&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;selectedやcheckedがちゃんとなるように工夫&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;呼び出し元を&lt;/div&gt;
&lt;div&gt;&amp;lt;?php $obj-&amp;gt;makeCatSelect($c_id); ?&amp;gt;&lt;/div&gt;
&lt;div&gt;に変更&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041306.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586745028/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;こうなった&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&amp;nbsp;public function makeCatSelect($c_id){&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; $sql = &quot;SELECT * FROM cats&quot;;&lt;br /&gt;
&amp;nbsp; $rs = $this-&amp;gt;pdo-&amp;gt;query($sql);//レコードセットの中に結果セットを入れる形&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; echo &quot;&amp;lt;SELECT name=\&quot;c_id\&quot; id=\&quot;c_id\&quot;&amp;gt;\n&quot;;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; //ダミーのオプション&lt;br /&gt;
&amp;nbsp; echo &quot;&amp;lt;option value=\&quot;\&quot;&amp;gt;以下から選択&amp;lt;/option&amp;gt;\n&quot;;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; while($row = $rs-&amp;gt;fetch(PDO::FETCH_ASSOC)){&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; $selStr = $c_id==$row[&quot;c_id&quot;] ? &quot; selected&quot; : &quot;&quot;;//三項演算。selectedか何もないか。あるにせよないにせよechoする。一致すればselected、なければ&quot;&quot;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; //option value=&quot;1&quot;うどん&amp;lt;/option&amp;gt;みたいなのを出力したい&lt;br /&gt;
&amp;nbsp;&amp;nbsp; echo &quot;&amp;lt;option value=\&quot;{$row[&quot;c_id&quot;]}\&quot;{$selStr}&amp;gt;&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; echo htmlspecialchars($row[&quot;cat&quot;],ENT_QUOTES);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; echo &quot;&amp;lt;/option&amp;gt;\n&quot;;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; echo &quot;&amp;lt;/select&amp;gt;\n&quot;;&lt;br /&gt;
&amp;nbsp;}
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;さてform.php&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;編集だけでなく削除ボタンもやりたい&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;submitボタンは複数あってもいい&lt;/div&gt;
&lt;div&gt;ただどちらが押されたかは、name属性で判断させる&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041307.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586745041/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041308.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586745075/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;押されたほうだけの値が来ているのが分かる　&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&amp;rarr;1個のフォームから異なる挙動をすることができる&lt;/div&gt;
&lt;div&gt;なんならupdateやなんとかもメソッドで呼び出して使える&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;jsからアクセスできるようにidもつける&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;submit&quot; name=&quot;sub1&quot; id=&quot;sub1&quot; value=&quot;編集&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;submit&quot; name=&quot;sub2&quot; id=&quot;sub2&quot; value=&quot;削除&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/p&amp;gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;プリベントデフォルトをやるので&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&amp;nbsp;//編集ボタン&lt;br /&gt;
&amp;nbsp;$('#sub1').on('click',function(e){&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;});
&lt;div&gt;としておく&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;eが入るよ&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;</description> 
      <link>https://karasumaru.tosalog.com/high/%E9%AB%98%E5%BA%A6-27-%20class-5-</link> 
    </item>
    <item>
      <title>高度(26) class(4)</title>
      <description>&lt;div&gt;さくらサーバを申し込んだら&lt;/div&gt;
&lt;div&gt;レッツエンクリプトをするといい（無料）&lt;/div&gt;
&lt;div&gt;というかやるべきらしい。&lt;/div&gt;
&lt;div&gt;＊2週間のお試し期間が終わったらすぐ申し込む　&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;クリプトの暗号化をつかったSSL　HTTPS&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://www.sakura.ne.jp/function/freessl.html&quot; title=&quot;&quot;&gt;https://www.sakura.ne.jp/function/freessl.html&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://help.sakura.ad.jp/115000136822/&quot; title=&quot;&quot;&gt;https://help.sakura.ad.jp/115000136822/&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://secure.sakura.ad.jp/rscontrol/rs/domain&quot; title=&quot;&quot;&gt;https://secure.sakura.ad.jp/rscontrol/rs/domain&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;CSS Grid Layout&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://qiita.com/kura07/items/e633b35e33e43240d363&quot; title=&quot;&quot;&gt;https://qiita.com/kura07/items/e633b35e33e43240d363&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://www.w3schools.com/css/css_grid.asp&quot; title=&quot;&quot;&gt;https://www.w3schools.com/css/css_grid.asp&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://ferret-plus.com/9420&quot; title=&quot;&quot;&gt;https://ferret-plus.com/9420&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://korywakefield.com/iota/#overview&quot; title=&quot;&quot;&gt;http://korywakefield.com/iota/#overview&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://cssgridgarden.com/#ja&quot; title=&quot;&quot;&gt;https://cssgridgarden.com/#ja&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;先週のlunchのつづき&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041300.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586741180/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041301.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586741194/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
ここまで&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;hr /&gt;&lt;/div&gt;
&lt;strong&gt;form.php&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
//新規でも編集でもこのファイルを使いたい&lt;br /&gt;
&lt;br /&gt;
require_once(&quot;class/lunch.class.php&quot;);&lt;br /&gt;
$obj = new Lunch();&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
if(!empty($_GET[&quot;id&quot;])){&lt;br /&gt;
&amp;nbsp;//編集の場合&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;//getで送られてくるidを事前につかまえる&lt;br /&gt;
&amp;nbsp;$id=intval($_GET[&quot;id&quot;]);&lt;br /&gt;
&amp;nbsp;$title=&quot;編集&quot;;//タイトルも分岐によって変わる&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;$arr = $obj-&amp;gt;getMenuById($id);&lt;br /&gt;
&amp;nbsp;$menu = htmlspecialchars($arr[&quot;menu&quot;],ENT_QUOTES);&lt;br /&gt;
&amp;nbsp;$price = $arr[&quot;price&quot;];&lt;br /&gt;
&amp;nbsp;$c_id = $arr[&quot;c_id&quot;];&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
}else{&lt;br /&gt;
&amp;nbsp;//新規作成の場合&lt;br /&gt;
&amp;nbsp;$title=&quot;新規作成&quot;;&lt;br /&gt;
&amp;nbsp;$menu = &quot;&quot;;&lt;br /&gt;
&amp;nbsp;$price =&quot;&quot;;&lt;br /&gt;
&amp;nbsp;$c_id=&quot;&quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&quot;ja&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;title&amp;gt;メニュー&amp;lt;?php echo $title; ?&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;css/style.css&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;script src=&quot;../jquery-3.4.1.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;div id=&quot;container&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;h1&amp;gt;メニュー&amp;lt;?php echo $title; ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;form action=&quot;exec.php&quot; method=&quot;post&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;&amp;lt;label for=&quot;menu&quot;&amp;gt;メニュー&amp;lt;/label&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; name=&quot;menu&quot; id=&quot;menu&quot; value=&quot;&amp;lt;?php echo $menu; ?&amp;gt;&quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;&amp;lt;label for=&quot;price&quot;&amp;gt;価格&amp;lt;/label&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; name=&quot;price&quot; id=&quot;price&quot; value=&quot;&amp;lt;?php echo $price; ?&amp;gt;&quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;&amp;lt;label for=&quot;c_id&quot;&amp;gt;カテゴリ&amp;lt;/label&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; セレクト予定&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&amp;lt;input type=&quot;submit&quot; value=&quot;編集&quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;lt;script src=&quot;js/lunch.js&quot;&amp;gt;&amp;lt;/script&amp;gt; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;nbsp;&lt;hr /&gt;&lt;strong&gt;style.php&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
body{&lt;br /&gt;
&amp;nbsp;background:#eff;&lt;br /&gt;
}&lt;br /&gt;
#container{&lt;br /&gt;
&amp;nbsp;width:80%;&lt;br /&gt;
&amp;nbsp;margin:auto;&lt;br /&gt;
}&lt;br /&gt;
table{&lt;br /&gt;
&amp;nbsp;border-collapse:collapse;&lt;br /&gt;
}&lt;br /&gt;
th,td{&lt;br /&gt;
&amp;nbsp;padding:0.3rem 0.5rem;&lt;br /&gt;
&amp;nbsp;text-align:left;&lt;br /&gt;
&amp;nbsp;background:#fff;&lt;br /&gt;
&amp;nbsp;border:solid 1px #555;&lt;br /&gt;
}&lt;br /&gt;
th{&lt;br /&gt;
&amp;nbsp;background:#ccc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;この２つは先週から変化なし&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;lunch.class.php&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class Lunch{&lt;br /&gt;
&amp;nbsp;private $pdo;//外から直接アクセスはできないように&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function __construct(){//コンストラクタ。初期化されたときに動く&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; //環境によって変更&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; $host=&quot;localhost&quot;;&lt;br /&gt;
&amp;nbsp; $dbuser=&quot;root&quot;;&lt;br /&gt;
&amp;nbsp; $dbpass=&quot;&quot;;&lt;br /&gt;
&amp;nbsp; $dbname=&quot;lunch&quot;;&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; $dsn = &quot;mysql:host={$host}; dbname={$dbname}; charset=utf8&quot;;&lt;br /&gt;
&amp;nbsp; $this-&amp;gt;pdo=new PDO($dsn,$dbuser,$dbpass); //$pdoとは書かない&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;}//constructの終わり&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function getAllMenu(){//publicでないと外から呼び出せない&lt;br /&gt;
&amp;nbsp; $sql = &quot;SELECT * FROM foods&quot;;&lt;br /&gt;
&amp;nbsp; $rs = $this-&amp;gt;pdo-&amp;gt;query($sql);&lt;br /&gt;
&amp;nbsp; $rows = $rs-&amp;gt;fetchAll(PDO::FETCH_ASSOC);&lt;br /&gt;
&amp;nbsp; return $rows;//戻り値&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function getMenubyId($id=1){//指定したid番号を取得、引き取るid番号が仮引数の$id&lt;br /&gt;
&amp;nbsp; $sql=&quot;SELECT * FROM foods WHERE id=:id&quot;;&lt;br /&gt;
&amp;nbsp; $stmt = $this-&amp;gt;pdo-&amp;gt;prepare($sql);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:id&quot;,$id,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;execute();&lt;br /&gt;
&amp;nbsp; $row = $stmt-&amp;gt;fetch(PDO::FETCH_ASSOC);&lt;br /&gt;
&amp;nbsp; return $row;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function setMenu($menu,$price,$c_id){//idはオートインクリメントなので必要ない&lt;br /&gt;
&amp;nbsp; $sql = &quot;INSERT INTO foods(menu,price,c_id) VALUES (:menu,:price,:c_id)&quot;;//メニューと値段とカテゴリidを追加 &lt;br /&gt;
&amp;nbsp; $stmt = $this-&amp;gt;pdo-&amp;gt;prepare($sql);//クラス内の変数なのでstmtやsqlのスコープはここだけ&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:menu&quot;,$menu,PDO::PARAM_STR);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:price&quot;,$price,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:c_id&quot;,$c_id,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;execute();&lt;br /&gt;
&amp;nbsp; //戻り値は要らない&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function updateMenu($menu,$price,$c_id,$id){//どれがupdateされるか分からないので3つとも仮引数を用意&lt;br /&gt;
&amp;nbsp; //主キーである$idがないと全部書き換わってしまうのでどこのレコードか指定するため今回4つプロパティが要る&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; $sql = &quot;UPDATE foods SET menu=:menu, price=:price, c_id=:c_id WHERE id=:id&quot;;&lt;br /&gt;
&amp;nbsp; $stmt = $this-&amp;gt;pdo-&amp;gt;prepare($sql);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:menu&quot;,$menu,PDO::PARAM_STR);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:price&quot;,$price,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:c_id&quot;,$c_id,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:id&quot;,$id,PDO::PARAM_INT);//idも必要ですよ&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;execute();&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function deleteMenu($id){//パラメータは主キーであるidだけでいい&lt;br /&gt;
&amp;nbsp; $sql = &quot;DELETE FROM foods WHERE id=:id&quot;;&lt;br /&gt;
&amp;nbsp; $stmt = $this-&amp;gt;pdo-&amp;gt;prepare($sql);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:id&quot;,$id,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;execute();&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;hr /&gt;&lt;strong&gt;lunch.php&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
$(function(){&lt;br /&gt;
&amp;nbsp;console.log(&quot;hoge&quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
</description> 
      <link>https://karasumaru.tosalog.com/high/%E9%AB%98%E5%BA%A6-26-%20class-4-</link> 
    </item>
    <item>
      <title>高度(25) class(3)</title>
      <description>&lt;div&gt;idを指定して取り出す&lt;/div&gt;
&lt;div&gt;基本的に「ひとつ取り出す」というのは主キーだし主キーであるべき&lt;/div&gt;
&lt;div&gt;重なってると面倒なことになる&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041012.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586502242/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
ここ全体がpdoなのでさらに-&amp;gt;でプリペアー&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&amp;nbsp;public function getMenubyId($id=1){ //指定したid番号を取得、引き取るid番号が仮引数の$id&lt;br /&gt;
&amp;nbsp; $sql=&quot;SELECT * FROM foods WHERE id=:id&quot;;&lt;br /&gt;
&amp;nbsp; $stmt = $this-&amp;gt;pdo-&amp;gt;prepare($sql);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:id&quot;,$id,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;execute();&lt;br /&gt;
&amp;nbsp; $row = $stmt-&amp;gt;fetch(PDO::FETCH_ASSOC);&lt;br /&gt;
&amp;nbsp; return $row;&lt;br /&gt;
&amp;nbsp;}
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;$row = $obj-&amp;gt;getMenuById(2);&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;中略&lt;/div&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php print_r( $row); ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;

&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;idの2番を呼び出すのだが、&lt;br /&gt;
メソッドの中のパラメータに値を代入（public function getMenubyId(&lt;span style=&quot;color: #ff0000;&quot;&gt;$id=1)&lt;/span&gt;）すると&lt;br /&gt;
「デフォルト値」としてphpでは扱われる&lt;/div&gt;
&lt;div&gt;仮に呼び出し元で何の指定もなければこれ（id=1）が採用されるし、&lt;/div&gt;
&lt;div&gt;なにか指定があればちゃんとid=2をとってくる&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;insert&lt;/div&gt;
&lt;div&gt;update&lt;/div&gt;
&lt;div&gt;deleteも追加&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&amp;nbsp;&amp;lt;?php foreach($arr as $val): ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&amp;lt;a href=&quot;form.php?id=3&quot;&amp;gt;&amp;lt;?php echo $val[&quot;menu&quot;]; ?&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php endforeach; ?&amp;gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;こんな風にしたい&lt;/div&gt;
&lt;div&gt;これだと全部id=3になってしまうので、&lt;br /&gt;
&amp;rarr;&lt;br /&gt;
&amp;lt;a href=&quot;form.php?id=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;lt;?php echo $val[&quot;id&quot;]; ?&amp;gt;&lt;/span&gt;&quot;&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041013.png&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586502276/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;hoverするとここにちゃんとidがきている&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;ここまで&lt;br /&gt;
&lt;hr /&gt;&lt;/div&gt;
&lt;strong&gt;list.php&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
require_once(&quot;class/lunch.class.php&quot;);&lt;br /&gt;
$obj = new Lunch();&lt;br /&gt;
$arr = $obj-&amp;gt;getAllMenu();&lt;br /&gt;
//print_r($arr);&lt;br /&gt;
&lt;br /&gt;
//$row = $obj-&amp;gt;getMenuById(2);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&quot;ja&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;title&amp;gt;メニューリスト&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;css/style.css&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;script src=&quot;../jquery-3.4.1.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;div id=&quot;container&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;h1&amp;gt;メニューリスト&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;ul id=&quot;m_list&quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--方法１一番外側の階層（[0～20]）をぐるぐる回すよ、その中身をvalとするよ--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php foreach($arr as $val): ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;a href=&quot;form.php?id=&amp;lt;?php echo $val[&quot;id&quot;]; ?&amp;gt;&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php echo $val[&quot;menu&quot;]; ?&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--方法2 count関数を使う&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php for($i=0; $i&amp;lt;count($arr); $i++): ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&amp;lt;?php echo($arr[$i][&quot;menu&quot;]); ?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php endfor ?&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php print_r( $row[&quot;menu&quot;]); ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; --&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;lt;script src=&quot;js/lunch.js&quot;&amp;gt;&amp;lt;/script&amp;gt; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;strong&gt;lunch.class.php&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class Lunch{&lt;br /&gt;
&amp;nbsp;private $pdo;//外から直接アクセスはできないように&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function __construct(){//コンストラクタ。初期化されたときに動く&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; //環境によって変更&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; $host=&quot;localhost&quot;;&lt;br /&gt;
&amp;nbsp; $dbuser=&quot;root&quot;;&lt;br /&gt;
&amp;nbsp; $dbpass=&quot;&quot;;&lt;br /&gt;
&amp;nbsp; $dbname=&quot;lunch&quot;;&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; $dsn = &quot;mysql:host={$host}; dbname={$dbname}; charset=utf8&quot;;&lt;br /&gt;
&amp;nbsp; $this-&amp;gt;pdo=new PDO($dsn,$dbuser,$dbpass); //$pdoとは書かない&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;}//constructの終わり&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function getAllMenu(){//publicでないと外から呼び出せない&lt;br /&gt;
&amp;nbsp; $sql = &quot;SELECT * FROM foods&quot;;&lt;br /&gt;
&amp;nbsp; $rs = $this-&amp;gt;pdo-&amp;gt;query($sql);&lt;br /&gt;
&amp;nbsp; $rows = $rs-&amp;gt;fetchAll(PDO::FETCH_ASSOC);&lt;br /&gt;
&amp;nbsp; return $rows;//戻り値&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function getMenubyId($id=1){//指定したid番号を取得、引き取るid番号が仮引数の$id&lt;br /&gt;
&amp;nbsp; $sql=&quot;SELECT * FROM foods WHERE id=:id&quot;;&lt;br /&gt;
&amp;nbsp; $stmt = $this-&amp;gt;pdo-&amp;gt;prepare($sql);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:id&quot;,$id,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;execute();&lt;br /&gt;
&amp;nbsp; $row = $stmt-&amp;gt;fetch(PDO::FETCH_ASSOC);&lt;br /&gt;
&amp;nbsp; return $row;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function setMenu($menu,$price,$c_id){//idはオートインクリメントなので必要ない&lt;br /&gt;
&amp;nbsp; $sql = &quot;INSERT INTO foods(menu,price,c_id) VALUES (:menu,:price,:c_id)&quot;;//メニューと値段とカテゴリidを追加 &lt;br /&gt;
&amp;nbsp; $stmt = $this-&amp;gt;pdo-&amp;gt;prepare($sql);//クラス内の変数なのでstmtやsqlのスコープはここだけ&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:menu&quot;,$menu,PDO::PARAM_STR);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:price&quot;,$price,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:c_id&quot;,$c_id,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;execute();&lt;br /&gt;
&amp;nbsp; //戻り値は要らない&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function updateMenu($menu,$price,$c_id,$id){//どれがupdateされるか分からないので3つとも仮引数を用意&lt;br /&gt;
&amp;nbsp; //主キーである$idがないと全部書き換わってしまうのでどこのレコードか指定するため今回4つプロパティが要る&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; $sql = &quot;UPDATE foods SET menu=:menu, price=:price, c_id=:c_id WHERE id=:id&quot;;&lt;br /&gt;
&amp;nbsp; $stmt = $this-&amp;gt;pdo-&amp;gt;prepare($sql);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:menu&quot;,$menu,PDO::PARAM_STR);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:price&quot;,$price,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:c_id&quot;,$c_id,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:id&quot;,$id,PDO::PARAM_INT);//idも必要ですよ&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;execute();&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function deleteMenu($id){//パラメータは主キーであるidだけでいい&lt;br /&gt;
&amp;nbsp; $sql = &quot;DELETE FROM foods WHERE id=:id&quot;;&lt;br /&gt;
&amp;nbsp; $stmt = $this-&amp;gt;pdo-&amp;gt;prepare($sql);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;bindvalue(&quot;:id&quot;,$id,PDO::PARAM_INT);&lt;br /&gt;
&amp;nbsp; $stmt-&amp;gt;execute();&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
</description> 
      <link>https://karasumaru.tosalog.com/high/%E9%AB%98%E5%BA%A6-25-%20class-3-</link> 
    </item>
    <item>
      <title>高度(24) class(2)</title>
      <description>&lt;div&gt;この間の続き&lt;/div&gt;
&lt;div&gt;lunch&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;private&lt;/span&gt;としてしまうと同じクラス(class Lunch{})&lt;span style=&quot;color: #ff0000;&quot;&gt;内&lt;/span&gt;からしか呼び出せない&lt;/div&gt;
&lt;div&gt;コンストラクタもpublic&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;いま全体が&lt;/div&gt;
&lt;div&gt;class Lunch{}であり、&lt;/div&gt;
&lt;div&gt;そのなかに&lt;/div&gt;
&lt;div&gt;public function __construct(){}や&lt;/div&gt;
&lt;div&gt;public function getAllMenu(){}がある&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;内部とは&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;class Lunch{}のこと&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041010.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586499058/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
エラーが出ましたがここ&lt;/div&gt;
&lt;div&gt;$rows = &lt;span style=&quot;color: #ff0000;&quot;&gt;$rs-&amp;gt;&lt;/span&gt;fetchAll(PDO::FETCH_ASSOC);&lt;/div&gt;
&lt;div&gt;$rs-&amp;gt;が抜けているとフェイタルが出た　&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;じゃメニューの名前だけを出力する&lt;/div&gt;
&lt;div&gt;連想配列に入っているはず&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020041011.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586499078/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; 　&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;なぜかfor文をかきつつif-endifをしていたりした　&lt;/div&gt;
&lt;div&gt;$iを回す回数は&lt;/div&gt;
&lt;div&gt;$i&amp;lt;count($arr)&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;strong&gt;list.php&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
require_once(&quot;class/lunch.class.php&quot;);&lt;br /&gt;
$obj = new Lunch();&lt;br /&gt;
$arr = $obj-&amp;gt;getAllMenu();&lt;br /&gt;
//print_r($arr);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&quot;ja&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;title&amp;gt;ニューリスト&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;css/style.css&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;script src=&quot;../jquery-3.4.1.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;div id=&quot;container&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;h1&amp;gt;new list&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;ul id=&quot;m_list&quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--方法１一番外側の階層（[0～20]）をぐるぐる回すよ、その中身をvalとするよ--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php foreach($arr as $val): ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&amp;lt;?php echo $val[&quot;menu&quot;]; ?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--方法2 count関数を使うよ&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php for($i=0; $i&amp;lt;count($arr); $i++): ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&amp;lt;?php echo($arr[$i][&quot;menu&quot;]); ?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php endfor ?&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;lt;script src=&quot;js/lunch.js&quot;&amp;gt;&amp;lt;/script&amp;gt; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;hr /&gt;&lt;strong&gt;lunch.class.php&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class Lunch{&lt;br /&gt;
&amp;nbsp;private $pdo;//外から直接アクセスはできないように&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function __construct(){//コンストラクタ。初期化されたときに動く&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; //環境によって変更&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; $host=&quot;localhost&quot;;&lt;br /&gt;
&amp;nbsp; $dbuser=&quot;root&quot;;&lt;br /&gt;
&amp;nbsp; $dbpass=&quot;&quot;;&lt;br /&gt;
&amp;nbsp; $dbname=&quot;lunch&quot;;&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; $dsn = &quot;mysql:host={$host}; dbname={$dbname}; charset=utf8&quot;;&lt;br /&gt;
&amp;nbsp; $this-&amp;gt;pdo=new PDO($dsn,$dbuser,$dbpass); //$pdoとは書かない&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;}//constructの終わり&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function getAllMenu(){//publicでないと外から呼び出せない&lt;br /&gt;
&amp;nbsp; $sql = &quot;SELECT * FROM foods&quot;;&lt;br /&gt;
&amp;nbsp; $rs = $this-&amp;gt;pdo-&amp;gt;query($sql);&lt;br /&gt;
&amp;nbsp; $rows = $rs-&amp;gt;fetchAll(PDO::FETCH_ASSOC);&lt;br /&gt;
&amp;nbsp; return $rows;//戻り値&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;メソッドはあまり複雑にせず&lt;/div&gt;
&lt;div&gt;１つのことだけをやらせる&lt;/div&gt;
&lt;div&gt;値を取るだけとかにするといい&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;</description> 
      <link>https://karasumaru.tosalog.com/high/%E9%AB%98%E5%BA%A6-24-%20class-2-</link> 
    </item>
    <item>
      <title>高度(23) class(1)</title>
      <description>&lt;div&gt;フォルダ階層はこう&lt;br /&gt;
&lt;br /&gt;
lunch&lt;/div&gt;
&lt;div&gt;-css&lt;/div&gt;
&lt;div&gt;-js&lt;/div&gt;
&lt;div&gt;-class&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;lunch.class.phpを作る&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040806.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586329376/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;classの「がわ」はこれ&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;private $pdo;//外から直接アクセスはできないように&lt;/div&gt;
&lt;div&gt;これをpublicにすると外からアクセスできてしまう　&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;最初はコンストラクタ&lt;/div&gt;
&amp;nbsp;public function __construct(){//コンストラクタ。初期化されたときに動く&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;}
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;コメントの時&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;// -----------------&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;と、//の次に半角開けると一番間違いがない&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;?php&lt;/div&gt;
&lt;div&gt;$obj=new Lunch();&lt;/div&gt;
&lt;div&gt;?&amp;gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;エラーが起きた&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #999999;&quot;&gt;Fatal error: Uncaught Error: Class 'Lunch' not found in C:\xampp\htdocs\php\makino\lunch\list.php:2 Stack trace: #0 {main} thrown in C:\xampp\htdocs\php\makino\lunch\list.php on line 2&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;クラスlunchが見つからない&lt;/div&gt;
&lt;div&gt;&amp;rarr;クラスを読み込んでないから当然&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;これならよい&lt;/div&gt;
&lt;div&gt;&amp;lt;?php&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;require_once(&quot;class/lunch.class.php&quot;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;$obj=new Lunch();&lt;/div&gt;
&lt;div&gt;?&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;さらにこれ&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #999999;&quot;&gt;Parse error: syntax error, unexpected 'function__construct' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST) in C:\xampp\htdocs\php\makino\lunch\class\lunch.class.php on line 5&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;public function __construct(){//コンストラクタ。初期化されたときに動く&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;functionのあとには半角スペースが要る&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040807.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586329453/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;ふつう戻り値は複数戻せない&lt;/div&gt;
&lt;div&gt;配列ならOK&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;つづきは金曜のテストの後で&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;ここまで&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;list.php&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;lt;?php&lt;br /&gt;
require_once(&quot;class/lunch.class.php&quot;);&lt;br /&gt;
$obj=new Lunch();&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&quot;ja&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;title&amp;gt;ニューリスト&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;css/style.css&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;script src=&quot;../jquery-3.4.1.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;div id=&quot;container&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;h1&amp;gt;new list&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;ul id=&quot;m_list&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;lt;script src=&quot;js/lunch.js&quot;&amp;gt;&amp;lt;/script&amp;gt; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;hr /&gt;&lt;strong&gt;style.css&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
body{&lt;br /&gt;
&amp;nbsp;background:#fff;&lt;br /&gt;
}&lt;br /&gt;
#container{&lt;br /&gt;
&amp;nbsp;width:80%;&lt;br /&gt;
&amp;nbsp;margin:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;strong&gt;lunch.js&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
$(function(){&lt;br /&gt;
&amp;nbsp;console.log(&quot;hoge&quot;);&lt;br /&gt;
});&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;hr /&gt;&lt;strong&gt;lunch.class.js&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class Lunch{&lt;br /&gt;
&amp;nbsp;private $pdo;//外から直接アクセスはできないように&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function __construct(){//コンストラクタ。初期化されたときに動く&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; //環境によって変更&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; $host=&quot;localhost&quot;;&lt;br /&gt;
&amp;nbsp; $dbuser=&quot;root&quot;;&lt;br /&gt;
&amp;nbsp; $dbpass=&quot;&quot;;&lt;br /&gt;
&amp;nbsp; $dbname=&quot;lunch&quot;;&lt;br /&gt;
&amp;nbsp; // -----------------&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; $dsn = &quot;mysql:host={$host}; dbname={$dbname}; charset=utf8&quot;;&lt;br /&gt;
&amp;nbsp; $this-&amp;gt;pdo=new PDO($dsn,$dbuser,$dbpass); //$pdoとは書かない&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;}//constructの終わり&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;public function getAllMenu{&lt;br /&gt;
&amp;nbsp; $sql = &quot;SELECT * FROM foods&quot;;&lt;br /&gt;
&amp;nbsp; $rs = $this-&amp;gt;pdo-&amp;gt;query($sql);&lt;br /&gt;
&amp;nbsp; $rows = fetchAll(PDO::FETCH_ASSOC);&lt;br /&gt;
&amp;nbsp; return $rows;//戻り値&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040808.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586329475/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;</description> 
      <link>https://karasumaru.tosalog.com/high/%E9%AB%98%E5%BA%A6-23-%20class-1-</link> 
    </item>
    <item>
      <title>高度(22) 和演算</title>
      <description>&lt;div&gt;&lt;strong&gt;UNION ALLについて&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;lunch db&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;sales table/column2&lt;/div&gt;
&lt;div&gt;s_id int(primary,A.I.)&lt;/div&gt;
&lt;div&gt;f_id int&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;sales2/column2&lt;/div&gt;
&lt;div&gt;s_id int(primary,A.I.)&lt;/div&gt;
&lt;div&gt;f_id int&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;売れたものを記録したい&lt;/div&gt;
&lt;div&gt;2つのよく似たテーブルにf_idに違う値を入れておく&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040607.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586156461/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040608.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586156474/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;支社ごとに違うテーブルで何が売れたかあがってくるとする&lt;br /&gt;
（支社1：sales /　支社2：sales2)&lt;/div&gt;
&lt;div&gt;これをマージしたい&lt;/div&gt;
&lt;div&gt;和演算をしたい&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;SELECT * FROM sales&lt;/div&gt;
&lt;div&gt;UNION ALL&lt;/div&gt;
&lt;div&gt;SELECT * FROM sales2&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040609.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586156491/&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&amp;nbsp;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;統合後の結果が出た&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040610.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586156503/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;前提条件として、セレクトするカラム数とカラム名が一緒でないといけない&lt;/div&gt;
&lt;div&gt;もし違ったらAS句で修正してやる&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;しかしこれでは「どの支社の売り上げか」わからない&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;3つめのカラムをでっちあげ、&lt;/div&gt;
&lt;div&gt;店舗名のカラムを無理やり入れる&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;SELECT s_id, f_id,&quot;支店A&quot; FROM sales&amp;nbsp;&lt;/div&gt;
&lt;div&gt;UNION ALL&amp;nbsp;&lt;/div&gt;
&lt;div&gt;SELECT s_id, f_id ,&quot;支店B&quot; FROM sales2&lt;/div&gt;
&lt;div&gt;　　&lt;/div&gt;
&lt;div&gt;でた　&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040611.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1586156525/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;こういう風に存在しないカラムを出力することもできるらしい&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;SELECT s_id, f_id,&quot;支店A&quot; FROM sales&amp;nbsp;&lt;/div&gt;
&lt;div&gt;UNION ALL&amp;nbsp;&lt;/div&gt;
&lt;div&gt;SELECT s_id, f_id ,&quot;支店B&quot; FROM sales2&lt;/div&gt;
&lt;div&gt;UNION ALL&amp;nbsp;&lt;/div&gt;
&lt;div&gt;SELECT s_id, f_id ,&quot;支店B&quot; FROM sales3&lt;/div&gt;
&lt;div&gt;UNION ALL&amp;nbsp;&lt;/div&gt;
&lt;div&gt;SELECT s_id, f_id ,&quot;支店B&quot; FROM sales4&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;とかでいくつでもできるらしい&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;UNION ALLはこうやって全件出てくるが、&lt;/div&gt;
&lt;div&gt;UNIONにしてしまうと、完全にかぶったデータは重複データとしてなくなってしまう&lt;/div&gt;
&lt;div&gt;売上をみるにはALLがいる&lt;/div&gt;
&lt;div&gt;しかもUNION　ALLの方が時間が速い&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;これが集合演算の和演算&lt;/div&gt;
&lt;div&gt;AにあってBにないという差演算もできるらしい&lt;/div&gt;
&lt;div&gt;ただこっちはちょっとむつかしいらしい&lt;/div&gt;
&lt;div&gt;サーバの種類によって方言があるらしい　&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;なおMySQLより実際まりあDBで直書きしたほうがめっちゃ速いらしい&lt;/div&gt;
&lt;div&gt;数時間かかるものが分単位で済むとか&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;</description> 
      <link>https://karasumaru.tosalog.com/high/%E9%AB%98%E5%BA%A6-22-%20%E5%92%8C%E6%BC%94%E7%AE%97</link> 
    </item>
    <item>
      <title>高度(21) 正規表現のみを抽出</title>
      <description>&lt;div&gt;うにゃうにゃした内容物から「正規表現」のものを探し当てたい&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&amp;lt;?php&lt;br /&gt;
for($i=0; $i&amp;lt;300; $i++) {&lt;br /&gt;
&amp;nbsp;$y = rand(1970, 2020);&lt;br /&gt;
&amp;nbsp;$m = rand(1, 12);&lt;br /&gt;
&amp;nbsp;if($m == 2) {&lt;br /&gt;
&amp;nbsp; $d = rand(1, 28);&lt;br /&gt;
&amp;nbsp;} elseif($m == 4 || $m == 6 || $m == 9 || $m == 11) {&lt;br /&gt;
&amp;nbsp; $d = rand(1, 30);&lt;br /&gt;
&amp;nbsp;} else {&lt;br /&gt;
&amp;nbsp; $d = rand(1, 31);&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;if($i % 11 == 0) {&lt;br /&gt;
&amp;nbsp; echo &quot;&amp;lt;div&amp;gt;{$y}_{$m}_{$d}&amp;lt;/div&amp;gt;\n&quot;;&lt;br /&gt;
&amp;nbsp;} elseif($i % 17 == 0) {&lt;br /&gt;
&amp;nbsp; echo &quot;&amp;lt;div&amp;gt;{$y}-{$m}{$d}&amp;lt;/div&amp;gt;\n&quot;;&lt;br /&gt;
&amp;nbsp;} else {&lt;br /&gt;
&amp;nbsp; echo &quot;&amp;lt;div&amp;gt;{$y}-{$m}-{$d}&amp;lt;/div&amp;gt;\n&quot;;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;このプログラムで出力されたものをサクラエディタに貼り付ける&lt;/div&gt;
&lt;div&gt;正しいものもあかんやつも混じってる300個の日付&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;正規表現を検索するのはサクラエディタの普通の検索にある　&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040101.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1585726283/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;strong&gt;メタ文字&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
ある種の文字を指定するための特殊な文字のこと&lt;/div&gt;
&lt;div&gt;アルファベットを指定したかったら&lt;span style=&quot;color: #ff0000;&quot;&gt;\w&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;数字は&lt;span style=&quot;color: #ff0000;&quot;&gt;\d&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;￥は環境によってバックスラッシュで出ることもあるが意味は同じ&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;さて、年について。数字が4つ続くという正規表現&lt;/div&gt;
&lt;div&gt;&amp;rarr;\d\d\d\d&lt;/div&gt;
&lt;div&gt;しかし美しくない&lt;/div&gt;
&lt;div&gt;\d{4}&lt;/div&gt;
&lt;div&gt;これでよい&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;月は1桁か2文字かわからない&lt;/div&gt;
&lt;div&gt;揺れがあるときはカンマを使う&lt;/div&gt;
&lt;div&gt;\d{1,2}&lt;/div&gt;
&lt;div&gt;1つか2つ&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;日も1から31まであって一桁化二けたかわからない&lt;/div&gt;
&lt;div&gt;&amp;rarr;&lt;/div&gt;
&lt;div&gt;\d{1,2}&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;\d{4}-\d{1,2}-\d{1,2}&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;しかしこれだと、&lt;br /&gt;
「この前にほげほげ」「この後にほげほげ」が付いていてもヒットしてしまうので、&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;＾&lt;/div&gt;
&lt;div&gt;これが最初の印（ひらがなのへのところにある）&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;$&lt;/div&gt;
&lt;div&gt;これがラストの印&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;^\d{4}-\d{1,2}-\d{1,2}$&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040102.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1585726307/&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&amp;nbsp;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040103.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1585726322/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;じゃあ正しいやつを「年月日」に変えたい&lt;/div&gt;
&lt;div&gt;置換する&lt;/div&gt;
&lt;div&gt;置換前　^\d{4}-\d{1,2}-\d{1,2}$&lt;/div&gt;
&lt;div&gt;&amp;rarr;ここはそのままにしてほしい、というところを丸括弧で囲う&lt;/div&gt;
&lt;div&gt;&amp;rarr;&lt;/div&gt;
&lt;div&gt;^(\d{4})-(\d{1,2})-(\d{1,2})$&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;この丸括弧は配列っぽく記憶されるらしい&lt;/div&gt;
&lt;div&gt;1つめの記憶、2つ目の記憶、3つ目の記憶みたいになるらしい&lt;/div&gt;
&lt;div&gt;丸括弧の1つめが　\1　となる&lt;/div&gt;
&lt;div&gt;よって置換後は&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;\1年\2月\3日&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040104.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1585726344/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;文字を表すメタ文字はドットもしくはプラス&lt;/div&gt;
&lt;div&gt;数字でも文字でもなんでもいいよというメタ&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;. あるかもしれないし、ないかも&lt;/div&gt;
&lt;div&gt;+ 最低1文字はある&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;という違いがある&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;メタ文字を詳しくなりたかったらそういう本を読むこと&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;さてサクラエディタのやり方はこのとおり&lt;/div&gt;
&lt;div&gt;ではプログラムでどう利用するか&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;ハイフン付きで郵便番号の正規表現なら？&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;^(\d{3})-(\d{4})$&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;スクリプトで検証してみましょう&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;値を取得するのはvalメソッド&lt;/div&gt;
&lt;div&gt;ここが空っぽの場合は別処理が必要だが今回は割愛&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;var zip = $('#zipcode').val();&lt;/div&gt;
&lt;div&gt;　　&lt;/div&gt;
&lt;div&gt;matchというのがパターンマッチングをするメソッド&lt;/div&gt;
&lt;div&gt;結果は配列データとして受け取れる&lt;/div&gt;
&lt;div&gt;よって&lt;/div&gt;
&lt;div&gt;var arr = zip.match();//この配列が空ならマッチしてない&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;メタ文字は特別な予約語になっているので&lt;br /&gt;
はじまりとおわりをスラッシュにする決まり&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;var arr = zip.match(/^(\d{3})-(\d{4})$/);&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;「スラッシュで囲ったものは正規表現のメタ文字だ」と解釈される&lt;/div&gt;
&lt;div&gt;正規表現にあってないとnullが返る&lt;/div&gt;
&lt;div&gt;　&lt;br /&gt;
&lt;hr /&gt;&lt;/div&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&quot;ja&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;title&amp;gt;submitを止める&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;script src=&quot;../jquery-3.4.1.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;form action=&quot;stop_submit2.php&quot; method=&quot;post&quot; id=&quot;f1&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;郵便番号をハイフン付きで入力してください&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;text&quot; name=&quot;zipcode&quot; id=&quot;zipcode&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;button type=&quot;submit&quot;&amp;gt;送信&amp;lt;/button&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;p id=&quot;msg&quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;lt;script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $(function(){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(&quot;hoge&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $('#f1').on('submit',function(event_hoge){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var flag = confirm('送信しますか？');//okかcancel押すかでflagにtrueかfalseが入る&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!flag){//偽の時は&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event_hoge.preventDefault();//発生したイベントが無になる&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //バリデーション&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var zip = $('#zipcode').val();//取得&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var arr = zip.match(/^(\d{3})-(\d{4})$/);//この配列が空ならマッチしてない&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(arr);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event_hoge.preventDefault();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; });&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;lt;/script&amp;gt; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040105.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1585726367/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040106.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1585726379/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;じゃあif文でnullかどうか見ればいい&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;nullならとめて警告を出し、&lt;/div&gt;
&lt;div&gt;マッチしたら次のページに行く&lt;/div&gt;
&lt;div&gt;　&lt;hr /&gt;&lt;/div&gt;
&lt;strong&gt;stop_submit1.php&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&quot;ja&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;title&amp;gt;submitを止める&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;script src=&quot;../jquery-3.4.1.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;form action=&quot;stop_submit2.php&quot; method=&quot;post&quot; id=&quot;f1&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;郵便番号をハイフン付きで入力してください&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;text&quot; name=&quot;zipcode&quot; id=&quot;zipcode&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;button type=&quot;submit&quot;&amp;gt;送信&amp;lt;/button&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;p id=&quot;msg&quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;lt;script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $(function(){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(&quot;hoge&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $('#f1').on('submit',function(event_hoge){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var flag = confirm('送信しますか？');//okかcancel押すかでflagにtrueかfalseが入る&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!flag){//偽の時は&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event_hoge.preventDefault();//発生したイベントが無になる&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //バリデーション&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var zip = $('#zipcode').val();//取得&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var arr = zip.match(/^(\d{3})-(\d{4})$/);//この配列が空ならマッチしてない&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //console.log(arr);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(arr==null){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event_hoge.preventDefault();//submitを無効化してとめる&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $('#msg').text(&quot;半角英数で7桁の郵便番号をハイフン付きで！&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; });&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;lt;/script&amp;gt; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040107.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1585726394/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;phpでも同じことが出来る&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;php manual&lt;/div&gt;
&lt;div&gt;preg_match&lt;/div&gt;
&lt;div&gt;https://www.php.net/manual/ja/function.preg-match.php&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;jsは引数1つでよかったが&lt;/div&gt;
&lt;div&gt;phpは最低限2ついる&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040108.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1585726420/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;perlのぺくるというのを引き継いでいるらしい&lt;/div&gt;
&lt;div&gt;0か1かで返る&lt;/div&gt;
&lt;div&gt;matchしたら1&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;preg_replaceは置換を行う&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://www.php.net/manual/ja/function.preg-replace.php&quot; title=&quot;&quot;&gt;https://www.php.net/manual/ja/function.preg-replace.php&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;ではphpでもやろう&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&amp;lt;?php&lt;/div&gt;
&lt;div&gt;$code=&quot;123-4567&quot;;//これが正しいかを検査する&lt;/div&gt;
&lt;div&gt;$flag=&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;これをflagで受け取る&lt;/div&gt;
&lt;div&gt;jsとは違って文字列として渡す&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;//karasumaru.ko-me.com/File/2020040109.PNG&quot; title=&quot;&quot;&gt;&lt;img src=&quot;//karasumaru.ko-me.com/Img/1585718340/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&amp;lt;?php&lt;/div&gt;
&lt;div&gt;$code=&quot;123-45678&quot;;//これが正しいかを検査する&lt;/div&gt;
&lt;div&gt;$flag= preg_match(&quot;/^\d{3}-\d{4}$/&quot;,$code);&lt;/div&gt;
&lt;div&gt;if($flag){&lt;/div&gt;
&lt;div&gt;echo (&quot;matchしました&quot;);&lt;/div&gt;
&lt;div&gt;}else{&lt;/div&gt;
&lt;div&gt;echo (&quot;not match&quot;);&lt;/div&gt;
&lt;div&gt;}&lt;/div&gt;
&lt;div&gt;?&amp;gt;&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;もし$codeが正しければmatchにいくし&lt;/div&gt;
&lt;div&gt;だめならnot matchにいく&lt;/div&gt;</description> 
      <link>https://karasumaru.tosalog.com/high/%E9%AB%98%E5%BA%A6-21-%20%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E3%81%AE%E3%81%BF%E3%82%92%E6%8A%BD%E5%87%BA</link> 
    </item>
    <item>
      <title>高度(20) submit(送信)を止める</title>
      <description>&lt;div&gt;submitを止めるやり方&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;formのイベントとして設定する。&lt;/div&gt;
&lt;div&gt;エンターキーを押されると先に進んじゃうので。&lt;/div&gt;
&lt;div&gt;idをつける&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&amp;nbsp; &amp;lt;form action=&quot;text2.php&quot; method=&quot;post&quot; id=&quot;f1&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;lt;/form&amp;gt;
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;今回は沢山じゃないのでjsを内部に書く&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;$('#f1').on('submit',function(){&lt;/div&gt;
&lt;div&gt;　　　　&lt;/div&gt;
&lt;div&gt;});&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;submitイベントは「エンターで来てもクリック出来ても&lt;br /&gt;
とにかくサブミット状態になったら」ということで、on clickと違う&lt;/div&gt;
&lt;div&gt;　&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(&quot;hoge&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $('#f1').on('submit',function(){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var flag = confirm('送信しますか？');//okかcancelかでflagにtrueかfalseが入る&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(flag == false) return false;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&lt;div&gt;　&lt;/div&gt;
&lt;div&gt;しかしこれを押すと次のページに行ったりする&lt;br /&gt;
止まったりもするが、とにかくこの書き方はよくない書き方&lt;/div&gt;
&lt;div&gt;イベント自体をキャンセルしたい&lt;/div&gt;
&lt;div&gt;&amp;rarr;&lt;br /&gt;
p&lt;/div&gt;
&amp;nbsp;&amp;nbsp; $(function(){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(&quot;hoge&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $('#f1').on('submit',function(event_hoge){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var flag = confirm('送信しますか？');//okかcancel押すかでflagにtrueかfalseが入る&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!flag){//偽の時は&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event_hoge.preventDefault();//発生したイベントが無になる&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; });&lt;br /&gt;
&amp;nbsp;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;Javascriptでバリデーションをかける&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;</description> 
      <link>https://karasumaru.tosalog.com/high/%E9%AB%98%E5%BA%A6-20-%20submit-%E9%80%81%E4%BF%A1-%E3%82%92%E6%AD%A2%E3%82%81%E3%82%8B</link> 
    </item>

  </channel>
</rss>