[PHP-users 7096] まとめて処理

shojun kimura php-users@php.gr.jp
Tue, 23 Apr 2002 19:50:54 +0900 (JST)


木村です。

質問の回数が多すぎて、申し訳ないですが、
でも、わからないので、質問させていただきます。。
前にした質問と関連があるんですが、
複数のメッセージに各々、チェックボックスをつけて、
チェックしたメッセージだけをまとめて、
削除したり、する処理がしたいのですが、
なぜか、for文でまわしても一番目のメッセージしか処理され
ません。
以下はソースの一部です。
よろしくお願いします。

<?php
	
	$db = pg_connect($constr2);
	$sql = "select * from taikimsg";
	$r = pg_exec($db, $sql);

	if($r && pg_numrows($r) > 0)
	{	
	  if($submit != "")  <?送信ボタンが押されたら、
	  {
		for($i = 0; $i < pg_numrows($r); $i++) 
		{
			$rec = pg_fetch_array($r, $i);

		    if(${"kyoka1".$i} ==
"on") <?kyoka10,kyoka11,kyoka12 ・・・
								がチェックされたら、まとめて、アップデート文を実
行する、
								でも、フォー文が一回しかまわりません。
								一番目のメッセージしか処理されません。
								あとの、IF文についても、同じです。
								pg_fetch_arrayで、0から、レコードの数だけまわし
ていますけど、
								なぜ、一回しか実行されないんでしょうか。
								どこがまずいんでしょうか、教えてください。
			{
				$sql = "update taikimsg set kyokamsg1 = 1 where id =
'".$rec['id']."'";
			    $r = pg_exec($db, $sql);
				if($r)
				{
					echo $sql;
					$cnt = pg_cmdtuples($r);
					$ok = $cnt."件許可しました<br>";
				}
					
			}
			if(${"delete".$i} == "on")
			{
			   $sql = "delete from taikimsg where id =
'".$rec['id']."'";
			   $r = pg_exec($db, $sql);
			   if($r)
			   {
				echo $sql;
				$cnt = pg_cmdtuples($r);
				$ok .= $cnt."件削除しました<br>";
				}
			}

			echo "<tr>";
			td($rec['id']);
                        td($rec['msg1']);
			if($rec['kyokamsg1'] == 1)
				td("許可済み");
			else //if($rec['msg1'] != "")
				td("<input type=\"checkbox\" name=\"kyoka1$i\">");
			if($rec['msg2'] == "")
				td("申請されたメッセージはありません");
			else
				td($rec['msg2']);
			if($rec['kyokamsg2'] == 1)
				td("許可済み");
			else
				td("<input type=\"checkbox\" name=\"kyoka2$i\">");
			td("<input type=\"checkbox\" name=\"delete$i\">");
			echo "</tr>\n";
			} // for
	        } // if
		
		echo "</table>";
		echo "<input type=\"submit\" name=\"submit\" value=\"
実行\">";
		echo "<input type=\"button\"
onClick=\"javascript:location.href = location.href\"
value=\" 更新\">";
		echo "</form>";

		if(isset($ok))
			echo "<font color=\"red\">".$ok."</font>";	

	} // if
	else
		echo
"<tr><td>待機メッセージ申請中のユーザはいません。</td></tr></table>";

	echo "<br><br>";
	echo "<a href=\"./roomman.php\">メニュー</a>";

function td($str)
{
	echo "<td>".$str."</td>";
}
?>


__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!
http://bb.yahoo.co.jp/