MySQL 데이터 베이스의 내용을 사이트에 삽입하는 방법

안녕하세요

어떠한 프로그램을 이용해서 사용자들이 접속하면 그 사용자들의 접속내용을 데이터베이스에 추가하겠끔 설정을 해놨는데요

프로그램에서 데이터베이스에 접근하여 내용을 기록하는것까지는 해결이되었는데 (프로그램과 MySQL 연동 해결완료)

워드프레스로 만든 사이트에 데이터베이스의 내용을 나타내려면 어떻게 해야될지 모르겠습니다

 

예를들어 워드프레스로 만든 사이트에 페이지를 추가하여 어떠한 코드를 삽입하여 그칸에는 데이터베이스의 내용이 표시되겠끔하고싶은데요

도저히 어떻게 시작해야될지 모르겠습니다

 

프로그램과 연동중인 데이터베이스와 워드프레스 데이터베이스는 같은 서버에서 구동중입니다

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요.

    워드프레스 카테고리에 질문 올려주시면 되겠습니다~^^

     

    우선 워드프레스 페이지에 어떠한 내용을 출력하고 싶으시다면,

    숏코드에 대해서 알아보시면 도움이 됩니다.

    https://codex.wordpress.org/Shortcode_API

    아래와 같은 코드를 작성했다면 [my_db_print] 숏코드를 사용할 수 있습니다.

    add_shortcode('my_db_print', 'my_db_print_functoin');
    function my_db_print_functoin($atts=array()){
    	ob_start();
    	
    	// 이쪽에 원하는 내용을 출력하세요.
    	echo '이쪽에 원하는 내용을 출력하세요.';
    	
    	return ob_get_clean();
    }

     

    워드프레스에서 DB에서 데이터를 가져오거나 입력하려면 $wpdb를 사용하시면 됩니다.

    https://codex.wordpress.org/Class_Reference/wpdb

    add_shortcode('my_db_print', 'my_db_print_functoin');
    function my_db_print_functoin($atts=array()){
    	global $wpdb;
    	
    	ob_start();
    	
    	// $wpdb->get_results()를 사용하면 DB에서 여러줄 데이터를 가져올 수 있습니다.
    	$results = $wpdb->get_results("SELECT~");
    	print_r($results);
    	
    	return ob_get_clean();
    }

     

    도움이 되시길 바랍니다.

    고맙습니다.

  • 워드프레스의 데이터 베이스(A) 있고 제가 개인적으로 구동중인 프로그램 데이터 베이스(B)가 따로있는데

    그 둘의 데이터베이스를 담고있는 서버는 같은 서버입니다

    위의 숏코드에 대해 이해가 잘 안되는데요

    --------------------------------------------

    워드프레스 데이터베이스 : wps

    프로그램 데이터베이스 : gtp

    예를들어 gtp란 데이터베이스의 테이블 goo_last의 값을 읽어와야할때 워드프레스 페이지에서 php 페이지 플러그인을 이용하여

    코드를 삽입할때 어떤 코드를 입력해야할까요?

    'my_db_print'는 워드프레스 데이터베이스에서 읽어오는것같은데 다른 데이터베이스에서 읽어와야되는 상황이거든요...

  • 우선, 숏코드는

    워드프레스 페이지 중간에 프로그램을 실행하고 출력할 수 있게 하는 방법입니다.

     

    그리고 더 궁금해 하시는 건 다른 DB에 연결하는 방법인 듯하군요.

    아래 처럼 새롭게 wpdb 클래스를 초기화해서 그 변수를 사용하시면 됩니다.

    새로운 MySql DB에 접속할 수 있습니다.

    $mydb = new wpdb('username', 'password', 'database', 'localhost');
    $results = $mydb->get_results("SELECT~");
    print_r($results);

     

    고맙습니다.

  • 정확히 어떤부분에 추가해야될지 모르겠습니다

    아직까지 해매고있는데요...

     

    워드프레스 데이터베이스 : wps

    프로그램 데이터베이스 : gtp

    예를 들어 gtp란 데이터베이스의 테이블 goo_last의 값을 읽어와야 할 때 워드프레스 페이지에서 php 페이지 플러그인을 이용하여

    코드를 삽입할 때 어떤 코드를 입력해야 할까요?

     

    이렇게 코드를 작성하려고 하는데

    워드프레스 테마의 functions.php 파일에 내용을 추가하는 건지 아니면 다른 파일에 어떠한 내용을 추가해야 되는 건지 자세히 모르겠습니다

    처음 접해보는 상황이라서 잘 모르겠습니다. 답답하시겠지만 좀 더 자세히 알려주실 수 있으신가요?

  • 안녕하세요 두지스님 ㅎㅎ

    데이터베이스 접속해서 원하는 데이터를 검색해서

    그 내용을 원하는 위치에 출력하는 것은 거의 책한권(?) 분량의 설명이 될 수 있습니다.

     

    나름대로 쉽고 상세하게 설명을 드리고 있는데요.

    전체를 생각하면 코드량이 상당히 많고, 복잡해질 수 있습니다.

    그러니 부분부분 해보세요.

     

    우선 데이터베이스 접속해서 데이터는 가져오실 수 있는지요?

    아래의 코드를 테마의 functions.php 파일에 추가해보세요.

    (혹은 플러그인을 새로 만드셔도 되긴 합니다. 잘 아는곳에 추가해주세요.)

    add_action('init', 'my_db_test');
    function my_db_test(){
    	$mydb = new wpdb('username', 'password', 'database', 'localhost');
    	$results = $mydb->get_results("SELECT~"); // 데이터베이스 쿼리는 직접 작성해주세요.
    	print_r($results);
    }

    쿼리를 직접 작성해서 원하는 결과가 나오는지부터 확인을 해보세요.

     

    그리고 위에 있는 숏코드 예제도 테스트를 해보세요.

     

    각각 테스트 해보시고 어떻게 되는지도 알려주시겠어요?

    고맙습니다.

  • 답변 감사드립니다

    지금 적용해보고있는데요

    제가 지금 적용한일에 대해 설명을 드리겠습니다

    첫번째로

    add_action('init', 'my_db_test');
    function my_db_test(){
    $mydb = new wpdb('username', 'password', 'database', 'localhost');
    $results = $mydb->get_results("SELECT~"); // 데이터베이스 쿼리는 직접 작성해주세요.
    print_r($results);
    }

    위와같은 코드를 테마의 functions.php에 추가입력했습니다

     

    두번째부터는 어떻게 해야될지 모르겠습니다

    functions.php 파일에

    add_shortcode('my_db_print', 'my_db_print_functoin');
    function my_db_print_functoin($atts=array()){
    global $wpdb;

    ob_start();

    // $wpdb->get_results()를 사용하면 DB에서 여러줄 데이터를 가져올 수 있습니다.
    $results = $wpdb->get_results("SELECT~");
    print_r($results);

    return ob_get_clean();
    }

    이 코드를 추가해야되나요?

  • 안녕하세요.

    function.php 파일이 아니라 functions.php 파일에 추가하신거죠? (파일명 잘못 올려주신 듯 해서요)

    functions.php 파일에 아래 코드를 추가해서 테스트 해보세요~

    아래 코드를 추가하신 후

    페이지, 포스트, 텍스트 위젯 등에 [my_db_print] 이와 같은 숏코드를 삽입해서 내용을 확인하실 수 있습니다.

    add_action('init', 'my_db_test');
    function my_db_test(){
    	global $mydb;
    	$mydb = new wpdb('username', 'password', 'database', 'localhost');
    }
    
    add_shortcode('my_db_print', 'my_db_print_functoin');
    function my_db_print_functoin($atts=array()){
    	global $mydb;
    	ob_start();
    	
    	$results = $mydb->get_results("SELECT~");
    	print_r($results);
    
    	return ob_get_clean();
    }

     

    어떤 프로그램을 만드는지 모르기 때문에

    이렇게 단편적으로 조언을 드릴 수 밖에 없겠습니다.

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요