現在、PHPの勉強で自動販売機ツールを作成中なのですが、うまく動作させることができず完全につまずいてしまっている状態です...
以下に僕のコードを記載させて頂きますが、主につまずいてしまっている点と致しましては3つございます。
一つ目は、商品追加ボタンを押しても、商品が追加されず一覧に表示されない。
2つ目は、在庫数を入力し変更ボタンを押してもUPDATEされない。
3つ目は、ステータス変更ボタンを押してもステータスが変更されない。
自動販売機ツールについてなのですが、実際に一度つくり上げることはできたのですが、MVCモデルの勉強の為(Controller,model,view)の3つのファイルに分けてもう一度作りなおしている段階です。
現在は管理画面を作成しています。
使用しているデータベースは以前作成したものと同じものを、使用しています。
なので、一度もDBへのINSERTには成功していないのですが商品一覧が出力されている状態です。
文字数制限の為、入力チェックなどを行っている「model.php」につきましては、割愛させていただこうと思います。
以下が「Controller.php」となります。
PHP
<?php // 設定ファイル読み込み require_once '../include/conf/const.php'; // 関数ファイル読み込み require_once './model.php'; $drink_info_list = array(); $err_msg = array(); $success_msg = array(); $drink_name = ''; $price = 0; $stock = 0; $status = 0; $file_name =''; $drink_id = 0; $ext = ''; $link = get_db_connect(); if($_SERVER['REQUEST_METHOD'] === 'POST'){ $submit_type = $_POST['submit_type']; //var_dump($submit_type);exit(); switch ($submit_type) { case 'add_item': $drink_name = $_POST['drink_name']; $price = $_POST['price']; //var_dump($price);exit(); $stock = $_POST['stock']; $status = $_POST['public_status']; //登録値チェック $err_msg[] = entry_name_check($drink_name); $err_msg[] = entry_check_price($price); $err_msg[] = entry_check_stock($stock); //var_dump($price);exit(); //アップロードファイル名を変数に代入 $temp_file = $_FILES['new_img']['tmp_name']; $file_name = '../img' . $_FILES['new_img']['name']; //拡張子取得 $ext = extention($file_name); //拡張子チェック $err_msg[] = extention_check($ext); //ファイルパス+ファイル名 $upload_file = '../img' . $drink_id . $ext; if(count($err_msg) === 0){ //トランザクション開始 mysqli_autocommit($link, $false); $sql = 'INSERT INTO drink_info_table(drink_name,price,status)VALUES(\'' . $drink_name . '\',' . $price . ',' . $status . ')'; if(mysqli_query($link,$sql) === TRUE){ $drink_id = mysqli_insert_id($link); //drink_stock_tableにinsert $err_msg[] = insert_drink_stock_table($drink_id,$stock); }else{ $err_msg[] = 'drink_info_table:insertエラー' . $sql; } //アップロード処理 $err_msg[] = upload_img($file_name,$temp_file,$upload_file); //トランザクション成否判定 if(count($err_msg) === 0){ $success_msg[] = '商品追加成功'; mysqli_commit($link); }else{ $err_msg[] = '商品追加失敗'; mysqli_rollback($link); } } break; case'change_value': $drink_id = (int)$_POST['drink_id']; if(isset($_POST['update_stock'])){ $update_stock = (int)$_POST['update_stock']; $sql = 'UPDATE drink_stock_table SET stock_number = ' . $update_stock . ' WHERE drink_id = ' . $drink_id; if(mysqli_query($link,$sql) === TRUE){ $success_msg [] = '在庫変更成功'; }else{ $err_msg[] = 'UPDATE drink_stock_table:updateエラー:' . $sql; } }else{ $err_msg[] = '在庫変更失敗'; } break; case 'change_status': $status = (int)$_POST['status']; $drink_id = (int)$_POST['drink_id']; if(($status) === 1){ $sql = 'UPDATE drink_info_table SET status = 0 WHERE drink_id = ' . $drink_id; if(mysqli_query($link,$sql) === FALSE){ $err_msg[] = 'drink_info_table:UPDATEエラー' . $sql; }else{ $success_msg[] = 'ステータス変更成功'; } }else{ $sql = 'UPDATE drink_info_table SET status = 1 WHERE drink_id = ' . $drink_id; if(mysqli_query($link,$sql) === FALSE){ $err_msg[] = 'drink_info_table:UPDATEエラー' .$sql; }else{ $success_msg[] = 'ステータス変更成功'; } } break; } } //drink_info_table取得 $drink_info_list = get_drink_table($link); //特殊文字をHTMLエンティティに変換 $drink_info_list = entity_as_array($drink_info_list); //var_dump($drink_info_list);exit(); include_once './view.php'; ?>
以下はview.phpとなります。
![]
以下は実行画面となります。
お手数ですが、どなたか教えて下さる方いましたらご教授願えれば幸いです...
まだ回答がついていません
会員登録して回答してみよう