Czy pracownik jest na urlopie (MySQL)

0

Mam takie zapytanie do sprawdzania czy pracownik jest na urlopie:

SELECT 
DATE_ADD(data_start, INTERVAL `ilosc_dni` DAY) AS do_kiedy 
FROM `urlopy` 
WHERE CURDATE() BETWEEN data_start AND DATE_ADD(data_start, INTERVAL `ilosc_dni` DAY) 
AND id_pracow = 1;

W phpMyAdmin jak jest na urlopie to dostaje date kiedy wraca. Jak nie jest na urlopie to dostaje:
MySQL zwrócił pusty wynik (zero wierszy). ( Wykonanie zapytania trwało 0.0002 sekund(y) ).

W programie w C dziala mi wyswietlanie daty kiedy wraca, ale nie moge wyłapać sytuacji, gdy pracownik nie jest na urlopie (crash).

Kod:

mysql_query(myData, "SELECT DATE_ADD(data_start, INTERVAL `ilosc_dni` DAY) AS do_kiedy FROM `urlopy` WHERE CURDATE() BETWEEN data_start AND DATE_ADD(data_start, INTERVAL `ilosc_dni` DAY) AND id_pracow = 1;");
if(mysql_errno(myData))
{
	MessageBox(0, mysql_error(myData), 0, 0);
	mysql_close(myData);
	break;
}

MYSQL_RES *result;
MYSQL_ROW row;

result = mysql_store_result(myData);

//zero wierszy czyli NULL, ale nie wyswietla komunikatu...
if(result == NULL)
{
	MessageBox(0, "Pracownik nie jest na urlopie.", "Info", 0);
	mysql_close(myData);
	break;
}

if(mysql_errno(myData))
{
	MessageBox(0, mysql_error(myData), 0, 0);
	mysql_close(myData);
	break;
}

row = mysql_fetch_row(result);

//zero wierszy czyli NULL, ale nie wyswietla komunikatu...
if(row[0] == FALSE)
{
	MessageBox(0, "Pracownik nie jest na urlopie.", "Info", 0);
}
else
{
	char szStatus[128] = "\0";

	StringCchPrintf(szStatus, 128, "Pracownik ma urlop do dnia %s.", row[0]);
	
	//to sie poprawnie wyswietla gdy jest na urlopie
	MessageBox(0, szStatus, "Info", 0);
}

mysql_free_result(result);

mysql_close(myData);
0

Nie myślę dzisiaj wcale, jakby ktoś szukał rozwiązania:

int num_rows = (int)mysql_num_rows(result);

if(num_rows == 0)
{
	MessageBox(0, "Pracownik nie jest na urlopie.", "Info", 0);
	mysql_close(myData);
	break;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1