2010-05-03 3 views
3
$LDATE = '#' . $_REQUEST['LDateDay'] . '/' . $_REQUEST['LDateMonth'] . '/' . $_REQUEST['LDateYear'] . '#'; 
    $RDATE = '#' . $_REQUEST['RDateDay'] . '/' . $_REQUEST['RDateMonth'] . '/' . $_REQUEST['RDateYear'] . '#'; 
    include("../../sql.php"); 
    $myconn2 = mysql_connect(/*removed*/, $username, $password); 
    mysql_select_db(/*removed*/, $myconn2); 
    $LSQLRequest = "SELECT * FROM flight WHERE DepartureDate = ".$LDATE; 
    $LFlights = mysql_query($LSQLRequest, $myconn2); 
    $RSQLRequest = "SELECT * FROM flight WHERE DepartureDate = ".$RDATE; 
    $RFlights = mysql_query($RSQLRequest, $myconn2); 

모든 $ _REQUEST가 일/월/년 필드의 해당 필드에 대한 유효한 숫자 값이라고 가정하면 LFlight 및 RFlight는 어떻게 잘못 될 수 있습니까? 데이터베이스 전체를 폴링 할 때 나는 수백 가지의 결과를 얻었으므로 데이터베이스와 연결 데이터가 좋으며 DepartureDate 필드도 존재한다는 것을 알고 있습니다.PHP가 잘못된 MySQL 리소스를 반환합니다.

편집 : DB의 모든 내용을 가져 오면 날짜가 "YYYY-MM-DD"형식으로 되돌아 왔습니다. 그래서 < 10, 그 다음 0D라면 D를 문자열로 변환했습니다. 그런 다음 YYYY-MM-DD 문자열을 작성했습니다. 아직 결과가 없습니다. 오류는 없지만 결과는 없습니다. 나는 그들에게 기록이 있다는 것을 알고있는 가치들을 수긍한다.

+0

[경고 : mysql_fetch_ *는 매개 변수 1이 리소스가 될 것으로 예상하고 부울은 오류가 발생했습니다] (http://stackoverflow.com/questions/11674312/warning-mysql-fetch-expects-parameter-1-to-be) -resource-boolean-given-error) –

답변

1

MySQL은 날짜 리터럴을 YYYY-MM-DD 형식으로 만 인식하거나 약간의 변형이 있습니다. DD-MM-YYYY이 MySQL에 의해 인식되지 않습니다. 다른 답변에서 언급 한 바와 같이

는 날짜 리터럴 문자열 리터럴처럼 작은 따옴표에 있어야합니다, 또한 http://dev.mysql.com/doc/refman/5.1/en/datetime.html

에서 자세한 내용을 참조하십시오. 당신이 따옴표를 포함하지 않는 경우


, 당신이 보여 코드는 다음과 같습니다

SELECT * FROM flight WHERE DepartureDate = 2010/5/3. 

3으로 나눈 5로 나눈 산술 식 2010 년 134.0 같다. 이것은 어떤 날짜와도 일치하지 않을 것입니다.

SELECT CURDATE() = 2010/5/3; 

false를 반환합니다.

SELECT CURDATE() = '2010/5/3'; 

사실을 반환합니다.

+0

작은 따옴표가 맞았습니다. 이 대답은 두 번이고 두 가지 문제가 있습니다. 감사! 일이 끝나면 답을 받아 들일 것입니다 (6 분). – Puppy

+0

감사합니다. 따옴표 문제에 대한 자세한 내용을 추가하여 다른 독자들에게 좋은 설명을 줄 것입니다. –

1

단일 qoutes의 쿼리에 Ldate 및 Rdate를 포함시켜 봅니다.

$LSQLRequest = "SELECT * FROM flight WHERE DepartureDate = '".$LDATE."'"; 
$RSQLRequest = "SELECT * FROM flight WHERE DepartureDate = '".$RDATE."'"; 

나는 또한 # 기호가 필요 없다고 생각합니다. 그것은 대개 Access입니다.

$LDATE = $_REQUEST['LDateDay'] . '/' . $_REQUEST['LDateMonth'] . '/' . $_REQUEST['LDateYear'] ; 
$RDATE = $_REQUEST['RDateDay'] . '/' . $_REQUEST['RDateMonth'] . '/' . $_REQUEST['RDateYear'] ; 
+0

고마워요. 당신이 옳았. 나는 아래 논평가가 움켜 잡고 있지만 당신을 업 그레 이드 할 다른 문제가있었습니다. – Puppy

관련 문제