PHP mysql_fetch_assocについて
いつもお世話になっております。早速ですが下記のソースにて、SQLのクエリではレコードが2行(phpMyAdminで確認)出てきます。何故whileが繰り返してくれないのか分からず悩んでおります。($counterも2で止まる)長文でお手数ですがどうかお力添えの程お願い致します。(文字数制限にてSQL文は省略してます)
$sql = "SELECT * FROM 省略";
$res = mysql_query($sql,$conn);
echo "<form method=\"POST\" action=\"edit.php\">";
echo "<table class=\"login mb10\" border=\"1\" cellspacing=\"0\" width=\"650\">";
echo "<tr><td class=\"form\">日にち</td><td class=\"form\" colspan=\"3\">".$date."</td></tr>";
$counter = 1;
//これが繰り返してくれない
while($stadium = mysql_fetch_assoc($res)){
//2回目以降はtableタグを付加
if($counter > 1){echo "<table>";}
echo "<tr><td>試合順</td><td colspan=\"2\">".$counter."試合目</td><td>対象</td></tr>";
echo "<tr><td>対戦カード・時間</td><td>";
//チーム情報
$sql = "SELECT * FROM 省略";
$res = mysql_query($sql,$conn);
echo "<select name=\"team1_".$counter."\">\n";
while($team1 = mysql_fetch_assoc($res)){
echo "<option value=\"".$team1["team_id"]."\"";
if($row["team1"] == $team1["team_id"]){echo " selected";}
echo ">".$team1["team_name"]."</option>\n";
}
echo "</select>対";
$sql = "SELECT * FROM 省略";
$res = mysql_query($sql,$conn);
echo "<select name=\"team2_".$counter."\">\n";
while($team2 = mysql_fetch_assoc($res)){
echo "<option value=\"".$team2["team_id"]."\"";
if($stadium["team2"] == $team2["team_id"]){echo " selected";}
echo ">".$team2["team_name"]."</option>\n";
}
echo "</select></td>\n";
//時刻を反転させる
$date_s = strrev($stadium["schedule_time"]);
$minute_s = strrev(substr($date_s,0,2));
$hour_s = strrev(substr($date_s,2,2));
echo "<td><select name=\"hour_".$counter."\">";
$hour = 8;
while($hour < 22){
echo "<option value=\"".$hour."\" ";
if($hour_s == $hour){echo "selected";}
echo ">".$hour."</option>";
$hour ++;
}
echo "</select>時";
echo "<select name=\"minute_1\">";
$minute = 0;
while($minute < 60){
echo "<option value=\"".$minute."\" ";
if($minute_s == $minute){echo "selected";}
echo ">".$minute."</option>";
$minute = $minute + 15;
}
echo "</select>分</td>\n";
//チェック
echo "<td rowspan=\"2\"><input type=\"checkbox\" name=\"delete_".$counter."\" value=\"1\"></td></tr>\n";
echo "<tr><td class=\"form\">審判・場所</td><td>";
//チーム情報
$sql = "SELECT * 省略";
$res = mysql_query($sql,$conn);
echo "<select name=\"umpire1_".$counter."\">";
while($umpire1 = mysql_fetch_assoc($res)){
echo "<option value=\"".$umpire1["team_id"]."\" ";
if($umpire1["team_id"] == $stadium["umpire1"]){echo "selected";}
echo ">".$umpire1["team_name"]."</option>";
}
echo "</select>&";
$sql = "SELECT * FROM 省略";
$res = mysql_query($sql,$conn);
echo "<select name=\"umpire2_".$counter."\">";
while($umpire2 = mysql_fetch_assoc($res)){
echo "<option value=\"".$umpire2["team_id"]."\" ";
if($umpire2["team_id"] == $stadium["umpire2"]){echo "selected";}
echo ">".$umpire2["team_name"]."</option>";
}
echo "</select></td>\n";
//球場データ
$sql = "SELECT * FROM 省略";
$res = mysql_query($sql,$conn);
echo "<td>";
if($counter == 1){
echo "<select name=\"stadium_".$counter."\">";
while($sta = mysql_fetch_assoc($res)){
echo "<option value=\"".$sta["stadium_id"]."\" ";
if($sta["stadium_id"] == $stadium["stadium"]){echo "selected";}
echo ">".$sta["stadium_name"]."</option>";
}
echo "</select>";
}else{
echo " ";
}
echo "</td></tr>\n";
echo "</table>";
$counter++;
}
echo "<table>変更するテーブル</table>";
echo "</form>";
お礼
回答ありがとうございます。 DB内の全テーブルに対して、テーブルごとにSELECTの結果をファイルに書き込むということをしたかったのですが、上記サンプルはどのように私用したらいいのでしょうか? 具体的には、コメントで挟んである部分をどうしたらいいのかおしえていただきたいのです。 よろしくお願いします。 declare FILE_HANDLE utl_file.file_type; cursor curcol (p_tblname user_tables.table_name%type) is select COLUMN_NAME from user_tab_columns where table_name = p_tblname; v_sql varchar2(1000); v_sel varchar2(1000); v_col varchar2(20); begin for rowtbl in (select table_name from user_tables) loop for rowcol in curcol(rowtbl.table_name) loop if v_sel = '' then v_sel := v_col; else v_sel := v_sel||','||v_col; end if; end loop; v_sql := 'select '||v_sel||' from '||rowtbl.table_name; FILE_HANDLE := UTL_FILE.FOPEN('test',rowtbl.table_name||'.txt','a'); -- ここから for rowresult in (v_sql) loop UTL_FILE.PUT(FILE_HANDLE,rowresult); end loop; UTL_FILE.FCLOSE(FILE_HANDLE); -- ここまで end loop; end; /