2012-04-30 8 views
1

다음 문제를 해결하는 가장 좋은 방법은 무엇입니까? CSV 형식의 데이터베이스에서 다양한 범위의 레코드를 다운로드 할 수있는 옵션을 고객에게 제공해야합니다. 나는 다음과 같은 일을 생각하고 있었다.PHP/MYSQL을 사용하여 즉시 CSV 내보내기/다운로드

  1. 사용자에게 웹 양식을 제공하여 DB에서 어떤 행을 가져올 지 결정합니다.
  2. 적절한 레코드를 가져 와서 반환 데이터에서 큰 문자열을 만듭니다.
  3. 다운로드 할 CSV를 만드는 스크립트에 문자열을 게시하십시오.

위의 시도를하기 전에 더 나은 방법이 있는지 궁금한가요?

감사합니다^_^

당신은 MySQL을의 SELECT ... INTO OUTFILE 즉시 CSV에 결과를 얻을 수 있습니다

답변

2

. 그런 다음 해당 CSV 파일의 내용 만 사용자에게 다시 읽는 것이 필요합니다.

이것은 직접 CSV를 구성하는 것보다 안전합니다 (필드 구분 기호를 올바르게 이스케이프 처리하는 방법 등을 고려해야합니다). 그러나 그런 식으로하고 싶다면 fputcsv(STDOUT, $results)을 사용하여 일반적인 함정을 피하는 것이 좋습니다.

+0

나는 mysql에서 바로 할 수있는 아이디어가 마음에 든다. 어떻게하면 결과 파일을 다운로드 할 것인가? – cosmicsafari

+0

사용자의 폼 제출을 처리하는 PHP 스크립트는 MySQL이 출력 한 파일에 대해 ['readfile()'] (http://php.net/manual/en/function.readfile.php)를 호출 할 수 있습니다. MIME 타입을 적절하게 설정하고 ('text/csv') 브라우저가 윈도우에 파일을 표시하는 대신 파일을 저장하라는 메시지를 표시하도록하려면'Content-disposition : attachment; filename = foo도 설정하십시오. csv'. – eggyal

+0

스매싱 나는 이것이 내가 배쉬에게 줄 것이라고 생각한다. 고마워요^_ ^ – cosmicsafari

관련 문제