디비연결후 iframe정보에서 youtube만 추출~ 제발 고수님 도와주세요

디비연결후 iframe정보에서 youtube만 추출~ 제발 고수님 도와주세요

QA

디비연결후 iframe정보에서 youtube만 추출~ 제발 고수님 도와주세요

본문

3717418047_1686177979.245.png

 

 

if($db) { echo "성공<br>"; }

else { echo "실패<br>"; }

 

$query = "SELECT MAX(wr_content) AS max_wr_content FROM g5_write_menu_02_01;";

 

$result = mysqli_query($db, $query);

if($result) { echo "전송되었습니다.<br>"; } else { echo "전송이 되지않았습니다.<br>"; }

 

일단 위의 구문으로 성공, 전송되었습니다. 가 나오는 것을 확인하여 디비연결과 sql 쿼리가 작동됨을 확인했습니다. 

 

그래서 아래와 같이 코드를 짜보았습니다. 

 

     <?php
        echo "Mysql연결테스트<br>";
        // mysqli_connect("호스트주소", "관리자", "아이디", "비밀번호", "데이터베이스명");
        $db = mysqli_connect("localhost", "아이디", "비번", "데이터베이스명");
        $sql = "SELECT MAX(wr_content) AS max_wr_content FROM g5_write_menu_02_01";
        $result = mysqli_query($conn, $sql);

        // php에서 사용가능한 데이터 형태인 배열로 반환
        $row = mysqli_fetch_array($result);
        var_dump($row);
        echo "<p>{$row['max_wr_content']}</p>";

        mysqli_close($conn);
    ?>
 

그런데 null 이라고 나오네요. 

 

고수님들의 조언을 부탁드립니다.

 

한가지 더 부탁드리고 싶은 것은

디비에서 가져온 정보에 iframe 구문이 나오는데

 

게시판 내용에 입력될 내용에 iframe외에도 내용이 들어갈 예정이므로

 

유튜브 주소만 추출하여 다시 iframe을 만들어 표현하고 싶습니다.

 

아래와 같은 소스가 있던데요. 위와 합해서 정확하게 표현할 수 있는 방법을 알려주시면 감사하겠습니다. 

php 문법이 처음이다보니 힘드네요. php 일주일차입니다. 도와주세요.

 

<?

$subject = '<iframe width="100%" height="270" src="https://www.youtube.com/embed/_3tpMK5-CZk" frameborder="0" allowfullscreen></iframe>';

$pattern ='/(src=|href=)(\'|\")?([^<>\s\'\"]*)(\'|\"|\s|)/i';

 

preg_match_all( $pattern, $subject, $matches );

 

echo $matches[3][0];

?>​ 

 

http://klesis38.cafe24.com

이 질문에 댓글 쓰기 :

답변 4


select wr_content from g5_write_menu_02_01 order by wr_id desc limit 1

로 하시면 마지막 wr_id에 wr_content를 가져올수 있습니다.

<?php
        // mysqli_connect("호스트주소", "관리자", "아이디", "비밀번호", "데이터베이스명");
        $conn = mysqli_connect("localhost", "아이디", "비번", "데이타베이스명");
        $sql = "select wr_content from g5_write_menu_02_01 order by wr_id desc LIMIT 1;";
        $result = mysqli_query($conn, $sql);
        $row = mysqli_fetch_array($result);
        echo $row[0];
        mysqli_close($conn);
    ?>
</div>


이렇게 해결했습니다. 답변 너무 감사드립니다. ㅜㅜ 감동입니다.

두번이나 감동감동

http://klesis38.cafe24.com

작은교회 도움주셔서 감사해요

이렇게 바꾸시면 될듯 합니다.

($db -> $conn 으로 바꾸시면 됩니다.)

    <?php
        echo "Mysql연결테스트<br>";
        // mysqli_connect("호스트주소", "관리자", "아이디", "비밀번호", "데이터베이스명");
        $conn = mysqli_connect("localhost", "아이디", "비번", "데이터베이스명");
        $sql = "SELECT MAX(wr_content) AS max_wr_content FROM g5_write_menu_02_01";
        $result = mysqli_query($conn, $sql);
        // php에서 사용가능한 데이터 형태인 배열로 반환
        $row = mysqli_fetch_array($result);
        var_dump($row);
        echo "<p>{$row['max_wr_content']}</p>";
        mysqli_close($conn);
    ?>

그리고 IFRAME 만드는건 복잡하게 생각하시지 말고 그냥 다시 html 태그를 입력하시면 됩니다.


<iframe width="100%" height="270" src="<?=$matches[3][0]?>"></iframe>

지난번에도 답변해주셔서 많은 문제를 해결했는데... 이렇게 다시 답변해주셔서 너무 감사드립니다.

말씀하신대로 적용을 해보았더니 아래와 같은 메세지가 나옵니다.


array(2) { [0]=> string(13) "
sdfsdf

" ["max_wr_content"]=> string(13) "
sdfsdf

" }


http://klesis38.cafe24.com

입니다.

데이타 베이스에 들어가니 쿼리가 잘못되었네요

sdfsdf 나오는 것이 맞네요.

select max(wr_id) from g5_write_menu_02_01 where (???)

해당 아이디에 최대값에 해당되는 wr_content의 내용을 불러오고 싶은데요.
어떻게 쿼리문을 짜면 좋을까요?


헌데 아래 표현은 왜 나오는지요?
array(2) { [0]=> string(13) "
" ["max_wr_content"]=> string(13) "

참고를 해보시겠어요?


<?php
$subject = '<iframe width="100%" height="270" src="https://www.youtube.com/embed/_3tpMK5-CZk" frameborder="0" allowfullscreen></iframe>';
$pattern = '/<iframe.*?src="(.*?)".*?>/i';

preg_match($pattern, $subject, $matches);

if (!empty($matches[1])) {
    $iframeSrc = $matches[1];
    echo $iframeSrc;
} else {
    echo "매칭된 iframe 주소가 없습니다.";
}
?>
 

답변을 작성하시기 전에 로그인 해주세요.
전체 21
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT