ถามเรื่องบันทึกข้อมูลลง db 2 ข้อมูลในครั้งเดียว

เริ่มโดย rtee, 24 สิงหาคม 2012, 15:53:14

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

rtee

คือ ผมมีฟอร์มที่ให้แนบรูปภาพส่งไปตามฟอร์ม post ได้ด้วย
แล้วพอเข้าไปที่ไฟล์สคริปต์
ก็จะให้บันทึกข้อมูลไฟล์รูปเหล่านี้ โดยให้ duplicate ตัวเองเป็น 2 ไฟล์ และเก็บข้อมูลลงฐานข้อมูลเป็น 2 records ครับ..

อืม เดี๋ยวจะงง เอางี้ เดี๋ยวให้ดูโค้ดนะครับ

อันนี้เป็นฟอร์มสำหรับโพสรูปขึ้นไป

<form method="post" action="script.php" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" />
</form>


อันนี้เป็นไฟล์สคริปต์ //ข้ามขั้นตอนการติดต่อฐานข้อมูลนะครับ เพราะจะมีอีกไฟล์ทำหน้าที่ติดต่อฐานข้อมูลอยู่แล้ว

<?php
$file 
$_FILES["file"];
if (
$file["size"]>0) {
  for(
$i=1;$i<=2;$i++){
    
$filename $i."_".$file["name"];
    if (
copy($file["tmp_name"],"upload/"$filename)){
      
mysql_query("INSERT INTO table (filename) VALUES ('".$filename."')");
      
$id mysql_insert_id();
    }
  }
}
?>



แต่ปัญหาก็คือ...
ไฟล์ที่ 1 สามารถอัพโหลดได้ปกติ และบันทึกข้อมูลลงฐานข้อมูลได้ปกติ
แต่
ครั้งที่ 2 มันเฟล และฟ้องว่า failed to open stream: No such file or directory

เลยอยากรู้ว่า มันจะเกี่ยวข้องกับการประกาศตัวแปร $file หรือไม่ครับ ?

siammbk

ดูที่ database ก่อนคับว่า ตรง id ได้ตั้งไว้หรือป่าว
และตรง id เนี่ย ได้ตั้งให้เป็น auto_increment หรือป่าว
รับออกแบบเว็บไซต์ ทุกรูปแบบ งานใหญ่ๆ ระบบยากๆ ราคาแรงๆ คุยกันคับ
line : siammbk
tel : 095-675-8614

kobkung

เอไม่เคยลองแบบนี้

ลอง echo ค่าออกมาดูว่าครั้งที่ 2 temp ของ file ยังอยู่ไหม
$filename = $i."_".$file["name"];
echo $filename;

กับ ตัวนี้ $file["tmp_name"]
เราเป็นบริษัท รับทำเว็บไซต์ แก้เว็บเดิม เขียน Php+Mysql+jQuery+css+bootstrap  งานตามสั่ง ประสบการณ์ จะ 19 ปี ละจ้า
[direct=http://www.smilephp.com]Smilephp.com[/direct] รับทำเว็บไซต์บริษัท e-commerce + ระบบชำระเงิน paypal,ธนาคาร  เว็บบริษัท เว็บขายของ ระบบจอง เช่า เขียน PHP ได้ทุกแนว  ช่วงนี้เน้นรับงาน ERP ระบบเอกสารบริษัท ,บัญชี ,  Barcode, Stock , Warehouse , Logistic ติดต่อ 086-364-5262
[direct=http://www.sellerorder.com ระบบหลังบ้าน จัดการ Order ขายของ  ช่วงนี้หาคนทดสอบฟรี ขอได้ตามเมลในเว็บ[/direct]
งดตอบคนทำเว็บนอกลู่นอกทาง ไม่ทำเว็บ WP ปั่นแชร์ เว็บประมูล สคริปปั่นใดๆ ไม่ทำเว็บบอลและพ

icez

// ไม่เกี่ยวกับคำถาม
วิธีย้าย file ที่ upload มาให้ใช้คำสั่ง move_uploaded_file ครับ อย่าใช้ copy เสี่ยงต่อการถูก inject
[direct=http://www.thzhost.com/]THZHost[/direct] SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ

c0untry-m@n

บรรทัดนี้พิมพ์ตกไปหรือเปล่าครับ

if (copy($file["tmp_name"],"upload/"$filename)){

น่าจะแบบนี้หรือเปล่า แต่ error คนละตัว ไม่น่าเกี่ยวกับคำถามนี้

if (copy($file["tmp_name"],"upload/".$filename)){

เอาเป็นว่าเผื่อพิมพ์ตกไปจริงๆ ละกันครับ

massacre


EMINEM


อันนี้ผมมั่วนะครับ  :wanwan004:

<?php
$file1 = $_FILES["file"];
$file2 = $_FILES["file"];

if ($file1["size"]>0) {

   $filename1 = "1_".$file1["name"];
   $filename2 = "2_".$file2["name"];
   if (copy($file1["tmp_name"],"upload/"$filename1)&&copy($file2["tmp_name"],"upload/"$filename2)){
     mysql_query("INSERT INTO table (filename) VALUES ('".$filename1."')");
     mysql_query("INSERT INTO table (filename) VALUES ('".$filename2."')");
     $id = mysql_insert_id();
   }

}
?>


แต่ผมว่า
แบบนี้น่าจะดีกว่าครับ
อ้างถึงจาก: massacre ใน 28 สิงหาคม 2012, 02:54:30
copy tmp -> file1
copy file1 -> file2
ก็น่าจะได้แล้วครับ
ไม่มีอาชีพไหนที่ต่ำต้อย มีเพียงทัศนคติเท่านั้นที่ต้อยต่ำ
เจอคนเก่งจงเรียนรู้จากพวกเขา
เจอคนงี่เง่าให้เอามาสอนตัวเอง