DBのテーブルA("no":001,002 "name":a,b)をtable一覧し左のチェックボックスを選択するtest1,phpと、

チェック選択のデータ(複数可)のみ表示&編集できるtest2.phpを作成したいと思っています。
両方チェックしてもtest2.phpに"002"のデータしか受け渡しができないため、2つのファイルの書き方を教えてください。<(_""_)>

<!-- test1.php -->
<form action="test2.php" method="post" >
<table>
<?php $ct=0; while($data = mysql_fetch_array($result)) { ?>
<tr><td><input type="checkbox" name="chk[]" value="<?php echo $data['no']; ?>"></td>
<td><?php echo $data["no"]; ?></td>
<td><?php echo $data["name"]; ?></td></tr>
<?php $ct++; }
?>
<input type="submit" value="編集" />
</form>

<!-- test2.php -->
<?php
$dataCount = count($_POST["chk"]);
if(isset($_POST["chk"])){
for($ct=0; $ct<$dataCount; $ct++) {
$result = mysql_query("SELECT * FROM A WHERE no ='" . $_POST["chk"][$ct] . "'");
$data = mysql_fetch_array($result);
}
?>
<form action="test3.php" method="post" >
<table>
<input type="hidden" name="no[]" value="<?php echo $data[$ct]['no']; ?>">
<tr><td><?php echo $data['no']; ?></td>
<td><input type="text" name="name[]" value="<?php echo $data['name']; ?>"></td></tr>
</table>
</form>
<?php } ?>

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/07/04 14:43:19
  • 終了:2014/07/11 14:45:08

回答(2件)

id:pogpi No.1

pogpi回答回数368ベストアンサー獲得回数492014/07/04 15:10:31

ポイント50pt

test2で、「WHERE no IN (...)」ですね。...にカンマ区切りでnoが入っていれば出ると思います。

他3件のコメントを見る
id:pogpi

arrayでPOSTって、やったことがありません。POSTデータが取れているなら、POSTしたデータを、カンマ区切りで連結すればいいですよね。
「.」で連結できますよ。
「$hoge . "," . $hoge2」とかですね。

2014/07/05 07:25:17
id:m0r1y055

pogpiさん
お返事ありがとうございます。ざっくりの理解だと、ループ配列してポストした後で、今度はループ区切りするってことですよね?うーむ....。クライアントと会ったり他業務に追われているため、すぐに試す時間はなさそうですが、近日中に試してみます。うまくいかなかったら、もっとarrayについて勉強しなくては!!<(_""_)>

2014/07/05 23:10:18
id:gizmo5 No.2

gizmo5回答回数484ベストアンサー獲得回数1382014/07/04 16:08:01

ポイント50pt

test2.php の前半を以下のような形にしてください。

<?php
$dataCount = count($_POST["chk"]);
$data = array();
if(isset($_POST["chk"])){
	for($ct=0; $ct<$dataCount; $ct++) {
		$result = mysql_query("SELECT * FROM A WHERE no ='" . $_POST["chk"][$ct] . "'");
		$data[$ct] = mysql_fetch_array($result);	// 配列の要素に検索結果を代入する
	}
?>
id:m0r1y055tan

gizmo5さん
有り難うございます! ^ - ^
教えて頂いた通りに修正しましたが、ボタンを押したらtest2.phpのページが真っ白になりました。分析したところ、$data = array();だけ追加修正したらテーブル内のデータがなくなり、$data= mysql_fetch_array($result); → $data[$ct]= mysql_fetch_array($result); だけ変更修正したところ、ページが真っ白になるようです。(>_<) なんかすみません....。ちなみにdbのテーブルは下記の状況です。

create table A (
no int(3) zerofill primary key auto_increment,
name varchar(30),
);

no name
001 aaa
002 bbb
2014/07/05 01:43:42
id:m0r1y055tan

質問文を編集しました。詳細はこちら

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません