質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

解決済

[PHP]自動販売機ツール作成中なのですが、つまずいてしまい先へ進めません...

newyee
newyee

総合スコア213

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1回答

0評価

0クリップ

9477閲覧

投稿2017/09/14 14:27

編集2017/09/14 14:29

現在、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となります。
![イメージ説明]
イメージ説明
イメージ説明
イメージ説明
以下は実行画面となります。
イメージ説明

お手数ですが、どなたか教えて下さる方いましたらご教授願えれば幸いです...

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。