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 > สอบถามการเขียรคำสั่ง SQL หน่อยครับกรณี ลบกับเลือก เขียนแบบไหนครับ



 

สอบถามการเขียรคำสั่ง SQL หน่อยครับกรณี ลบกับเลือก เขียนแบบไหนครับ

 



Topic : 113776



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



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




คือว่า จะ Selete * เพิ่มเพื่อจะลบไฟล์อ่ะครับ จะเขียนเพิ่มอย่างไรครับ แล้วจะลบไฟล์ในโฟเดอร์
คำสั่ง Unlink แบบนี้ถูกไหมครับ

Code (PHP)
function del_xml() {
	
		$id = JRequest::getInt('del_id');
		//$savepath = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'xml_import';
		//echo $id;
		//exit;
		
	    $db3 = JFactory::getDBO();
		$strSQL3 = "DELETE FROM tb_attach_xml ";
		$strSQL3 .= "WHERE tb_attach_xml.id = '".$_GET["del_id"]."' ";
		$db3->setQuery($strSQL3);
		$rs3 = $db3->loadObjectList();
		
		$file = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'xml_rss'.DS.$rows->file_name;
		
		$del_file = @unlink($file);
		//echo $del_file;
		//exit;
					
		$msg = JText::_('File Export DELETE');
		$link = 'index.php?option=com_k2exporter';
		$redirect = JFactory::getApplication();
		$redirect->redirect($link,$msg);
	
	}




Tag : PHP









ประวัติการแก้ไข
2015-01-14 18:46:10
2015-01-14 18:54:17
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-01-14 17:49:45 By : sarut14 View : 967 Reply : 17
 

 

No. 1



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


$del_file = @unlink($file);

แก้เป็น

if( file_exists($file)) unlink($file);

แบบว่าไม่จำเป็นต้องมี result มารับค่า แค่ ให้รู้ว่ามีไฟล์นี้อยู่จริง ก็สั่งลบเลย
ถ้าไม่มีไฟล์ก็ผ่านไป เพราะไม่มีประโยชน์อะไรจะมาตรวจสอบคำสั่งว่าลบได้ไม่ได้
เพราะ โปรแกรมแกรม สร้างไฟล์ เอง และลบไฟล์เอง permission มันเป์นของ โปรแกรมอยู่แล้ว






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-14 20:09:00 By : Chaidhanan
 


 

No. 2



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



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


สอบถามพี่ชัยเพิ่มเติมครับ จากโค๊ดข้างต้นผมต้อง Select * ขึ้นมาอีกไหมครับ กรณีที่ผมจะดึงชื่อไฟล์ขึ้นมาครับ

$file = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'xml_rss'.DS.$rows->file_name;

ผมควรเขียนต่อเพิ่มอย่างไรครับผม

Code (PHP)
$id = JRequest::getInt('del_id');

	    $db = JFactory::getDBO();
		$strSQL = "DELETE FROM #__attach_xml WHERE #__attach_xml.id = ".$id." ";
		$db->setQuery($strSQL);
		//$rs = $db->loadObjectList();
		$strSQL = "SELECT * From #__attach_xml WHERE #__attach_xml.id=".$id." ";
		//$db->setQuery($strSQL);
		$rs = $db->loadAssocList();
		
		//จริงๆตรงนี้เหมือนเป็นคำสั่งเฉพาะ Joomla ให้ลบไฟล์ แต่ปัญหาคือ row ไม่เจอชื่อไฟล์จาก ID ที่รับมาครับ ผมลองEcho เจอแต่PathFile
		$file = JFile::delete(JPATH_ROOT.DS.'media'.DS.'k2'.DS.'xml_rss'.DS.$rs["file_name"]);
		
		if( file_exists($file)) unlink($file);



ประวัติการแก้ไข
2015-01-14 23:31:01
2015-01-14 23:32:30
2015-01-14 23:33:11
2015-01-15 12:35:40
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-14 22:12:42 By : sarut14
 

 

No. 3



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


จัดลำดับคำสั่งผิดครับ เมื่อลบแล้ว จะหาเจอได้อย่างไรครับ
ต้องคิวรี่มา ตรวจสอบก่อน แล้วค่อยสั่งลบใน database

ต่อด้วยลบใน folder


