A 게시판의 마지막 10개 파일의 첨부 파일을 배열로 만들려면 어떻하나요? 채택완료
A게시판에서 10개의 게시물에 각각 1개씩 mp3 파일을 저장했습니다. (총 10개)
이 파일들의 경로를 불러와서 배열을 만들려고 합니다.
그런데 불러오는 페이지가 루트의 index.php입니다. (게시판 list.php가 아님)
$sql = "select... 해서 A 게시판을 지정하고, 그 첨부 파일 url과 이름을 가져와야 하며,
for 등으로 10번을 카운트 한 다음에
$url01 = "경로와 파일명";
이렇게 해야 할 거 같은데... 잘 안 되네요. ㅠ.ㅠ
(배열을 못 만들어서 그런가 봐요. 정규식에 큰 약점이 있어요. ㅡ.ㅡ;;)
결론적으로 특정 게시판의 10개 게시물의 첨부파일 경로를 가져와서 변수 저장하는 건데,
코드나 예제 소스 등을 도움받았으면 합니다.
답변 4개
</p>
<p>$bo_table = 'table';
$write_table = $g5['write_prefix'].$bo_table;
$sql = "select a.wr_id as id, b.bf_source as source, b.bf_file as fname
from {$write_table} as a left join {$g5['board_file']} as b ON a.wr_id = b.wr_id
where a.wr_is_comment = '0' order by a.wr_datetime desc limit 10";
$res = sql_query($sql);
$file = array();
for($i=0;$row=sql_fetch_array($res);$i++) {
$file[$i]['id'] = $row['id'];
$file[$i]['source'] = $row['source'];
$file[$i]['fname'] = $row['fname'];
}</p>
<p>
대략 이런식으로 배열을 만들면 되지 않을까요?
파일 경로는 지금 생각이 안나서 빼놨습니다.
답변에 대한 댓글 2개
left join 대신
inner join을 쓰세요.
댓글을 작성하려면 로그인이 필요합니다.
$qq = sql_query("select * from {$g5['board_file_table']} where bo_table = '게시판명' bf_no=0 order by wr_id desc limit 0, 10");
while($row = sql_fetch_array($qq)){
$file[]=array($row['bf_source'], G5_URL.'/data/file/게시판명/'.$row['bf_file']);
}
print_r($file);
댓글을 작성하려면 로그인이 필요합니다.
아래처럼 사용한다는 분도 있던데, 이런 경우엔 어떻게 echo문을 써서 확인해 볼 수 있나요?
</strong></p>
<pre>
<code>function get_file_my($bo_table, $wr_id)
{
global $g5, $qstr;
$file['count'] = 0;
$sql = " select * from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result))
{
$no = $row['bf_no'];
$file[$no]['href'] = G5_BBS_URL."/download.php?bo_table=$bo_table&wr_id=$wr_id&no=$no" . $qstr;
$file[$no]['download'] = $row['bf_download'];
// 4.00.11 - 파일 path 추가
$file[$no]['path'] = G5_DATA_URL.'/file/'.$bo_table;
$file[$no]['size'] = get_filesize($row['bf_filesize']);
$file[$no]['datetime'] = $row['bf_datetime'];
$file[$no]['source'] = addslashes($row['bf_source']);
$file[$no]['bf_content'] = $row['bf_content'];
$file[$no]['content'] = get_text($row['bf_content']);
//$file[$no]['view'] = view_file_link($row['bf_file'], $file[$no]['content']);
$file[$no]['view'] = view_file_link($row['bf_file'], $row['bf_width'], $row['bf_height'], $file[$no]['content']);
$file[$no]['file'] = $row['bf_file'];
$file[$no]['image_width'] = $row['bf_width'] ? $row['bf_width'] : 640;
$file[$no]['image_height'] = $row['bf_height'] ? $row['bf_height'] : 480;
$file[$no]['image_type'] = $row['bf_type'];
$file['count']++;
}
return $file;
}
</code><strong>
댓글을 작성하려면 로그인이 필요합니다.
게시판의 리스트에서는 첨부파일의 경로와 파일명을 추출할 수 있을 거에요.
그럼 리스트페이지를 curl 로 긁어서 원하는 문자열만 추출하여 순차적으로 변수에 담을 수 있을 것입니다.
답변에 대한 댓글 1개
그런데, 다른 페이지에서 부르려니 막막하네요.
더구나 curl를 긁는 것을 할 줄 몰라서 더 한심한 상황입니다.
$sql = "select * from {$g5['board_table']} where bo_table = '원하는 게시판명'";
$fileurl = sql_fetch($sql);
이런 식으로는 할 수 없을까요?
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
$bo_table = '원하는 게시판명'; 이렇게 하면 되나요?
파일 경로 문제 때문에 아직 적용에 성공 못했는데,
전에는 파일 경로를 이렇게 사용했었거든요.
$src = '/data/file/' . $row['bo_table'] . '/' . $row['bf_file'];
그런데, 이걸 위의 코드 소스에서는 어떻게 사용해야 되는지 모르겠어요.
그리고...
올려 주신 코드에서
a.wr_id 나 b.wr_id, b.bf_source 같은 것이 보이는데,
a나 b는 무엇을 의미하나요?