2012-04-10 2 views
0

PHP와 MySQL을 사용하여 검색 시스템을 개발하려하고 있는데 어떻게 검색합니까? 예 : 데이터베이스의 날짜 형식이 2012 년인 월 -03-26 (년/월/일)월/일/년 형식의 데이터베이스에서 이름으로 달 검색

+0

변환'march''3'와 당신은 3 월에 상관없이 날짜없는 모든 원하는 – zerkms

+0

검색 무엇을 해, 또는 날짜의 특정 달? –

+0

"데이터베이스의 날짜 형식이 [...] (년/월/일) 일 때"라고 말하면 날짜가 VARCHAR 열에 저장된다는 의미입니까? –

답변

2

mysql을 사용할 수 있습니다. 이 같은 MONTH() 기능 :

SELECT * FROM table WHERE MONTH(date_column) = 3 

예를 들어 3 월 검색하거나 또한 MONTHNAME()과 같은 기능이있다 할 :이 날짜를 처리 할 수있는 방법에 다소 원유 예입니다

SELECT * FROM table WHERE MONTHNAME(date_column) = 'march' 
+0

yup은 매력처럼 작동합니다. 감사합니다. – dames

+0

"편의성"프로그래밍의 이런 종류의 일은 기다리고있는 성능상의 재앙입니다. 어떤 크기의 데이터 세트에 대해서도 이것은 열에 대한 함수의 결과와 상수를 비교할 때 쓸모없는 지표를 렌더링하기 때문에 좋지 않은 접근법입니다. orourkek의 대답과 Catcall의 추가 코멘트를보세요 – nnichols

+0

조금 복잡해 보이며 사용자가 월 이름을 입력하면 검색이 어떻게됩니까? – dames

4

열 데이터의 형식에 따라이 같은 뭔가 일할 수 : (많은 솔루션 중 하나)

SELECT [whatever] 
FROM [wherever] 
WHERE `date` < '2012-03-31 23:59:59' 
AND `date` > '2012-03-01 00:00:00' 
+0

으로 저장됩니다. 예를 들어 행진을 검색하는 경우 어떻게 관련됩니까? – dames

+1

month() 및 monthname()을 사용하는 것보다 낫게 upvoted하지만'< '대신'date <'2012-04-01''을 사용하는 것이 더 낫습니다. 2012-03-31 23 : 59 : 59'' . –

+0

@Catcall - 좋은 지적. 그것은 모두 데이터가 어떻게 구조화되고, 검색된 후에 어떻게 사용될 것인지에 달려 있습니다. – orourkek

0

SELECT keyword , description , url FROM searchTable WHERE MONTH(addDate) = '3' 
SELECT keyword , description , url FROM searchTable WHERE MONTHNAME(addDate) = 'March' 
같은 것을 시도
0

검색 형태 -

<form method="get" action=""> 
    Year: 
    <select name="year"> 
     <option value="2012">2012</option> 
     <option value="2011">2011</option> 
     <option value="2010">2010</option> 
    </select> 
    Month: 
    <select name="month"> 
     <option value="1">January</option> 
     <option value="2">February</option> 
     <option value="3">March</option> 
    </select 
    <input type="submit" name="search" value="search"/> 
</form> 
<?php 

if (isset($_GET['search'])) { 
    $year = intval($_GET['year']); 
    $month = intval($_GET['month']); 

    $sql = "SELECT * 
      FROM `table` 
      WHERE `date` BETWEEN '$year-$month-01' AND LAST_DAY('$year-$month-01')"; 
} 
관련 문제