ketyiaの作ってみた

このサイトでは作ってみたことを記事にまとめていきます!

PHPでCSVを使って商品管理システムを作成しよう④

こんにちは!keitaです♪
CSVでデモの商品管理アプリを作成してみようということで、続きを行っていきます!

この記事では、CSVのデータ情報を削除する機能についてまとめていきます。

前回の続きからはじめていきます!

テンプレートエンジンに編集ボタンを追加

各データのアクション列に、削除ボタンを追加していきます!
編集ボタンの隣に配置しておきましょう!
前回書いたテンプレートエンジンのtable内を下記コードに置きかえします!

ーーーーーーーーーーーーーーーーー
【index.html.twig】

 <table border="1">
           <tr>
             <th>商品ID</th>
             <th>商品名</th>
             <th>金額</th>
             <th>在庫数</th>
             <th>アクション</th>
           </tr>

           {% for data in csvArray %}
           <tr>
              <td>{{ data.商品ID }}</td>
              <td>{{ data.商品名 }}</td>
              <td>{{ data.金額 }}</td>
              <td>{{ data.在庫 }}</td>
              <td>
              <input type="button" onclick="location.href='edit.php?id={{ data.商品ID }}'"value="編集">
             <input type="button" onclick="location.href='delete.php?id={{ data.商品ID }}'"value="削除">
           </tr>
           {% endfor %}
</table>

ーーーーーーーーーーーーーーーーー

はい!これでOKです。
商品管理画面に削除ボタンが表示されたはずです。

見てみましょう!

出来てます!
では、削除の機能を作ってきましょう!

削除機能を作成

ラストの削除を作っていきます。
これは、CSVから対象のデータ行を消すという処理になります!

では、PHP処理を書いていきます。
まずはCSVの処理クラスに削除メソッドを書いていきます!
ーーーーーーーーーーーーーーーーー
【class/csv.php

public function delete($del_id){

$file = file($this->file);
unset($file[$del_id]);

file_put_contents($this->file,$file);
}

ーーーーーーーーーーーーーーーーー

こんな感じです。
では、呼び出す側の処理も書いていきましょう!
ーーーーーーーーーーーーーーーーー
【delete.php
<?php
session_start();

$id =$_GET['id'];
unset($_GET['id']);

// CSVを取得
// ファイルを読み込む
require_once('class/csv.php');
// インスタンス
$csvread_obj = new csv("csv/item.csv","r");
//配列調整
$del_id = $id - 1;
$csvread_obj -> delete($del_id);

header('Location:index.php');
exit;

?>

ーーーーーーーーーーーーーーーーー

はい!これで完了です♪
では動作確認です!

OKです!
しっかり削除されてますね(#^.^#)

これでCSVデータを表示、追加、編集、削除の機能を実装できました!
完成です!

ここまでお付き合いいただきありがとうございました!!

最後に

これまで長く色々書いてきましたが、多分分かりにくい点が多々あったかと思います。
それはすいませんでした。
こちらソースコードを載せているので、よかったら参考にしてみてください!
それではここまで読んでいただきありがとうございました!

前の記事

begginerkun.hatenablog.com