ปล. แต่ก็ไม่จำเป็นคิวรี่มาตรวจสอบอีก เพราะมันถูกตรวจสอบจาก หน้าเพจที่กดปุ่มลบแล้วครับ
ที่ควรจะตรวจสอบคือ สิทธิ์ในการลบของ user ครับ


ประวัติการแก้ไข
2015-01-15 08:19:39
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 08:16:36 By : Chaidhanan
 


 

No. 4



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


Code (PHP)
$id = JRequest::getInt('del_id');
$db = JFactory::getDBO();
$strSQL = "DELETE FROM #__attach_xml WHERE #__attach_xml.id = ".$id." ";
$db->setQuery($strSQL); // บันทัดนี้สั่งลบแล้ว select ข้างล่างก็หาไม่เจอแล้วนะครับ

//////////////////////// begin //////////////////////////////////
//  เอาออก ครับ ไม่ได้ประโยชน์
//$rs = $db->loadObjectList();
//$strSQL = "SELECT * From #__attach_xml WHERE #__attach_xml.id=".$id." ";
//$db->setQuery($strSQL);
//$rs = $db->loadAssocList();
//////////////////////// end /////////////////////////////////

//จริงๆตรงนี้เหมือนเป็นคำสั่งเฉพาะ Joomla ให้ลบไฟล์ แต่ปัญหาคือ row ไม่เจอชื่อไฟล์จาก ID ที่รับมาครับ ผมลองEcho เจอแต่PathFile
$file = JFile::delete(JPATH_ROOT.DS.'media'.DS.'k2'.DS.'xml_rss'.DS.$row1["file_name"]);

if( file_exists($file)) unlink($file);



ที่ควรจะตรวจสอบคือ สิทธิ์ในการลบของ user ครับ หมายถึงหน้าเพจที่ ต้องกดปุ่ม ลบ ครับ
ที่หน้านั้น ควรได้รับการตรวจสอบสิทธิ์ของ user มาก่อนที่จะแสดงปุ่มกด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 11:00:09 By : Chaidhanan
 


 

No. 5



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


ตรวจสอบโค๊ด
17.if( file_exists($file)) unlink($file);
else echo 'File not found ', $file;

ตรวจสอบว่าชื่อ path ถูกต้องไหม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 11:58:24 By : Chaidhanan
 


 

No. 6



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



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


Path ถูกครับ แต่ DS.$rs["file_name"]); เหมือนไม่เจอตัวไฟลือ่ะครับ ชี้ไปปลายทางถูกครับ

$file = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'xml_rss'.DS.$row["file_name"];

คำสั่งนี้ชี้ไปที่ root โฟเดอร์เลยครับ


ประวัติการแก้ไข
2015-01-15 12:35:16
2015-01-15 12:38:14
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 12:34:47 By : sarut14
 


 

No. 7



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


พอดีไม่คล่องกับ joomla แค่งูๆปลาๆ

แต่โค๊ดนี้

15. $file = JFile::delete(JPATH_ROOT.DS.'media'.DS.'k2'.DS.'xml_rss'.DS.$row1["file_name"]);

ลอง
Code (PHP)
echo  JPATH_ROOT.DS.'media'.DS.'k2'.DS.'xml_rss'.DS.$row1["file_name"];

มาดูครับ ว่าเป็นยังไง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 12:41:20 By : Chaidhanan
 


 

No. 8



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



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


ครับ มันจะได้โฟเดอร์ที่อยู่ปลายทางของไฟล C:\AppServ\www\TTD_KM\media\k2\xml_rss\
ออกมา แต่ $rs["file_name"];//แก้เป็น rs มันไม่ชี้ไปที่ชื่อไฟล์เลยครับ งงมากๆ


ไม่รู้เกี่ยวไหม ผมเพิ่ม $rs = $db->loadAssocList(); เข้าไปครับท้ายตรง strSQL

มันเลยทำให้ค่า if( file_exists($file)) unlink($file); ไม่มีผลอะครับ T_T


ประวัติการแก้ไข
2015-01-15 12:48:32
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 12:46:55 By : sarut14
 


 

No. 9



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


อ้อ filename อยู่ในตาราง

Code (PHP)
$id = JRequest::getInt('del_id');

