การใช้ csv ไฟล์เป็น Database น่าจะเป็นอีกวิธีหนึ่งที่สามารถใช้แทน MySQL ในกรณีที่ข้อมูลไม่มาก นัก แต่ข้อดีก็คือไม่ต้องยุ่งยากกับการ set ค่า database หรือ การใช้ PhpMyAdmin อีกทั้งยังสามารถ run ได้โยไม่ต้องมี database server
การใช้งานจะต้องมี MyCSV.class สามารถD/L จาก http://maettig.com/?page=PHP/MyCSV หรือจาก http://www.phpclasses.org/package/5594-PHP-Manage-CSV-files-like-database-tables.html โดยมีวิธีใช้ดังนี้
1.การแสดงข้อมูลตามเงื่อนไข(เหมือนกับคำสั่ง Select และ Where )
<?
$table = new MyCSV("sys_province.csv"); //เปิดไฟล์ข้อมูล
$tbname=$table->tablename(); //ชื่อตารางข้อมูล$numrow=$table->num_rows(); //จำนวน record
echo $tbname.'<br>'; //แสดงชื่อตาราง
while ($row = $table->each()) {
if($row['GEO_ID']=='6'){ //แทนคำสั่ง Where
echo $row['id'] . "-";
echo $row['PROVINCE_ID']. "-";
echo $row[',PROVINCE_CODE']. "-";
echo $row['PROVINCE_NAME']. "-";
echo $row['GEO_ID']. "-";
echo "<br>";
}}
echo $numrow.'<br>'; //แสดงจำนวน record
?>
2.การ Join ตารางข้อมูล
การ join ข้อมูลในตาราง thing.csv ฟิวดฺ์รหัสสี โดยดึงรหัสสีจากตาราง color.csv มีโครงสร้างและข้อมูลดังนี่
1.ไฟล์ color.csvid,color
1,red
2,yellow
3,green
2.ไฟล์ thing.csv
id,thing,color_id
1,book,2
2,pen,1
3,table,3
4,ruller,2
5,chair,2
<?
$colorTable = new MyCSV('color.csv'); //เปิดตารางรหัสสี
$thingTable = new MyCSV('thing.csv'); //เปิดตารางข้อมูล
$thingTable->join($colorTable, "color_id");
while ($row = $thingTable->each()) {
echo $row['thing'] . " is " . $row['color'] . "<br>";
}
//$row['thing'] เป็นฟิวด์จากตาราง thing.csv
//และ $row['color'] เป็นฟิวด์จากตาราง color.csv
?>
ไม่มีความคิดเห็น:
แสดงความคิดเห็น