2009-09-16 4 views
0

여기에 날짜 문제가 있습니다. 나는 mysql 테이블에 filedate라는 타임 스탬프 필드를 가지고있다. 그러나 그것을 선언하기 위해 여러 번 시도하고 또한 dd-mm-yy 형식으로 변환합니다. 불행히도 내가 그것을로드 할 때 날짜가 여전히 타임 스탬프 형식으로되어 있습니다. 그리고 나서 업로드 할 때 필자는 변수를 선언하지 않았습니다.타임 스탬프를 변수로 선언하고 ddmmyy 형식으로 변환하는 방법

나를 올바른 방향으로 안내하는 도움이 감사하게 받아 들여질 것입니다. 모든 코드는 다음과 같습니다. 업로드 및 설명을 표시하는 HTML 파일도 있습니다.

if (isset($_POST['action']) and $_POST['action'] == 'upload') 
{ 
    // Bail out if the file isn't really an upload 
    if (!is_uploaded_file($_FILES['upload']['tmp_name'])) 
    { 
     $error = 'There was no file uploaded!'; 
     include $_SERVER['DOCUMENT_ROOT'] . 'mediamouse/includes/error.html.php'; 
     exit(); 
    } 
    $uploadfile = $_FILES['upload']['tmp_name']; 
    $uploadname = $_FILES['upload']['name']; 
    $uploadtype = $_FILES['upload']['type']; 
    $uploaddesc = $_POST['desc']; 
    $uploaddata = file_get_contents($uploadfile); 
    $filedate = time(); 


    include 'db.inc.php'; 

    // Prepare user-submitted values for safe database insert 
    $uploadname = mysqli_real_escape_string($link, $uploadname); 
    $uploadtype = mysqli_real_escape_string($link, $uploadtype); 
    $uploaddesc = mysqli_real_escape_string($link, $uploaddesc); 
    $uploaddata = mysqli_real_escape_string($link, $uploaddata); 


    $sql = "INSERT INTO filestore SET 
      filename = '$uploadname', 
      mimetype = '$uploadtype', 
      description = '$uploaddesc', 
      filedata = '$uploaddata'"; 
    if (!mysqli_query($link, $sql)) 
    { 
     $error = 'Database error storing file!'; 
     include $_SERVER['DOCUMENT_ROOT'] . 'mediamouse/includes/error.html.php'; 
     exit(); 
    } 

    header('Location: .'); 
    exit(); 
} 

if (isset($_GET['action']) and 
     ($_GET['action'] == 'view' or $_GET['action'] == 'download') and 
     isset($_GET['id'])) 
{ 
    include 'db.inc.php'; 

    $id = mysqli_real_escape_string($link, $_GET['id']); 

    $sql = "SELECT filename, mimetype, filedata, DATE_FORMAT(STR_TO_DATE(filedate, '%d-%b-%Y'), '%Y.%m.%d') 
      FROM filestore 
      WHERE id = '$id'"; 
    $result = mysqli_query($link, $sql); 
    if (!$result) 
    { 
     $error = 'Database error fetching requested file.'; 
     include $_SERVER['DOCUMENT_ROOT'] . 'mediamouse/includes/error.html.php'; 
     exit(); 
    } 

    $file = mysqli_fetch_array($result); 
    if (!$file) 
    { 
     $error = 'File with specified ID not found in the database!'; 
     include $_SERVER['DOCUMENT_ROOT'] . 'mediamouse/includes/error.html.php'; 
     exit(); 
    } 

    $filename = $file['filename']; 
    $mimetype = $file['mimetype']; 
    $filedata = $file['filedata']; 
    $disposition = 'inline'; 

    if ($_GET['action'] == 'download') 
    { 
     $mimetype = 'application/octet-stream'; 
     $disposition = 'attachment'; 
    } 

    // Content-type must come before Content-disposition 
    header("Content-type: $mimetype"); 
    header("Content-disposition: $disposition; filename=$filename"); 
    header('Content-length: ' . strlen($filedata)); 
    echo $filedata; 
    exit(); 
} 

if (isset($_POST['action']) and $_POST['action'] == 'delete' and 
     isset($_POST['id'])) 
{ 
    include 'db.inc.php'; 

    $id = mysqli_real_escape_string($link, $_POST['id']); 

    $sql = "DELETE FROM filestore 
      WHERE id = '$id'"; 
    if (!mysqli_query($link, $sql)) 
    { 
     $error = 'Database error deleting requested file.'; 
     include $_SERVER['DOCUMENT_ROOT'] . 'mediamouse/includes/error.html.php'; 
     exit(); 
    } 

    header('Location: .'); 
    exit(); 
} 

include 'db.inc.php'; 

$sql = 'SELECT id, filename, mimetype, description, filedate 
     FROM filestore'; 
$result = mysqli_query($link, $sql); 
if (!$result) 
{ 
    $error = 'Database error fetching stored files.'; 
    include $_SERVER['DOCUMENT_ROOT'] . 'mediamouse/includes/error.html.php'; 
    exit(); 
} 

$files = array(); 
while ($row = mysqli_fetch_array($result)) 
{ 
    $files[] = array(
      'id' => $row['id'], 
      'filename' => $row['filename'], 
      'mimetype' => $row['mimetype'], 
      'description' => $row['description'], 
      'filedate' => $row['filedate']); 
} 

include 'files3.html.php'; 
?> 
+0

아 ... 훨씬 좋네요 존재하는 한,이 코드를 사용하여 성공적으로 서식을 수하지 않는 것 (? 내가 가정) – SeanJA

답변

0

당신은 삽입 할 때 당신의 선택 문

+0

덕분에 지금 덕분에 @Gumbo보고 html 파일의 줄에는 날짜를 올바르게 형식화하도록 2009 년 8 월 4 일자로 노력하고 있습니다. – Ddywalgi

2

사용 NOW()UNIX_TIMESTAMP()을 사용해야합니다. 형식을 지정할 때 TIMESTAMP 형식화 된 열을 구문 분석해야한다고 생각하지 않습니다. DATE_FORMAT은 타임 스탬프를 직접 사용할 수 있어야합니다.

이 작동 :

SELECT DATE_FORMAT(CURRENT_TIMESTAMP() , '%Y.%m.%d') 
+0

을 모두에게 감사드립니다. current_timestamp – SeanJA

+0

'CURRENT_TIMESTAMP'는 데이터 유형이 아닌 함수입니다. 'TIMESTAMP'는 데이터 유형입니다. –

관련 문제