2010-06-30 1 views
1

"loginid"및 "datesubmitted"라는 필드를 포함하는 "제출"이라는 테이블을 사용하고 있습니다. "Loginid"는 정수이고 "datedubmitted"는 타임 스탬프입니다.사용자가 달력 당 10 개 이상의 항목을 포함하는지 여부를 결정하는 함수 만들기

주어진 "$ uid"가 "제출"에 오늘 행의 날짜가 "datesubmitted"인 행이 11 개 이상인 "loginid"와 같은지 여부를 결정하는 함수를 만들고 싶습니다.

나는 이것을 만드는 방법을 잘 모르겠지만, 이것은 내가 지금까지 무엇을 가지고 :

function uidlimit($uidinput){ 
    $queryuid = "select uid from submission where datesubmitted > '$todaysDate 00:00' and date < '$todaysDate 23:59' group by uid having count() > 11"; 
    $uidresult = mysql_query($queryuid); 

나는 그런 기능을 할 수있는 방법에 어떤 조언을? 사전에

감사합니다,

편집 :

$queryuidcount = "select loginid from submission where TO_DAYS(datesubmitted) = TO_DAYS(NOW()) AND loginid = '$uid'"; // Remove line breaks 
$uidresult = mysql_query($queryuidcount); 

if (mysql_num_rows($uidresult) >= 11) 
{ 

    session_write_close(); 
    header("Location:http://www.domain.com/sample/index.php"); 
    exit; 

} 
+0

"11 개 이상의 행"이 얼마나 많은지 계산하고 싶다면 "count()> = 11"을 사용해야합니다. 당신은 등호를 잊어 버렸습니다. – CaseySoftware

+0

Pekka의 업데이트를 확인하십시오! –

답변

2

이유는 단순히 주어진에 대한 제출의 수를 얻을 수 없습니다 : 페카 덕분에, 나는 어떤 작품이를 사용하여 종료 사용자, PHP로 계산합니까?

function uidlimit($uidinput){ 
    $uidinput = mysql_real_escape_string($uidinput); // Don't forget to sanitize! 
    $queryuid = "select count(uid) as cnt from submission 
       where TO_DAYS(datesubmitted) = TO_DAYS(NOW()) 
       AND uid = '$uidinput'"; // Remove line breaks 
    $uidresult = mysql_query($queryuid); 
    $record = mysql_fetch_row($uidresult); 
    if ($record->cnt >= 11) echo "11 or more!"; 
    else echo "less than 11!"; 
+0

고마워요.이 때문에 저와 비슷한 뭔가가 생겼습니다. 그것은 기능이 아니지만 내가 원하는 것을합니다. 위의 질문에 추가했습니다. – John

+0

이것은 단지 count (*)를 사용해야합니다. 이 쿼리의 행에있는 모든 데이터를 반환 할 필요가 없습니다. –

+0

@mike 당신은 완전히 옳습니다. 나는 눈이 멀었 음에 틀림 없다! 수정 됨. –

관련 문제