안녕하세요
대학교 C언어 프로젝트 중인 학생입니다.
테트리스 관련해서 프로그램을 짜고 매주마다 발표를 해야하는데
인터페이스화면에 게임 한사람들의 데이터를가지고 순위를 매겨서 1~3위까지 출력하는 화면까지는 만들었는데
데이터중에 최근 5개의 데이터만을가지고 1~3위 까지의 순위를 다시 매겨오라고 하시더군요..
일단 칼럼이 몇갠지 세봐야하니깐 칼럼갯수를 먼저 긁어야하는데
49가 나왔다는것은(5개넘으면 -5시키려는 루프짤려고 일단 계산식만들어놔서..) 칼럼이 1개 생성되어있다는게 아스키로 표기되어있다는것 까지는 알겠는데요 다시 그만큼 숫자를빼줘서 쿼리문에 넣고 실행을할려고하니 저렇게 오류가뜨네요..
3시간째 찾아보고있는데 혹시 해결방법있나요? ㅠㅠ
루프상으로는 게시판확인 다음에 바로 테트리스게임 화면으로 넘어가는건데 printf 로 다 실험해보니 빨간선 부분부터 오류가뜹니다.
int sql_inter_sort() { //인터페이스 랭킹화면
int i = 0;
int column = 0;
len = mysql_query(conn, "select COUNT(*) from User_Score");
res = mysql_use_result(conn);
while ((row = mysql_fetch_row(res)) != NULL) {
column = *row[0];
}
if (column > 5) {
column -= 5;
}
printf("%d", column);
sprintf(myquery, "SET @rownum = 0; SELECT Name, level, Score, (SELECT COUNT(*) + 1 FROM User_Score WHERE Score > t.Score ) AS rank FROM User_Score AS t where (@rownum:=@rownum+1) > %d ORDER BY rank asc ", column);
len = mysql_query(conn, myquery);
res = mysql_use_result(conn);
---------------------------정상범위-----------------------------------
while ((row = mysql_fetch_row(res)) != NULL) {
---------------------------오 류-----------------------------------
gotoxy(46, 23); printf("명 예 의 전 당");
if (i == 0) {
gotoxy(40, 25); printf("금 상 : %-10s %-3s 점", row[0], row[2]);
}
if (i == 1) {
gotoxy(40, 26); printf("은 상 : %-10s %-3s 점", row[0], row[2]);
}
if (i == 2) {
gotoxy(40, 27); printf("동 상 : %-10s %-3s 점", row[0], row[2]);
break;
}
i++;
}
len = 0;
mysql_free_result(res);
return 0;
}