데이터베이스 테이블에서 CSV 파일을 만드는 스크립트가 있습니다.이 스크립트는 테이블의 모든 데이터를 출력한다는 점을 제외하고는 잘 작동합니다. 현재 로그인 한 사용자 만 데이터를 출력해야합니다. 제가 개발중인 앱은 사용자가 읽고 읽었던 책 목록을 저장할 수 있기 때문에 Excel로 가져올 수있는 책 목록을 다운로드 할 수있게하려는 것입니다. 예를 들면. (CSV 파일이 MS Excel뿐만 아니라 OpenOffice 등이 있기 때문에 최선의 선택이 될 것입니까?)테이블 데이터를 CSV 파일로 출력하기 위해 MySQL에서 임시 테이블을 만드는 방법은 무엇입니까?
레코드를 선택하기 위해 선택 쿼리를 사용하려면 임시 테이블을 만들어야한다는 것을 알았습니다 현재 로그인 한 사용자에 속합니다. WHERE username='$session->username'
을 사용하여 현재 사용자의 데이터에 액세스 할 수 있습니다.
CSV 파일에서 사용하기 위해 데이터를 출력하는 쿼리를 실행하고 그 후에 테이블을 삭제하려고 시도하기 전에 임시 테이블을 만드는 것만 큼 쉬울 것이라고 생각했지만 CSV 작성 코드를 시도했습니다. CSV 파일 전에 생성 된 임시 테이블로 다시 생성하고 다시 생성 된 CSV 파일에는 모든 사용자에 대한 모든 레코드가 포함됩니다.
데이터베이스 연결 등록 정보를 설정하는 구성 파일뿐만 아니라 파일을 생성하는 데 사용할 테이블이 변수 $table
으로되어 있으며,이 테이블을 내가 시도하는 임시 테이블의 이름으로 설정했습니다 만들다. 내가 임시 테이블을 사용하려고 할 때 완벽 여전히 모든 데이터를 출력하지만, 작품
<?
$link = mysql_connect($host, $user, $pass) or die("Cannot connect to the database." . mysql_error());
mysql_select_db($db) or die("Can not connect.");
$temp = mysql_query("CREATE TEMPORARY TABLE books_temp SELECT * FROM books WHERE username='$session->username'");
$tempresult = mysql_query($temp);
$result = mysql_query("SHOW COLUMNS FROM ".$table."");
$i = 0;
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
$csv_output .= $row['Field']."; ";
$i++;
}
}
$csv_output .= "\n";
$values = mysql_query("SELECT * FROM ".$table."");
while ($rowr = mysql_fetch_row($values)) {
for ($j=0;$j<$i;$j++) {
$csv_output .= $rowr[$j]."; ";
}
$csv_output .= "\n";
}
$filename = $file."_".date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("d-m-Y") . ".csv");
header("Content-disposition: filename=".$filename.".csv");
print $csv_output;
$query = 'DROP TABLE books_temp';
$result = mysql_query($query);
exit;
?>
모든 데이터를 출력합니다
이
내가있어 코드입니다. 덧붙여 말하자면, 끝 부분에서 임시 테이블을 삭제하는 명령을 제거하려고 시도했지만 아무런 차이가 없습니다. 또한 PhpMyAdmin을 체크인하면 임시 테이블이 생성되는 것처럼 보이지 않습니다. 나는 분명히 뭔가 잘못하고 있거나 뭔가를 놓치고 있지만, 나는 무엇이 있는지 전혀 모른다.
PHP를 통해 MySql에서 CSV로 내보내기가 여기에 응답되었습니다 : http://stackoverflow.com/questions/125113/php-code-to-convert-a-mysql-query-to-csv – Gordon
TEMPORARY 대신 VIEW 사용 TABLE – Dimme