foreach ($board as $key => $val) : 문에서 $board 의 배열형식에 대해서 문의드립니다.
본문
안녕하세요.
여기 사이트에 있는 sitemap 생성기를 사용하고 있는데요.
아래는 코드의 일부입니다.
=====================================
# 게시판 리스트
$sql = " SELECT * FROM {$g5['board_table']} WHERE bo_read_level = 1";
$query = sql_query($sql);
while ($row = sql_fetch_array($query)) {
$board[] = $row;
}
# 파일 작성 시작
$sitemap = fopen($wwwPath.'/sitemap/sitemap.xml', 'w') or die('file not found'); # 사이트맵 생성 경로 변경
fwrite($sitemap, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
fwrite($sitemap, '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">');
$boardLink = "";
$contentLink = "";
foreach ($board as $key => $val) :
# 마지막 게시물 시간
$sql = " SELECT * FROM {$g5['write_prefix']}{$val['bo_table']} WHERE wr_id = wr_parent AND wr_is_comment = 0 ORDER BY wr_datetime DESC LIMIT 0, 1";
$query = sql_fetch($sql);
=====================================
지금까지 잘 사용을 하였으나, 다른 사이트에 적용을 할려고 하니, 기존 사이트와는 다르게.
====================
print_r($board);
Array
(
[bo_table] =>
[bo_skin] =>
[bo_mobile_skin] =>
[bo_upload_count] => 0
[bo_use_dhtml_editor] =>
[bo_subject] =>
[bo_image_width] => 0
[0] => Array
(
[bo_table] => all
[gr_id] => shop
[bo_subject] => 제목
[bo_mobile_subject] =>
[bo_device] => both
[bo_admin] => admin
[bo_list_level] => 1
[bo_read_level] => 1
[bo_write_level] => 10
~~~~
==========================
와 같이 인덱스 배열이 아닌 연관 배열로 처리가 되어서,
foreach ($board as $key => $val) :
이부분에서 $key 값에 인덱스 숫자가 아닌,
[bo_table] =>
[bo_skin] =>
[bo_mobile_skin] =>
[bo_upload_count] => 0
[bo_use_dhtml_editor] =>
[bo_subject] =>
[bo_image_width] => 0
[0]
이 부분들로 잡힙니다. 그래서 원하는대로 제대로 처리가 되지 않구요.
원래는 부분이
===========================
print_r($board);
Array
(
[0] => Array
(
[bo_table] => notice
[gr_id] => aaa
[bo_subject] => 제목
[bo_mobile_subject] =>
[bo_device] => both
[bo_admin] =>
[bo_list_level] => 1
[bo_read_level] => 1
[bo_write_level] => 10
[bo_reply_level] => 10
[bo_comment_level] => 2
[bo_upload_level] => 10
[bo_download_level] => 10
[bo_html_level] => 10
[bo_link_level] => 10
[bo_count_delete] => 1
[bo_count_modify] => 1
~~~~~~~~~~~~~~~~
===================================
와 같이 인덱스 배열로 처리가 되어서 올바로 처리가 되었는데요.
문제는 같은 sitemap.php 코드를 사용하였는데, 한쪽은 오류가 나고 한쪽은 정상처리가 됩니다.
혹시 테이블에 문제가 있나해서, g5_board_2테이블을 임시로 만들어서 정상작동하는 테이블 데이타를 넣어서 테스트를 해봤는데도 마찬가지 결과입니다.
본사이트에서 사용하는 연관되는 코드들에서 문제가 생긴것인가 생각중인데 해결이 되지 않고 있습니다.
도움 부탁드립니다.
감사합니다.
답변 2
해당 코드 이전에 이미 board 배열이 있는 상태입니다.
화일문을 전에 배열을 초기화 해주세요
{$g5['write_prefix']}{$val['bo_table']}에서 $val은 어디서 나온 거죠?
{$g5['write_prefix']}_{$board['bo_table']}로 고치면 될 거 같은데요.
{$g5['write_prefix']}{$board['bo_table']} 이게 맞나? 가물가물하네요 :)