$db = JFactory::getDBO();
/////////////////////////// ทำอันนี้ก่อน delete 
$strSQL = "SELECT * From #__attach_xml WHERE #__attach_xml.id=".$id." ";
$db->setQuery($strSQL);
$rs = $db->loadAssocList();
$row1 = $rs[0]; // ต้องมีบันทัดนี้หรือเปล่าครับ
////////////////////////////////// delete
$strSQL = "DELETE FROM #__attach_xml WHERE #__attach_xml.id = ".$id." ";
$db->setQuery($strSQL);
//////////////////////////////////////////

$file = JFile::delete(JPATH_ROOT.DS.'media'.DS.'k2'.DS.'xml_rss'.DS.$row1["file_name"]);

if( file_exists($file)) unlink($file);

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 13:01:44 By : Chaidhanan
 


 

No. 10



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



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


ลองใส่ตามพี่ชัยว่าครับ เปลี่ยนจาก 0 เป็น 1 สลับกัน ผลไม่ออกครับ กับมันลบใน DB ไม่ได้ด้วยครับ ตอนแรกลบได้ปกติแต่ไม่ลบไฟล์

Code (PHP)
$id = JRequest::getInt('del_id');

		$db = JFactory::getDBO(); 
		$strSQL = "SELECT * From #__attach_xml WHERE #__attach_xml.id=".$id." ";
		$db->setQuery($strSQL);
		$rs = $db->loadAssocList();
		$row1 = $rs[0] ; // เปลี่ยน1 แล้ว หรือเอา [] ออกไม่เป็นผลครับ
		
		//$file = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'xml_rss'.DS.$row1["file_name"];
		//if( file_exists($file)) unlink($file);
		
		$strSQL = "DELETE FROM #__attach_xml WHERE #__attach_xml.id = ".$id." ";
		$db->setQuery($strSQL);
	    
		
		$file = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'xml_rss'.DS.$row1["file_name"];
		if( file_exists($file)) unlink($file);
		
                // อันนี้ทำ Redirect กลับไปหน้าแรก 			
		$msg = JText::_('File Export DELETE');
		$link = 'index.php?option=com_k2exporter';
		$redirect = JFactory::getApplication();
		$redirect->redirect($link,$msg);


dsds
-DB


ประวัติการแก้ไข
2015-01-15 13:19:51
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 13:18:30 By : sarut14
 


 

No. 11



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


06.$rs = $db->loadAssocList();
07.$row1 = $rs[0] ; // เปลี่ยน1 แล้ว หรือเอา [] ออกไม่เป็นผลครับ


06.$rs = $db->loadAssocList();
print_r($rs); exit; // เอา result มาดูหน่อยครับ
07.$row1 = $rs[0] ; // เปลี่ยน1 แล้ว หรือเอา [] ออกไม่เป็นผลครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 13:32:45 By : Chaidhanan
 


 

No. 12



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



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


จะได้แบบนี้ครับ

Array ( [0] => Array ( [id] => 138 [id_cat] => 23 [file_name] => xml_TH_2015_01_1513_10_19.xml [title] => เธฃเธฑเธšเธ‹เธทเน‰เธญเน€เธซเธฃเธตเธขเธ 10 เธšเธฒเธ— [file_date] => 2015-01-15 ) )


ประวัติการแก้ไข
2015-01-15 13:38:24
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 13:37:59 By : sarut14
 


 

No. 13



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


ต้องทำความเข้าใจกับ $db->setQuery() หน่อยแล้วครับ
คำสั่งนี้เป็น คำสั่ง นำ statement เข้าไปในคิวลิสต์

ส่วนคำสั่งในการ excute มีอยู่หลายอัน
เช่น
$result = $db->loadAssocList(); สั่งคิวรี่ โดยกำหนด รูปแบบ result ที่ได้รับ
$result = $db->execute(); สั่งคิวรี่ โดยต้องการว่าทำได้หรือไม่ได้

ดังนั้น เมื่อ ใช้คำสั่ง $db->setQuery(); ต้อง ตามด้วยคำสั่ง ด้านบน แล้วแต่ความจำเป็น


Code (PHP)
$rs=$db->setQuery('delete ......');
$db->execute();



