2009-10-10 4 views
1

어떻게 접근했는지에 대한 더 나은 제안은 지금까지 제가 한 일입니다. 지금 당장 날짜는 올바른 년 - 월 - 일 형식으로 입력해야합니다. 드롭 다운을 사용하여이 작업을 자동화하는 방법이 있습니까? 드롭 다운의 정보를 결합하여 SQL INSERT INTO 명령을 사용하여 하나의 필드에 제출하는 방법을 모르겠습니다. 이것은 빠른 시각적으로 보이는 것입니다. SQL을 사용하여 mysql 데이터베이스에 날짜 입력하기 INSERT

다음은 아래 코드의 예입니다.

$date = $_POST['date']; 
$title = $_POST['title']; 
$entry = $_POST['entry']; 





if(($date !="") && ($title !="") && ($entry !="")) { 

$sql = "INSERT INTO news (date,title,entry)VALUES(
\"$date\", 
\"$title\", 
\"$entry\" 
)"; 

$results = mysql_query($sql)or die(mysql_error()); 

} 
?> 







<form name="formS" method="post" action="insert.php"> 
<p> 
Date:<input type="text" name="date" id="date" /> 

</p> 

<p> 
Title<input type="text" name="title" id="title" /> 
</p> 
<p> 
Entry:<textarea name ="entry" ></textarea> 
</p> 

<p> 
Submit:<input type="submit" name="submit" id="submit" /> 
</p> 


</form> 
+1

질문과 관련이 없지만 htt p : //en.wikipedia.org/wiki/SQL_injection :) –

+0

기본적으로 하나의 명령문에서 여러 개의 쿼리를 실행할 수 없으므로 인서트로 SQL 삽입을 두려워하지 않아도됩니다 (PHP를 잠그는 PHP라고 생각합니다) ,하지만 ... +1 중요한 전체적인 고려 사항이기 때문에 그것을 가져 오는 +1 : – hlpiii

+0

나는 그것을 조사합니다. –

답변

3

한 자유 형식의 날짜 입력 필드는 필요에 따라 잘 될 수있는 상자 아래 여러 드롭으로 날짜를 승인하고 다음 데이터베이스에 입력하기 전에를 결합 할 수 있습니다 . 이것은 사람들에게 날짜를 입력하는 방법에 많은 유연성을 줄 것입니다. 예를 들어 누군가가 "어제"또는 "7 일 전"을 입력하면이 기능이 작동합니다.

 
$date = date("Y-m-d", strtotime($_POST['date'])); 

데모 : (2009년 10월 9일에서 실행)

 
$date_expressions = array(
    "yesterday", 
    "tomorrow", 
    "7 days ago", 
    "next year", 
    "last month", 
    "10 jan 08" 
); 

date_default_timezone_set("America/Los_Angeles"); 

echo "<pre>"; 
foreach ($date_expressions as $date_expression) { 
    $date = date("Y-m-d", strtotime($date_expression)); 
    echo "{$date_expression} = {$date}\n"; 
} 
echo "</pre>"; 

출력 : 날짜는 다중 입력이있는 경우

 
yesterday = 2009-10-08 
tomorrow = 2009-10-10 
7 days ago = 2009-10-02 
next year = 2010-10-09 
last month = 2009-09-09 
10 jan 08 = 2008-01-10 
+0

대단하군요! 어떻게하면 내 테이블에서 'date'행을 가져 와서 '내일 7 일 전 내일'등의 출력을 반대로 진행할 것인가? –

+0

체크 아웃 : http://stackoverflow.com/questions/11/how-do-i-calculate-relative-time – hlpiii

0

당신은 단순히

$date = $_POST['dateyear']."-".$_POST['datemonth']."-".$_POST['dateday']; 
+0

또한 입력을 살균/필터링해야합니다. –

+0

고마워요. 제가 정확히 알아 내려고했던 것이 었습니다. sanatize/filter는 무엇을 의미합니까? –

0

, 당신은 이런 식으로 결합 할 수 있습니다 :

$date = sprintf('%04d-%02d-%02d', $_POST['date_year'], $_POST['date_month'], $_POST['date_day']); 
관련 문제