PHPアンケート集計のスプリクトエラーに困っています。
現在、PHPで下記のような集計して表示しようとしてます。値は、dataフォルダからカンマ区切りのテキストデータを読み込み集計されて表示はされるのですが・・・PHP4を使ってテストしたときはエラーは出なかったのですが、PHP5に変更してから走らせたところ下記のエラーが出てしまい困っています。どうやら値が未定義・初期値を与えないといけないらしいとこまでは、少し分かったのですが、そこからいろいろと試したのですがうまく動きません。スクリプトは「WebクリエイティブのためのPHPサンプルブック」を参考したもので、間違っているとは考えにくいのですが…。
エラーの内容 ===================================================
Notice: Undefined variable: corner in/var/www/html/test/XXXXX.php on line 30
Notice: Undefined index: 3 in /var/www/html/test/XXXXX.php on line 30
Notice: Undefined index: 1 in /var/www/html/test/XXXXX.php on line 30
Notice: Undefined index: 2 in /var/www/html/test/XXXXX.php on line 30
スクリプトの内容 ==============================================
$cnt=0;
$i=0;
$d = dir("data/");
//print_r($d); //検索対象ディレクトリ指定
while (($entry = $d->read())) { //ディレクトリ検索
if(eregi("2008",$entry)){
$l=file("data/$entry"); //該当ファイル読み込み
$lines[$cnt]=$l[0]; //データベース$linesの各行に格納
$cnt++;
}
}
$d->close();
function cmp ($a, $b) {
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
foreach($lines as $l){
$op=explode(",",$l);
$key=$op[4];
$corner[$key]++;
}
uasort($corner,"cmp");
$label=array("ほぼ毎日","週1~2回","月1~2回","半年に1~2回","今回がはじめて");
echo"<table width=600 border=1>";
echo"<tr><td colspan=2><b>問1.XXXXXXXXにどのくらいの頻度で訪問していますか。</b></td></tr>";
foreach($corner as $key => $value){
$ratio=$value/count($lines);
$length=300*$ratio;
echo"<tr><td>$label[$key]</td><td width=350>";
echo"<img src=\"./square.gif\" height=\"10\" width=\"$length\">";
echo" $value</td></tr>";
}
echo"</table>";
環境:Apache2 PHP5 MySQL5です。
よろしくお願いいたします。
お礼
おっしゃる通りでした。 ケアレスミス(「!」を付けてしまっていた)でした。 申し訳ございません。 ご指摘ありがとうございます。 大変助かりました。