println
1k
2018-01-13 12:30:08 작성 2018-01-13 12:30:58 수정됨
5
292

php 디버깅해주는 사이트 있나요?


예전에 html을 디버깅 해주는 해외사이트는 봤는데 php도 그런 사이트가 있는지 궁금합니다

현재 동영상 강의를 보고 따라하고 있는데 15:13 부분에서 아무것도 안뜨길래 멘붕오고

대체 어디에 문제가 있는건지 도무지 모르겠어서 일단 php 부분을 의심중입니다.


제가 php를 메모장이나 비쥬얼스튜디오 코드 같은 툴로 작성을 해서 에러 로그 같은게 안나옵니다.

유튜브 댓글을 보면 group by절에 명시되지 않은 컬럼이라고 에러가 나온다는 내용도 있는데 저는 그런 에러 메시지를 볼 수가 없어서 이놈을 어디서 디버깅을 해야 할지 모르겠습니다. 에러 메시지라도 나오면 제가 그걸 토대로 구글링을 해볼텐데 안드로이드 스튜디오도 에러 0으로 나오고 갑갑하네요 ㅋㅋ


php 파일

<?php
    // 강의 경쟁률 연동시킬 때 시작되는 코드
    // 데이터 전송 및 보여주는 방식: UTF-8 방식
    // 이후 로컬호스트, DB아이디, DB비밀번호, 카페24 아이디
    header("Content-Type: text/html; charset=UTF-8");
    $con = mysqli_connect("localhost""DB_ID""DB_Password""MY_ID");
    mysqli_set_charset($con,"utf8");  // 댓글 보고 추가로 넣은 부분
 
 
    // 해당 유저의 ID를 입력 받아서
    $userID = $_GET["userID"];
 
    // 스케쥴이란 테이블에서 검색 
    // 현재 유저가 신청했던 모든 강의를 불러와서 (예: coursePersonnel은 그 강의가 제한하는 인원수)
    // COUNT(SCHEDULE.courseID)에서 그 강의를 신청한 다른 사람들의 명수를 그대로 가져올 수 있도록 한다.
    $result = mysqli_query($con"SELECT COURSE.courseID, COURSE.courseGrade, COURSE.courseTitle, COURSE.courseDivide, COURSE.coursePersonnel
    , COUNT(SCHEDULE.courseID), COURSE.courseCredit FROM SCHEDULE, COURSE WHERE SCHEDULE.courseID IN (SELECT SCHEDULE.courseID FROM
    SCHEDULE WHERE SCHEDULE.userID = '$userID') AND SCHEDULE.courseID = COURSE.courseID GROUP BY SCHEDULE.courseID");
 
    $response = array();
 
    // 그런 식으로 강의를 불러와서 전부 출력 
    // 배열 형태로 불러와서 하나하나씩 강의 정보를 불러온다.
    while($row = mysqli_fetch_array($result)) {
        array_push($responsearray("courseID"=>$row[0], "courseGrade"=>$row[1], "courseTitle"=>$row[2], "courseDivide"=>$row[3], 
            "coursePersonnel"=>$row[4], "COUNT(SCHEDULE.courseID)"=>$row[5], "courseCredit"=>$row[6]));
    }
 
    echo json_encode(array("response"=>$response), JSON_UNESCAPED_UNICODE);
    mysqli_close($con);
?>
cs





안드로이드 파일 소스도 필요하면 올리겠습니다

(지난번에 싹다 올렸다가 너무 길다는 말을 듣고... 에러는 0입니다)

0
0
  • 답변 5

  • cherryred
    31
    2018-01-13 13:05:43
    error_reporting(E_ALL);
    ini_set('display_errors', 1);

    이렇게 하시면 에러 보실 수 있을 거에요.

    1
  • println
    1k
    2018-01-13 13:12:33

    맨밑에 적어주면 되나요? 알려주셔서 감사합니다 :)

    0
  • cherryred
    31
    2018-01-13 13:15:28

    println 아니요, 하단이 아니라 php 파일 최상단에 정의해주세요!

    1
  • bosskmk
    488
    2018-01-13 13:22:48

    Group by 절에 명시 되지 않은 컬럼 오류

    이건 Mysql, MariaDB에서 설정에 따라서 오류가 될 수 도 있고 아닐 수 도 있습니다.

    예전에 작성한 다른 사이트에 있는 링크를 걸어드리겠습니다.

    링크


    PHP 에러 리포팅

    error_reporting(E_ALL);
    ini_set('display_errors', 1);

     cherryred 님이 말씀해주신 것 처럼 php 상단에 정의해주시면 오류 메시지를 보실 수 있습니다.


    PHP 디버깅

    Xdebug 라는 확장 모듈을 설치해서 디버깅 할 수 있습니다.

    컴파일 언어 처럼 break 포인트를 걸어서 해당 지점에서 변수 값 등을 확인 하실 수 있습니다.

    1
  • println
    1k
    2018-01-13 17:54:50 작성 2018-01-13 17:55:41 수정됨

    에러 잡아냈습니다. 하하하하하하하

    courseRival = object.getInt("COUNT(SCHEDULE.courseID)");

    안드로이드 스튜디오의 이 부분에서 courseID 뒤에 붙어있는 괄호 )를 빼먹었더군요


    하하하하하하하;

    답장해주셔서 감사합니다

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.