PHP初心者です。
こちらの方のサイト
◆練習問題12 - 外部ファイルの読み書き
を参考にPHPでcsvファイルを検索フォームで一致したキーワードを表示
させようと思っているのですがうまくいきません。
[送信]を押した後の画像のように中身が真っ白に表示されてしまいます。
[data.csv] も [index.php]
もすべて以下ディレクトリ配下においております。
/var/www/html/
よろしくお願いします。
[送信]を押す前 検索キーワードを入力
![イメージ説明]WIDTH:536
[送信]を押した後 ↓中身が真っ白に表示される
![イメージ説明]WIDTH:536
data.csv
商品番号,名称,単価,在庫 A001,りんご,80,10 A002,みかん,30,20 A003,バナナ,40,14 A004,いちご,400,20 A005,パイナップル,200,21
index.php
<?php //POSTの処理 $id = isset($_POST['id']) ? $_POST['id'] : "false"; ?> <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <head> <title>練習問題12 - 簡易データベースの動作確認 / PHPを学ぼう!</title> </head> <body bgcolor="#FFFFFF"> <h1 style="font-size:14pt">◆簡易データベース</h1> <?php //ファイル名の指定 $file_name = "data.csv"; //処理の分岐 if($id != "false"){ $fp = fopen($file_name, "a+") or die('ファイルオープンエラー!'); //データを$arrayに代入(多元配列) while(!feof($fp)){ $data = fgets($fp); $array[] = explode(",", mb_convert_encoding($data, "UTF-8", "auto")); } var_dump( $array ); fclose($fp); //目的のデータの修得 for($i=0; $i<count($array); $i++){ if($array[$i][0] == $id){ $new_data = $array[$i]; //var_dump( $new_data ); break; } } } $new_data = isset($new_data) ? $new_data : "false" ; ?> <form action="index.php" method="POST"> <input type="text" name="id"> <input type="submit" name="Submit" vale="検 索"> </form> <?php if($id != "false"){ if($new_data == "false" || $id == ""){ echo "データが存在しません。"; }else{ echo '▼検索結果'; echo '<hr>'; echo '商品番号: '.$new_data[0].'<br />'; echo '名 称: '.$new_data[1].'<br />'; echo '単 価: '.$new_data[2].'<br />'; echo '在 庫: '.$new_data[3].'<br />'; } } ?> </body> </html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/12/31 12:36