現在、PHPの勉強で自動販売機ツールを作成中なのですが、うまく動作させることができず完全につまずいてしまっている状態です...
以下に僕のコードを記載させて頂きますが、主につまずいてしまっている点と致しましては3つございます。
一つ目は、商品追加ボタンを押しても、商品が追加されず一覧に表示されない。
2つ目は、在庫数を入力し変更ボタンを押してもUPDATEされない。
3つ目は、ステータス変更ボタンを押してもステータスが変更されない。
自動販売機ツールについてなのですが、実際に一度つくり上げることはできたのですが、MVCモデルの勉強の為(Controller,model,view)の3つのファイルに分けてもう一度作りなおしている段階です。
現在は管理画面を作成しています。
使用しているデータベースは以前作成したものと同じものを、使用しています。
なので、一度もDBへのINSERTには成功していないのですが商品一覧が出力されている状態です。
文字数制限の為、入力チェックなどを行っている「model.php」につきましては、割愛させていただこうと思います。
以下が「Controller.php」となります。
PHP
1<?php 2// 設定ファイル読み込み 3require_once '../include/conf/const.php'; 4// 関数ファイル読み込み 5require_once './model.php'; 6 7$drink_info_list = array(); 8$err_msg = array(); 9$success_msg = array(); 10$drink_name = ''; 11$price = 0; 12$stock = 0; 13$status = 0; 14$file_name =''; 15$drink_id = 0; 16$ext = ''; 17$link = get_db_connect(); 18if($_SERVER['REQUEST_METHOD'] === 'POST'){ 19 20 $submit_type = $_POST['submit_type']; 21 //var_dump($submit_type);exit(); 22 23 switch ($submit_type) { 24 case 'add_item': 25 26 $drink_name = $_POST['drink_name']; 27 $price = $_POST['price']; 28 //var_dump($price);exit(); 29 $stock = $_POST['stock']; 30 $status = $_POST['public_status']; 31 32 //登録値チェック 33 $err_msg[] = entry_name_check($drink_name); 34 $err_msg[] = entry_check_price($price); 35 $err_msg[] = entry_check_stock($stock); 36 //var_dump($price);exit(); 37 38 //アップロードファイル名を変数に代入 39 $temp_file = $_FILES['new_img']['tmp_name']; 40 $file_name = '../img' . $_FILES['new_img']['name']; 41 42 //拡張子取得 43 $ext = extention($file_name); 44 //拡張子チェック 45 $err_msg[] = extention_check($ext); 46 47 //ファイルパス+ファイル名 48 $upload_file = '../img' . $drink_id . $ext; 49 50 if(count($err_msg) === 0){ 51 52 //トランザクション開始 53 mysqli_autocommit($link, $false); 54 55 $sql = 'INSERT INTO drink_info_table(drink_name,price,status)VALUES(\'' . $drink_name . '\',' . $price . ',' . $status . ')'; 56 57 if(mysqli_query($link,$sql) === TRUE){ 58 59 $drink_id = mysqli_insert_id($link); 60 61 //drink_stock_tableにinsert 62 $err_msg[] = insert_drink_stock_table($drink_id,$stock); 63 64 }else{ 65 $err_msg[] = 'drink_info_table:insertエラー' . $sql; 66 } 67 68 //アップロード処理 69 $err_msg[] = upload_img($file_name,$temp_file,$upload_file); 70 71 //トランザクション成否判定 72 if(count($err_msg) === 0){ 73 74 $success_msg[] = '商品追加成功'; 75 76 mysqli_commit($link); 77 78 }else{ 79 $err_msg[] = '商品追加失敗'; 80 mysqli_rollback($link); 81 } 82 } 83 84 break; 85 86 case'change_value': 87 88 $drink_id = (int)$_POST['drink_id']; 89 90 if(isset($_POST['update_stock'])){ 91 $update_stock = (int)$_POST['update_stock']; 92 93 $sql = 'UPDATE drink_stock_table SET stock_number = ' . $update_stock . ' WHERE drink_id = ' . $drink_id; 94 95 if(mysqli_query($link,$sql) === TRUE){ 96 $success_msg [] = '在庫変更成功'; 97 }else{ 98 $err_msg[] = 'UPDATE drink_stock_table:updateエラー:' . $sql; 99 } 100 }else{ 101 $err_msg[] = '在庫変更失敗'; 102 } 103 104 break; 105 106 case 'change_status': 107 108 109 $status = (int)$_POST['status']; 110 $drink_id = (int)$_POST['drink_id']; 111 112 if(($status) === 1){ 113 114 $sql = 'UPDATE drink_info_table SET status = 0 WHERE drink_id = ' . $drink_id; 115 116 if(mysqli_query($link,$sql) === FALSE){ 117 118 $err_msg[] = 'drink_info_table:UPDATEエラー' . $sql; 119 120 }else{ 121 122 $success_msg[] = 'ステータス変更成功'; 123 } 124 125 }else{ 126 $sql = 'UPDATE drink_info_table SET status = 1 WHERE drink_id = ' . $drink_id; 127 128 if(mysqli_query($link,$sql) === FALSE){ 129 130 $err_msg[] = 'drink_info_table:UPDATEエラー' .$sql; 131 132 }else{ 133 134 $success_msg[] = 'ステータス変更成功'; 135 } 136 137 } 138 139 break; 140 141 } 142 143} 144 145//drink_info_table取得 146$drink_info_list = get_drink_table($link); 147 148 149//特殊文字をHTMLエンティティに変換 150$drink_info_list = entity_as_array($drink_info_list); 151//var_dump($drink_info_list);exit(); 152 153include_once './view.php'; 154 155 156?>
以下はview.phpとなります。
![]
以下は実行画面となります。
お手数ですが、どなたか教えて下さる方いましたらご教授願えれば幸いです...

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/15 13:25
2017/09/15 13:33
2017/09/15 13:40
2017/09/15 14:05
2017/09/15 14:25
2017/09/15 14:29
2017/09/15 14:43
2017/09/15 14:45
2017/09/15 14:50
2017/09/15 14:51
2017/09/15 15:07
2017/09/16 09:54