foreach문에서 게시글 삭제 시 질문드립니다.

foreach문에서 게시글 삭제 시 질문드립니다.

QA

foreach문에서 게시글 삭제 시 질문드립니다.

답변 3

본문

안녕하세요

sir회원님들의 도움을 받고있는 클래스는영원히라합니다.

항상 감사드립니다.

다름이아니라 궁금한점이 있어 질문드리게되었습니다.

 

http://www.foodmall2020.com/check_proc.php?f_idx=1234&SqlType=food_delete

 

이런식으로 게시글을 삭제해주려고하는데요

아래는 check_proc.php입니다.

 

case "food_delete" :
$sql = "update data_food set delete_yn = 'Y' where f_idx = ?";
$stmt = $db->Prepare($sql);

$f_idx_arr = escape_html($_REQUEST["f_idx"]);

foreach ($f_idx_arr as $f_idx) {
    $result = $db->Execute($stmt, array($f_idx));
}

 

 

다름이아니라 삭제 시도 시 Warning: Invalid argument supplied for foreach()의 메시지가 나오고있습니다.

혹시 어떻게해야 삭제를 할 수 있을지 많은 조언 부탁드립니다.

감사합니다!

 

 

이 질문에 댓글 쓰기 :

답변 3

if(!empty($f_idx)){

foreach ($f_idx_arr as $f_idx) {
    $result = $db->Execute($stmt, array($f_idx));
}

}

 

이렇게 고치세요~~~

f_idx가 단일 문자열 값인데, foreach()문을 사용하는 이유는 무엇인가요?

$f_idx_arr 자체가 Array나 Objext가 아니라 foreach()문 실행할 수 없을 텐데요.

 

$f_idx_arr = [escape_html($_REQUEST['f_idx'])]; // 배열로 할당한다고 해도, 값이 하나라서 별로.

BiHon님 답변 감사드립니다!
다름이아니라

foreach ($f_idx_arr as $f_idx) {
    $result = $db->Execute($stmt, array($f_idx));
}
이렇게 나열되어있을경우는

http://www.foodmall2020.com/check_proc.php?f_idx=1234&SqlType=food_delete
이런식 단일값을 집어서 삭제를 못하는지 궁금합니다.
혹시 누가 상품을 외부에서 f_idx값을 바꿔서 지운다고하면 문제가 커질 것 같아 여쭙습니다.

홈페이지 내부에서는 다행히 해결하여 잘 작동하는데 외부주소로 삭제는 불가할지 여쭙습니다.

감사합니다!

수다왕님과 BiHon님께 좋아요를 드린다는것이 채택하기를 눌러버렸네요~

질문글이 종결된 것 같아 다시 올리겠습니다.

수다왕님, BiHon님 정말 감사드립니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 123,163
© SIRSOFT
현재 페이지 제일 처음으로