ปล.คำสั่งในการ excute มีมากกว่าตัวอย่างที่ให้นะครับ และทุกครั้งที่ ทำคำสั่งเสร็จจะล้าง คิวลิสต์ออกครับ


ประวัติการแก้ไข
2015-01-15 14:03:36
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 14:00:57 By : Chaidhanan
 


 

No. 14



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



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


ลบได้แล้วครับพี่ชัย ได้ความรู้เพิ่มอีกอัน ส่วนคำสั่งล้าง คิวลิต์นี่เป็นคำสั่งแบบไหนครับ ขอเพิ่มอีกคำถามได้ไหมครับ

ผมได้สร้างฟังชั่นตัวนึงขึ้นมาเพื่อรับไฟล์ที่นำเข้า จากหน้า input file พอปริ๊นออกมามันเจอชื่อครับ แต่พอปริ๊นค่านี้ออกมา
กลับไม่เจอชื่ออะครับ

Code
<form name="form_import" action="index.php?option=com_k2exporter&amp;task=import" method="post" > <tr> <td> File XML Import : <input type="file" name="file_xml" id="file"> <input value="Upload" type="submit"><br> </td> </tr> </form>



อันนี้ผมลองเขียนดูครับ ค่า $Code (PHP)
function import() {
	$importxml = JRequest::getVar('file_xml'); // อันนี้ออกครับ
	$savepath = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'xml_import';
	
	
	
		$real_name = $_FILES['file_xml']['name'];
		$file_name = $_FILES['file_xml']['tmp_name'];
		
		echo $importxml; // อันนี้ลองเชคมันมีชื่อที่รับมา แต่ ถ้าเปลี่ยน $real_name  ไม่ออกมาครับ
		//exit;
		
		$file_name = $_FILES['file_xml']['tmp_name'];
		if (($_FILES["file_xml"]["type"] == ".xml")){
		if (is_uploaded_file($file_name))
		{
			copy($file_name,$savepath,$realname);
		}
	          }
	  
	}



ประวัติการแก้ไข
2015-01-15 14:51:01
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 14:50:37 By : sarut14
 


 

No. 15



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


clear ง่ายๆ เลยครับ
unset($db);
$db = JFactory::getDBO(); // สร้างใหม่ 55555 คำสั่งโดยตรงไม่รู้ครับ ก็งูๆปลาๆ อยู่เหมือนกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 15:18:32 By : Chaidhanan
 


 

No. 16



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


http://extensions.joomla.org/extension/simple-file-upload
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 15:22:35 By : Chaidhanan
 


 

No. 17



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



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


ลองมั่วๆดูครับพี่ชัย ตอนนี้อัฟไฟล์ได้แล้ว แต่ต้องมีการเช็คขนาดไฟล์ นามสกุลไฟล์ที่สามารถอัฟได้ รวมไปถึงการอ่านไฟล์เก็บลง DB เหอๆ

ถ้าจะใส่การดัก นามสกุลไฟล์ ไม่แน่ใจว่าใช้วิธีแบบปกติได้ไหม เดี๊ยวจะลองดูครับ ติดอาจจะรบกวน 555 อันนี้แกะมาจาก Doc Joomla

Code (PHP)
function import() {
	
	$app = JFactory::getApplication();
	$input = $app->input;
	$file_xml= $input->files->get('file_xml');
	

	if(isset($file_xml['name']))
	   {
		jimport('joomla.filesystem.file');
		$file_xml['name'] = strtolower(JFile::makeSafe($file_xml['name']));
		$savepath = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'xml_import/'.$file_xml['name'];
		//$fileRelativePath = '/pathToTheRightFolder/'.$file['name'];
		$fileAbsolutePath = JPath::clean( JPATH_ROOT.$savepath);
		JFile::upload( $file_xml['tmp_name'], $savepath );
       }
	   
	   $msg = JText::_('! File XML Upload !');
		$link = 'index.php?option=com_k2exporter';
		$redirect = JFactory::getApplication();
		$redirect->redirect($link,$msg);
	
	}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 18:40:24 By : sarut14
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามการเขียรคำสั่ง SQL หน่อยครับกรณี ลบกับเลือก เขียนแบบไหนครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 00
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 อัตราราคา คลิกที่นี่