• 締切済み

Noのデータ受け渡しで同じNoが表示されてしまうのは何故!?

formdb_search.php 一覧表示させるphpです。 echo "<TR>\n"; echo "<FORM method=\"post\"action=\"./formdb_modify.php\">\n"; echo "<INPUT type=\"hidden\" name=\"data_no\" value=\"".$data_array[0]." \">\n"; echo "<TD nowrap><INPUT type=\"submit\" value=\" 詳細\"></TD>\n"; echo "<TD nowrap>" . $data_array[0] . "</TD>\n"; echo "<TD nowrap>" . $data_array[1] . "</TD>\n"; echo "<TD nowrap>" . $data_array[2] . "</TD>\n"; echo "<TD nowrap>" . $data_array[3] . "</TD>\n"; echo "<TD nowrap>" . $data_array[4] . "</TD>\n"; echo "<TD nowrap>" . $data_array[5] . "</TD>\n"; echo "<TD nowrap>" . $data_array[6] . "</TD>\n"; echo "</FORM>\n"; echo "</TR>\n"; //データ表示件数を1加算 $data_view++; } ?> <TR> <TH nowrap>詳細</TH> <TH nowrap>No.</TH> <TH nowrap>公開日</TH> <TH nowrap>求人の概要</TH> <TH nowrap>業界</TH> <TH nowrap>規模</TH> <TH nowrap>上場区分</TH> <TH nowrap>募集職種</TH> </TR> </TABLE> formdb_modifyのphpで、詳細を選択したNo.を表示するPGです。 // データファイルから1行ずつ配列として読込み $data_all = file("../../db/csv/maillog.csv"); //データ取得処理 for($i=1; $i < count($data_all);$i++){ // データを以下の配列として取得 // $data_array[0] - No. // $data_array[1] - 公開日 // $data_array[2] - 求人の概要 // $data_array[3] - 業界 // $data_array[4] - 規模 // $data_array[5] - 上場区分 // $data_array[6] - 募集職種 $data_array = explode(",",$data_all[$i]); $data_no = $_POST['data_no']; if($data_no == $data_no){ $kyujin=$data_array[0]; $koukai=$data_array[1]; $gaiyou=$data_array[2]; $gyoukai=$data_array[3]; $kibo=$data_array[4]; $kubun=$data_array[5]; $shokushu=$data_array[6]; $poji=$data_array[7]; $nenrei=$data_array[8]; $seibetsu=$data_array[9]; } } ?> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS"> <TITLE>データ詳細</TITLE> </HEAD> <BODY> <DIV align="center"> <H1>データ詳細 No.<?php echo $_POST['data_no'] ?></H1> <A href="./mail.html">求人案件情報登録へ</A> <A href="./formdb_search.php">求人案件一覧へ</A> <FORM method="post" action="<?php echo $PHP_SELF ?>"> <INPUT type="hidden" name="set" value="modify"> <INPUT type="hidden" name="data_no" value="<?php echo $data_no ?>"> <?php> $data_no = 0; ?> <TABLE align="center" cellpadding="10"> <TR align="left"> <TD>求人No.</TD> <TD><INPUT type="text" name="kyujin" size="20" value="<?php echo $kyujin ?>"></TD> </TR> 何故かどのNo.の詳細を選択しても同じNo.の詳細データが表示されてしまうのですが... 教えて下さい。

みんなの回答

回答No.2

> NO,だけは、1 or 2 or 3って読まれるんですが これは、 echo $_POST['data_no'] のところだけですか? それとも、echo $kyujin のところも出るということですか? 前者だけは動いているということなら、 $kyujin、$koukai等をセットする部分がfunctionになっていて、変数のスコープが届いていないということはないですか? また、formdb_modify.phpでのファイル名の記述ミスで実際はファイルが読み込めてないということはないですか? (単体プログラム毎にファイルを読めているかのかの確認はされていますか) それと、 for($i=1; $i < count($data_all);$i++){ では、1行目だけが取り出せないので、開始は $i=1ではなく、$i=0です。 といった具合に、疑えばきりがないので、 問題を切り分けするためにデバック用のprintやprint_r文をいれたり、 エラー出力をONにするといった、 デバックのテクニックをまずは、取得したほうがよいように思います。

jojo0203
質問者

お礼

いろいろ有難うございました。 formdb_search.php の data_no に スペースが付いている formdb_modify.php で 同じ変数(data_no)を比較している 以上で... 出来上がりました。 いろんなところデバックすればいいのですね 本当に有難うございました。

回答No.1

if($data_no == $data_no){ では、どの行でも真になりますね。

jojo0203
質問者

お礼

ありがとうございます。 if($data_array[0] == $data_no){ にすると 全然、表示されなくなってしまうんですよね NO,だけは、1 or 2 or 3って読まれるんですが 後のデータが表示されないんです。 どうしてでしょうか?

関連するQ&A

専門家に質問してみよう