CSVダウンロードその2

MySQLダウンロードその2

MySQLのデータをphpでCSVダウンロード

テーブルデータを全てダウンロードする。

test_table.php

<?php
header(“Content-Type: application/octet-stream”);
header(“Content-Disposition: attachment; filename=test_table.csv”);

$server = “localhost”; // サーバー名
$id = “test_id”; // ユーザーID
$passwd = “pass”; // パスワード
$dbname = “test_db”; // データベース名

$sql = “SELECT * FROM test_table”; // SQL文

$db=mysql_connect($server,$id,$passwd);
mysql_select_db($dbname,$db);
mysql_query(“SET NAMES sjis”)
or die(“can not SET NAMES sjis”);

$rs=mysql_query($sql,$db);
$fields = mysql_num_fields($rs);
if(!$fields) return;
while($row = mysql_fetch_array($rs)) {
for($j=0; $j<$fields; $j++) {
echo ‘”‘.addslashes($row[$j]).'”‘;
if($j<$fields-1) echo ‘,’;
}
echo “\n”;
}
exit;

csvサンプルダウンロード

フリー住所データ 沿線データ

不動産サイトなどで欠かせない住所と路線マスターデータ

各種郵便番号データのダウンロード
郵便データは丁目がないので

国土交通省国土計画局から
位置参照情報ダウンロードサービス

駅データ 無料ダウンロード サービス 『駅データ.jp』
CSVで落としたデータを

データベースへ入れる。

smarty で日付け比較 新着などnew表示

smarty 日付け比較

$data に登録された日付けが入っているとして

(2010-12-07 09:01:03 とか)

$smarty.nowで今日の日付け

-24*60*60*7 で一週間まえの日付けを計算して

{$smarty.now-24*60*60*7}

比較する。

{if $data > $smarty.now-24*60*60*7|date_format:”%Y-%m-%d”}
NEW!
{else} 
{/if}
今日から 1週間前の日付けよりあとであればNEWで

一週間前より前の日付けなら表示しない。

$todays = date(“Y-m-d”);
$daysago = date(“Y-m-d”, strtotime(“$todays -7 day”));
$smarty->assign(“daysago”, $daysago);

テンプレート
$updatedaysに日付データが入ってるとして(2012-09-09とか)

{if $updatedays|date_format:”%Y-%m-%d” > $daysago|date_format:”%Y-%m-%d”}
new!{/if}

MySQL日付け

mySQLで今日より先の日付けを取得する

一週間後の日付け
カラム名  = DATE_ADD(CURRENT_DATE(),INTERVAL 1 WEEK)
一ヶ月後の日付け
カラム名  = DATE_ADD(CURRENT_DATE(),INTERVAL 1 MONTH)
一年後の日付け
カラム名  = DATE_ADD(CURRENT_DATE(),INTERVAL 1 YEAR)

日付け比較
カラムに日付けが入っているとして
1週間以内
(カラム名  BETWEEN (NOW() – INTERVAL 1 WEEK) AND NOW())
1ヶ月以内
(カラム名  BETWEEN (NOW() – INTERVAL 1 MONTH) AND NOW())
1年以内
(カラム名  BETWEEN (NOW() – INTERVAL 1 YEAR) AND NOW())

MySQL でカンマ入力された値

0,1,2,3,4,5,6,7,8,9,10,11,12とフィールドに値が入っている場合

0,1,2だけ取りたい場合に

10 11 12も取れてしまう。

フィールドにカンマで入力された値を取る場合

FIND_IN_SET()

を使う。

FIND_IN_SET(‘0’,フィールド名)

複数の場合
FIND_IN_SET(‘0’,フィールド名) and FIND_IN_SET(‘1’,フィールド名) and FIND_IN_SET(‘2’,フィールド名)

FIND_IN_SET()

php MySQL CSVアップロード

 

 

csv.php
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=EUC-JP”>
<title>アップロードCSV</title>
</head>
<body>
<FORM enctype=”multipart/form-data”action=”csv.php”method=”POST” >
<INPUT type=”hidden” name=”MAX_FILE_SIZE” value=”200000″>
アップロードするファイル:
<INPUT name=”upfile” type=”file” >
<INPUT type=”submit” value=”CSV アップロードする”>
</FORM>
<?php
// データベース
$link mysql_connect(‘localhost’‘mysql_user’‘mysql_password’);
mysql_select_db(‘dbname’, $link);
// File Upload
if (is_uploaded_file($_FILES[“upfile”][“tmp_name”])) {
if (move_uploaded_file($_FILES[“upfile”][“tmp_name”], “csv/” . $_FILES[“upfile”][“name”])) {
chmod(“csv/” . $_FILES[“upfile”][“name”], 0777);
$upload = “./csv/”.$_FILES[“upfile”][“name”];
$res = $upload;
if ( $res ) {
$fp = fopen($upload, “r”);
while( ! feof($fp) ) {
$csv = fgets($fp);
$csv = trim($csv,’\”‘);
$csv = mb_convert_encoding($csv, “EUC-JP”, “shift_jis”);
$csv = str_replace(‘”‘, ”, $csv);
$csv_array = explode(“,”,$csv);
//$csv_array = explode(“””,$csv);
//DB
mysql_query(“SET NAMES ujis”)
or die(“can not SET NAMES ujis”);
$sql = sprintf(
“INSERT IGNORE INTO test (test1,test2,test3)
VALUES(‘%d’,’%s’,’%s’)”,
$csv_array[0],$csv_array[1],$csv_array[2]);
mysql_query($sql);
}
echo $_FILES[“upfile”][“name”] . “をアップロードしました。”.$upload;
if (file_exists($upload)) {
unlink(“$upload”);
}
}
} else {
echo “ファイルをアップロードできません。”;
}
} else {
echo “ファイルが選択されていません。”;
}
?>

 

php MySQL CSVダウンロード

MySQLデータをCSVでダウンロードする。

CSVダウンロード

ファイル  csv.php

<?php

header(“Content-type: application/x-csv; charset=Shift_JIS-win”);

header(“Content-Disposition: attachment; filename=address.csv”);

// DB接続

$link = mysql_connect(“ホスト”, “ユーザー”, “パス”);mysql_select_db(“データベース”, $link);

echo “フィールド1,フィールド2,フィールド3,フィールド4”;echo “\n”;
// MYSQL呼び出しmysql_query(“SET NAMES sjis”)or die(“can not SET NAMES sjis”);$result = mysql_query(“SELECT * FROM テーブル”);
while (($row = mysql_fetch_array($result, MYSQL_ASSOC)) != NULL) {
echo ‘”‘.$row[‘フィールド1’].'”‘.’,’.'”‘.$row[‘フィールド2’].'”‘.’,’.'”‘.$row[‘フィールド3’].'”‘.’,’.'”‘.$row[‘フィールド4’].'”‘.’,’;echo “\n”;
}
mysql_free_result($result);
mysql_close($link);

?>

csvダウンロード2の下にファイルある