Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > เพิ่มข้อมูลให้วน loop ข้อความที่ต้องการลงตาราง พร้อมกับข้อมูลไฟล์ csv



 

เพิ่มข้อมูลให้วน loop ข้อความที่ต้องการลงตาราง พร้อมกับข้อมูลไฟล์ csv

 



Topic : 128329



โพสกระทู้ ( 230 )
บทความ ( 0 )



สถานะออฟไลน์




ขอบคุณล่วงหน้าครับ พยายามทำนานอยู่ ในอยากจะเพิ่มข้อมูลที่คอลัมน์ของ .csv ไม่มีมา ด้วยการเพิ่มข้อความที่ต้องการลงตารางเข้าไปครับ
แต่คงต้องใช้ array แต่จะเพิ่มตรงบรรทัดไหนครับ

ตาราง testprn.sql
CREATE TABLE IF NOT EXISTS `testprn` (
`ID` int(10) NOT NULL AUTO_INCREMENT,
`NAME` varchar(255) NOT NULL,
`YEAR` varchar(50) NOT NULL,
`LOCATION` varchar(50) NOT NULL,
`SN` varchar(50) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620 AUTO_INCREMENT=1 ;


ไฟล์ printer.scv
"PRN-NAME";"YEAR";"LOCATOIN";"PRN-ID";"SN"
"HP EC7750i";"2017";;"6Y08WRE0";
"CANON XiPo";"2017";;"R6YXT62";
"RICHO MP210i";"2017";;"X0NF098";


ไฟล์ printer.php (PHP)
<?php
	$server = "localhost";
	$user = "root";
	$pass = "";
	$db = "dbprn"; 	
	$con = mysql_connect($server, $user, $pass) ;
		    mysql_query("SET NAMES tis620", $con);    
		    mysql_query("USE $db");

if (($hd= fopen("printer.csv", "r")) !== FALSE) {  // อ่านไฟล์ printer.csv 
    while (($data = fgetcsv($hd, 1000, ";")) !== FALSE) {  // วน loop อ่านทีละบรรทัด
          $row++; 
		if($row > 1){	   
			$name = $data[0];   // คอลัมน์ PRN-NAME
			$year = $data[1];    // คอลัมน์ YEAR-MONTH
			
			//  คอลัมน์ LOCATION $data[2] จากไฟล์ printer.csv เป็นข้อมูลที่ว่างเปล่า และไม่มีค่าส่งมา ($location)
			// ต้องการให้ข้อความ F1, F2, F3 ลงไปแทนทีละบรรทัด ทั้ง 3 บรรทัด ในคอลัมน์ฟิลด์ LOCATION ในตาราง testprn
			
			 $sn = $data[3];     //  คอลัมน์ SN			
			 echo $name."-".$year."-".$sn."<br />\n";
		//  เอาข้อมูลลงตาราง testprn ทีละบรรทัด
         $SQL = mysql_query("INSERT INTO testprn (ID, NAME, YEAR, LOCATION, SN) VALUES (NULL,'".$name."','".$year."','".$location."','".$sn."')");
      }
    }
    fclose($hd);
 } 
?>

---------------------------
tbPrinter


ขอขอบคุณมากครับ



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-07-20 12:12:18 By : pukmtec View : 2427 Reply : 7
 

 

No. 1



โพสกระทู้ ( 266 )
บทความ ( 0 )



สถานะออฟไลน์


เอาตัว แปร $location

มาใส่ค่าที่ต้องการ ก่อนคำสั่ง SQL

มันก็จะได้ค่าที่คุณต้องการยัดลงไปในฐานข้อมูล แล้วไม่ใช่ รึครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-20 13:06:52 By : 9nonameman
 


 

No. 2



โพสกระทู้ ( 230 )
บทความ ( 0 )



สถานะออฟไลน์


Code
if (($hd= fopen("printer.csv", "r")) !== FALSE) { // อ่านไฟล์ printer.csv $location = array("F1", "F2", "F3"); $i = 0; foreach ($location as $loc) { while (($data = fgetcsv($hd, 1000, ";")) !== FALSE) { // วน loop อ่านทีละบรรทัด $row++; if($row > 1){ $name = $data[0]; // คอลัมน์ PRN-NAME $year = $data[1]; // คอลัมน์ YEAR-MONTH // คอลัมน์ LOCATION $data[2] จากไฟล์ printer.csv เป็นข้อมูลที่ว่างเปล่า และไม่มีค่าส่งมา ($location) // ต้องการให้ข้อความ F1, F2, F3 ลงไปแทนทีละบรรทัด ทั้ง 3 บรรทัด ในคอลัมน์ฟิลด์ LOCATION ในตาราง testprn $sn = $data[3]; // คอลัมน์ SN echo $name."-".$year."-".$sn."<br />\n"; // เอาข้อมูลลงตาราง ทีละบรรทัด $SQL = mysql_query("INSERT INTO testprn (ID, NAME, YEAR, LOCATION, SN) VALUES (NULL,'".$name."','".$year."','".$loc."','".$sn."')"); $i++; } } } fclose($hd); }


---------------
มันได้ข้อมูลในตารางแบบนี้แหละครับ
อันที่จริงต้อง F1 F2 F3 เรียงลงไปที 3 บรรทัด
หากไม่เป็นการรบกวน ช่วยแก้ array ต้องอยู่บรรทัดไหน หรือผมใช้คำสั่ง loop ผิด

tbb


ประวัติการแก้ไข
2017-07-20 13:38:41
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-20 13:36:09 By : pukmtec
 

 

No. 3



โพสกระทู้ ( 266 )
บทความ ( 0 )



สถานะออฟไลน์


ยังไม่ค่อยเข้าใจในความต้องการ เท่าไหร่ นะครับ ทำไมต้องไปกำหนดค่า

$location เป็น array แล้ว ไป foreach อีกรอบ

ทำไมไม่กำหนดเป็น

$location = "F1 F2 F3"; แล้วเอาไปจับยัดใส่ ฐานข้อมูล ทีเดียว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-20 14:37:45 By : 9nonameman
 


 

No. 4



โพสกระทู้ ( 1,096 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


บ้านๆ ผมยังงง ว่าเหตุให้ใส่ทำไม ถ้าข้อมูลมากกว่า 3 หล่ะ
Code (PHP)
if (($hd= fopen("printer.csv", "r")) !== FALSE) { // อ่านไฟล์ printer.csv 
$location = array("F", "F", "F");
$i = 0;
foreach ($location as $loc) { 


while (($data = fgetcsv($hd, 1000, ";")) !== FALSE) { // วน loop อ่านทีละบรรทัด
$row++; 
if($row > 1){	
$name = $data[0]; // คอลัมน์ PRN-NAME
$year = $data[1]; // คอลัมน์ YEAR-MONTH

// คอลัมน์ LOCATION $data[2] จากไฟล์ printer.csv เป็นข้อมูลที่ว่างเปล่า และไม่มีค่าส่งมา ($location)
// ต้องการให้ข้อความ F1, F2, F3 ลงไปแทนทีละบรรทัด ทั้ง 3 บรรทัด ในคอลัมน์ฟิลด์ LOCATION ในตาราง testprn 
$sn = $data[3]; // คอลัมน์ SN
echo $name."-".$year."-".$sn."<br />\n";

// เอาข้อมูลลงตาราง ทีละบรรทัด
$SQL = mysql_query("INSERT INTO testprn (ID, NAME, YEAR, LOCATION, SN) VALUES (NULL,'".$name."','".$year."','".$loc.$i."','".$sn."')");
$i++; 
} 
}
} 
fclose($hd);
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-20 15:48:46 By : Pong Thep
 


 

No. 5



โพสกระทู้ ( 230 )
บทความ ( 0 )



สถานะออฟไลน์


ก่อนอื่น ต้องขอโทษด้วย ที่ผมอาจจะทำให้พี่ ๆ สับสน

ข้อมูลจากไฟล์ .csv ถูกส่งค่ามาจาก Print Server โดยที่ไม่ได้มีการระบุตำแหน่งที่วางเครื่องพิมพ์แต่ละชั้นไว้
มีแต่หัวคอลัมน์ (LOCATION) แต่ไม่มีรายละเอียดข้อมูลในไฟล์ .csv ว่ายี่ห้อเครื่องพิมพ์นั้นตั้งอยู่ชั้นไหน

ผมเอาไฟล์ .csv เอามาลงตาราง แล้วเขียนขึ้นบนรายงานบนเว็บเพื่อให้ทราบว่าแต่ละเครื่องของชั้นนั้น ๆ มีการใช้จำนวนกระดาษไปกี่แผ่น อะไรประมาณนี้

ส่วนตัวอย่างไฟล์ที่ส่งไปให้ดูนี้นั้น ผมจำลองมาให้ดูเพื่อให้เข้าใจระบบการทำงานให้ง่ายขึ้น อันที่จริงข้อมูลในไฟล์ .csv มีทั้งหมดเกือบ 20 คอลัมน์ มีจำนวนเครื่องพิมพ์ 7 เครื่อง วางไว้แต่ละชั้น บางชั้นก็มี 2 ตัวบ้าง (ผมเอาลงตารางได้หมดแล้ว) แต่ขาดตรง LOCATION ว่าจะกำหนดให้ลงไปในช่องว่างในตารางได้อย่างไร (ชื่อแต่ละชั้น ผมจะกำหนดใน array ที่พี่ ๆ เห็นนั่นแหละครับ อันนั้นผมแค่ยกตัวอย่างให้ครับ)
เช่น $location = array("Floor 2 Sale", "Floor 1 Budget", "Floor 3 Market");

ยี่ห้อ BRAND MODEL ipAddress MacAddress.....PaperA4...Location.......

คอลัมน์อื่น ๆ มีข้อมูลครบ แต่คอลัมน์ Location ไม่มีข้อมูล เนื่องจาก บ ผู้ติดตั้งระบบ printer ไม่ใส่ข้อมูลแต่ละชั้นให้นะครับ ผมจึงต้องมาใส่เอง

ระบบเครือง Print Server จะส่งค่าการใช้งานเป็นไฟล์ .csv มาทางเมลของผมทุก ๆ วันที่ 1 ของแตละเดือน แต่ผมก็เอาไฟล์ .csv นี้มาทำเป็นรายงานแสดงบนเว็บภายในสำนักงาน (เอาข้อมูลแต่ละเดือนลงตาราง เพื่อดูย้อนหลังได้ครับ)

หากผมทำให้พี่ๆ สับสน หรือต่อว่าผมยินดีครับ ขอโทษด้วยครับ

อันนี้ที่ผมต้องการครับ ผมเอาข้อมูลยัดใส่ตารางเองด้วยมือ phpMyadmin (เพื่อให้เห็นที่ผมต้องการครับ)

fP

ขอบคุณมากครับ


ประวัติการแก้ไข
2017-07-20 16:59:13
2017-07-20 17:02:18
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-20 16:55:37 By : pukmtec
 


 

No. 6



โพสกระทู้ ( 266 )
บทความ ( 0 )



สถานะออฟไลน์


แล้วค่าที่ได้จากไฟล์ csv แถวที่ 1 2 3

มันเรียงลำดับ ตรงกับค่า ที่อยู่ในตัวแปร $location ไหมครับ

ถ้าตรง ก็เอาค่า $i ที่ได้ในแต่ละรอบที่ while อ่านค่าจาก ไฟล์ csv ไปทำเป็นค่า index array ของ $location ดูครับ

Code (PHP)
if (($hd= fopen("printer.csv", "r")) !== FALSE) { // อ่านไฟล์ printer.csv

	$location = array("Floor 2 Sale", "Floor 1 Budget", "Floor 3 Market");
	$i = 0;
	
	while (($data = fgetcsv($hd, 1000, ";")) !== FALSE) { // วน loop อ่านทีละบรรทัด
		$row++;
		if($row > 1){
			$name = $data[0]; // คอลัมน์ PRN-NAME
			$year = $data[1]; // คอลัมน์ YEAR-MONTH
			
			// คอลัมน์ LOCATION $data[2] จากไฟล์ printer.csv เป็นข้อมูลที่ว่างเปล่า และไม่มีค่าส่งมา ($location)
			// ต้องการให้ข้อความ F1, F2, F3 ลงไปแทนทีละบรรทัด ทั้ง 3 บรรทัด ในคอลัมน์ฟิลด์ LOCATION ในตาราง testprn
			$sn = $data[3]; // คอลัมน์ SN
			echo $name."-".$year."-".$sn."<br />\n";
			
			// เอาข้อมูลลงตาราง ทีละบรรทัด
			$SQL = mysql_query("INSERT INTO testprn (ID, NAME, YEAR, LOCATION, SN) VALUES (NULL,'".$name."','".$year."','".$location[$i]."','".$sn."')");
			$i++;
		}
	}
	
	fclose($hd);
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-20 21:20:19 By : 9nonameman
 


 

No. 7



โพสกระทู้ ( 230 )
บทความ ( 0 )



สถานะออฟไลน์


แล้วค่าที่ได้จากไฟล์ csv แถวที่ 1 2 3

มันเรียงลำดับ ตรงกับค่า ที่อยู่ในตัวแปร $location ไหมครับ

ถ้าตรง ก็เอาค่า $i ที่ได้ในแต่ละรอบที่ while อ่านค่าจาก ไฟล์ csv ไปทำเป็นค่า index array ของ $location ดูครับ

---- ตอบ ไฟล์ .csv จะส่งมาโดยอัติโนมัตจากระบบ Print Server เหมือนลำดับเดิม ๆ ทุกเดือนครับ ที่ผ่านมา ผมกรอกชื่อชั้นด้วยมือเพิ่มเข้าไปในไฟล์ .csv แทนช่องว่างไปเองครับ ----

ขอขอบคุณพี่ 9nonameman อย่างสูงครับ ตอนนี้รันตรงข้อมูลที่ต้องการแล้วครับ

เอา foreach ($location as $loc) ออกเท่านี้เองเหรอนิ อ้าว ผมโง่ตั้งนาน เสียเวลาตรงนี้นานมาก

ผมก็ทำตั้งนาน ว่างตำแหน่ง loop array ไม่ถูกที่ โปรแกรมรันแล้วข้อมูลไม่ลงตารางไม่ถูกซะทีครับ ขอบคุณมากครับ


ประวัติการแก้ไข
2017-07-21 09:42:29
2017-07-21 10:29:34
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-21 09:39:49 By : pukmtec
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เพิ่มข้อมูลให้วน loop ข้อความที่ต้องการลงตาราง พร้อมกับข้อมูลไฟล์ csv
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่