データの更新

データベースに登録されているデータを更新する

SQL文にて更新する

現在、データベース「shop」でのテーブル「product」には以下のようなデータが入っています。この中の「卵」の値段をSQL文にて更新したいと思います。

左側の「shop」を選択し、SQLタブを開きます。「UPDATE」をクリックするとひな形が表示されます。

そして下記のように修正し、下にスクロールしたところにある「実行」をクリックします。

UPDATE product SET price=300 WHERE id=1更新する行を指定するには、WHERE句を使います。idが1の行だけ更新する場合はid=1と記述します。

表示タブをクリックして確認すると、値段が変更になっています。

編集から更新する

編集からも簡単に更新できます。

「編集」をクリックすると下記のような画面になり、各種変更できます。ここでは価格を300円から400円にしてみます。

400に変更できました

入力画面を作成し、商品データを更新する

user-input.php

<?php require ‘header.php’; ?>

<div class=”th0″>商品番号</div>
<div class=”th1″>商品名</div>
<div class=”th1″>価格</div>

<?php
$pdo = new PDO(‘mysql:host=localhost;dbname=shop;
charset=utf8′
,’staff’,’password’);
foreach ($pdo->query(‘select * from product’) as $row){
    echo ‘<form action=”user-output.php” method=”post”>’;
    echo ‘<input type=”hidden” name=”id” value=”‘, $row[‘id’], ‘”>’;
    echo ‘<div class=”td0″>’, $row[‘id’], ‘</div>’;
    echo ‘<div class=”td1″>’;
    echo ‘<input type=”text” name=”name” value=”‘, $row[‘name’], ‘”>’;
    echo ‘</div>’;
    echo ‘<div class=”td1″>’;
    echo ‘<input type=”text” name=”price” value=”‘, $row[‘price’], ‘”>’;
    echo ‘</div>’;
    echo ‘<div class=”td2″><input type=”submit” value=”更新”></div>’;
    echo ‘</form>’;
}
?>
<?php require ‘footer.php’; ?>
type属性をhiddenにする。これはフォームに商品番号を含めるのは、商品を更新する際に、商品番号の情報があるからです。
しかし、ユーザーに商品番号を変更することは許可したくありません。そこで、hiddenにすることによって、フォームに商品番号を含めつつも編集できないようにしています。

style.css

@charset “UTF-8”;
.ib {
    display:inline-block;
}
.th0, .th1, .th2, .td0, .td1, .td2 {
    display:inline-block;
    padding-bottom:5px;
}
.th0, .th1, .th2 {
    text-align:center;
    font-weight:bold;
}
.th0, .td0 {
    width:5em;
}
.th1, .td1 {
    width:11em;
}

user-output.php

<?php require ‘header.php’; ?>

<?php
$pdo = new PDO(‘mysql:host=localhost;dbname=shop;
charset=utf8′,’staff’,’password’);
$sql = $pdo->prepare(‘update product set name=?, price=? where id=?’);
if (empty($_REQUEST[‘name’])){
    echo ‘商品名を入力してください’;
} else
if (!preg_match(‘/^[0-9]+$/’, $_REQUEST[‘price’])){
echo ‘価格は整数で入力願います。’;
} else
if($sql->execute([htmlspecialchars($_REQUEST[‘name’]),
$_REQUEST[‘price’],$_REQUEST[‘id’]]
)){
 echo ‘追加できました’;
}else {
echo ‘追加できませんでした’;
}
?>
<?php require ‘footer.php’; ?>

update文を実行するには、prepareメソッドを用います。値を設定したい部分は「?」にしておきます
*要注意
[0-9]+$にてプラスの前に空白は作らないこと。

試しに商品名を入れずに更新して、エラーが出るか確認してみましょう。

しっかりSQL文の通り表示されました。

次に価格を整数でない入力で更新してみましょう。

こちらもプログラム通り表示されました。

では、しっかり更新できるか確認してみましょう。牛乳を170円→200円にしてみます。

変更できていることが確認できました。

PHPについて

この本から引用、参考にして学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが3,000円弱ならコスパよく、買っておいてよかったと満足してます。


短期間でのレベルアップにはプロから学ぶのもありです。

キャリアアップに必要なスキルを取得しよう。

オンラインで受講ができるスクールですので、全国どこからでも。

就職・転職支援