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

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

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

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

PHP

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

解決済

[PHP] 画面にArrayと表示され目的の処理が行われません。。。

newyee
newyee

総合スコア213

phpMyAdmin

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

PHP

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

2回答

0評価

1クリップ

8324閲覧

投稿2017/09/13 15:09

PHPの勉強で、自動販売機システムの課題を作成中なのですが、画面にArrayと表示され「在庫数」を変更することができません。。。「在庫数」に関しましては、以下のコードをチェック頂けたらと思います。
現在MVCモデルを勉強中ですので、model,Controller,viewの3つのファイルに分けて作成しております。
以下が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']; switch ($submit_type) { case 'add_item': $drink_name = $_POST['user_name']; $price = $_POST['price']; $stock = $_POST['stock']; $status = $_POST['public_status']; //登録値チェック $err_msg[] = entry_name_check($user_name); $err_msg[] = entry_check_price($price); $err_msg[] = entry_check_stock($stock); //アップロードファイル名を変数に代入 $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{ mysqli_rollback($link); } } break; case'change_value': $update_stock = $_POST['update_stock']; $drink_id = $_POST['drink_id']; if(isset($update_stock)){ //整数かどうかを判定 $err_msg[] = change_stock_number($update_stock); if(count($err_msg) === 0){ $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[] ='drink_stock_table:UPDATEエラー' . $sql; } } } 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'; ?>

以下はmodel.phpになります。

php

<?php //在庫数が整数かどうか function change_stock_number($update_stock){ $err_msg = ''; if(ctype_digit($update_stock) === FALSE){ $err_msg = '在庫数は整数のみ入力してください'; } return $err_msg; } //drink_stock_tableにinsertする function insert_drink_stock_table($drink_id,$stock){ $err_msg = ''; $sql = 'INSERT INTO drink_stock_table(drink_id,stock_number)VALUES(' . $drink_id . ',' . $stock . ')'; if(mysqli_query($link,$sql) === FALSE){ $err_msg = '$drink_stock_table:insertエラー' . $sql; } return $err_msg; } //アップロード処理 function upload_img($tmp_file,$file_name,$upload_file){ $err_msg = ''; if (is_uploaded_file($temp_file)) { if (move_uploaded_file($temp_file,$upload_file) === FALSE) { $err_msg = 'ファイルをアップロードできません。'; } } else { $err_msg = 'ファイルが選択されていません。'; } return $err_msg; } //拡張子チェック function extention_check($ext){ $err_msg = ''; if(!($ext === 'jpeg' || $ext === 'jpg' || $ext === 'png')){ $err_msg = 'ファイル形式が異なります。画像ファイルはjpegまたはpngのみ利用可能です'; } return $err_msg; } //拡張牛取得 function extention($file_name){ return substr($file_name,strrpos($file_name,'.') +1); } //登録商品名チェック function entry_name_check($drink_name){ $err_msg = ''; if($drink_name = ''){ $err_msg = '名前を入力してください'; } return $err_msg; } //登録値段チェック function entry_check_price($price){ $err_msg = ''; if(ctype_digit($price) !== TRUE ){ $err_msg = '値段は整数のみ入力してください'; }elseif($price = ''){ $err_msg = '値段を入力してください'; } return $err_msg; } //登録個数チェック function entry_check_stock($stock){ $err_msg = ''; if(ctype_digit($stock) !== TRUE ){ $err_msg = '個数は整数のみ入力してください'; }elseif($stock = ''){ $err_msg = '個数を入力してください'; } return $err_msg; } function get_db_connect() { // コネクション取得 if (!$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWD, DB_NAME)) { die('error: ' . mysqli_connect_error()); } // 文字コードセット mysqli_set_charset($link, DB_CHARACTER_SET); return $link; } function get_as_array($link,$sql){ $data = array(); if($result = mysqli_query($link,$sql)){ if(mysqli_num_rows($result) > 0) { while($row = mysqli_fetch_assoc($result)){ $data[] = $row; } } mysqli_free_result($result); } return $data; } function get_drink_table($link){ $sql = 'SELECT drink_info_table.drink_id,drink_name,price,status,stock_number FROM drink_info_table JOIN drink_stock_table ON drink_info_table.drink_id = drink_stock_table.drink_id'; return get_as_array($link,$sql); } function entity_str($str) { return htmlspecialchars($str, ENT_QUOTES, HTML_CHARACTER_SET); } function entity_as_array($drink_info_list){ foreach($drink_info_list as $key => $value){ foreach($value as $keys => $values){ $drink_info_list[$key][$keys] = entity_str($values); } } return $drink_info_list; }

以下はview.phpとなります。
イメージ説明
イメージ説明
イメージ説明

在庫数を入力し、変更ボタンを押すと以下のように、「Array」と表示され在庫数が変更できません。。。
イメージ説明
どなたか教えて下さる方いましたら、ご教授下さい...

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

phpMyAdmin

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

PHP

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