|
|
|
รบกวนถามเรืองการนำค่าที่อยู่นอก form มาใส่ใน form จะแก้ปัญหาอย่างไหรครัล |
|
|
|
|
|
|
|
เอาใหม่น่ะครับผมใส่ track
|
|
|
|
|
Date :
2013-12-17 20:52:42 |
By :
itsup |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอา tag upload เข้าไปไว้ในฟอร์มครับ เพียงเท่านี้ก็จะส่งค่าได้แล้วครับ
|
|
|
|
|
Date :
2013-12-17 21:04:40 |
By :
ALTELMA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จาก from เดิม
Code (PHP)
<td class="text12">
<form name="form2" method="post" action="show_list_activity_news.php">
<input type="hidden" name="add_status" value="0">
</form>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<p align="center">สำหรับอัพรูปภาพ
<input name="image_name" type="file" id="image_name" size="40" />
<span class="text25" style="font-size: 12px; color: #FF0000">กำหนดความกว้างภาพเท่ากับ 400 pixel</span></p>
<p align="center">
<input type="submit" value="Upload" />
<input type="hidden" name="MM_insert" value="form1" />
</p>
</form>
ก็เอาเฉพาะ
Code (PHP)
<input type="hidden" name="add_status" value="0">
</form>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<p align="center">สำหรับอัพรูปภาพ
<input name="image_name" type="file" id="image_name" size="40" />
<span class="text25" style="font-size: 12px; color: #FF0000">กำหนดความกว้างภาพเท่ากับ 400 pixel</span></p>
<p align="center">
<input type="submit" value="Upload" />
<input type="hidden" name="MM_insert" value="form1" />
</p>
ไปไว้ from ข้างบนถูกไหมครับ หมายถึง ฟอร์มที่บันทึกข่าวตอนแรก ผมเข้าใจถูกไหมครับ
|
|
|
|
|
Date :
2013-12-17 21:12:53 |
By :
itsup |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สงสัยไม่เข้าใจหลักการที่บอกไปเมื่อ 2 กระทู้ที่แล้วนะครับ
หลักการคือ
1. คุณไม่จำเป็นต้องแยกออกเป็น 2 form ครับ รวมกันเป็น form เดียวเลย
2. เมื่อคุณส่งค่าจาก form มาเพื่อบันทึก แยกได้เป็น 2 กรณีที่สามารถทำได้
2.1 เก็บข้อมูลภาพ(ชื่อรูปที่อัพโหลด) ไว้ในตารางเดียวกับรายละเอียดข่าวเลย อันนี้ง่ายมาก วิธีทำคือ(ตามของผมนะ)
จะทำการอัพโหลดรูปก่อน ตามโค้ดของคุณจะได้ตัวแปรที่เก็บชื่อรูปนี้ถูกต้องไม๊ครับ?
$image_name = $upload_image->file_dst_name ; // ชื่อไฟล์หลังกระบวนการเก็บ จะอยู่ที่ file_dst_name
เมื่ออัพโหลดรูปเรียบร้อยก็ทำการ INSERT ข้อมูลทั้งหมดไปเก็บในตารางกิจกรรม(ก็ INSERT ธรรมดานี่แหละ) โดยเก็บชื่อรูปด้วย
Code (PHP)
INSERT INTO ชื่อตาราง (ชื่อฟิลด์ที่1,...., image) VALUES('ค่าที่1', ... , '$image_name') #จบ
2.2 เก็บรูปแยกกัลตารางข้อมูลกิจจกรรม อันนี่เพิ่มรายละเอียดขึ้นมาหน่อย คือ
ขั้นแรกต้อง INSERT ข้อมูลกิจกรรมก่อน เมื่อเสร็จแล้วกฌทำการดึงค่า id กิจกรรมล่าสุดมา(เพื่อใช้ในการอ้างอิงรูปต่อไป) โดยใช้คำสั่งนี้
Code (PHP)
$lastID = mysql_insert_id();
จากนั้นทำการอัพรูป(ก็ตามที่คุณเขียนนั่นแหละ) ซึ่งก็จะได้ชื่อรูปมาเหมือนกัน
$image_name = $upload_image->file_dst_name ; // ชื่อไฟล์หลังกระบวนการเก็บ จะอยู่ที่ file_dst_name
เมื่ออัพโหลดรูปแล้ว จากนั้นก็ทำการ INSERT ข้อมูลรูปลงในตารางเก็บรูป โดยจะเก็บ id ของกิจกรรมหรือข่าวเข้าไปด้วย คือ
Code (PHP)
$insertSQL = sprintf("INSERT INTO tbl_image (image_name, activity_id) VALUES ( '%s', '%s' )", $image_name, $lastID );
เพราะฉะนั้นสื่งที่คุณต้องเพิ่มในขณะนี้ คือ เพิ่มฟิลด์ชื่อ activity_id ในตาราง tbl_image
สำหรับการดึงข้อมูลมาแสดง ในกรณีที่ข้อมูลอยู่ในตารางเดียวกันคุณคงไม่มีปัญหา(ใช่ป่ะ?) มาดูการดึงข้อมูลที่อยู่คนละตารางละกัน
1. กรณีที่่มีรูปเดียว ใช้ JOIN เลยง่ายดี
Code (PHP)
$activity_id = '1'; #สมมติว่าผมต้องการดูกิจกรรมที่มี่ id เท่ากับ 1
$sql = mysql_query("SELECT tbl_activity.*, tbl_image.* FROM tbl_activity LEFT JOIN tbl_image ON tbl_activity.activity_id = tbl_image.activity_id WHERE tbl_activity.activity_id = '$activity_id' LIMIT 1");
ฯลฯ
2. กรณีที่มีหลายรูป ก็ query 2 ครั้ง(เพื่อความเข้าใจ)
Code (PHP)
$activity_id = '1'; #สมมติว่าผมต้องการดูกิจกรรมที่มี่ id เท่ากับ 1
$sql = mysql_query("SELECT * FROM tbl_activity WHERE activity_id = '$activity_id' LIMIT 1"); #ข้อมูลกิจกรรม
....คำสั่งอื่นๆ....
#ดึงขอมูลรูป
$sql = mysql_query("SELECT * FROM tbl_image WHERE activity_id = '$activity_id' "); #ข้อมูลรูป
ถ้ายังไม่เข้าใจ ผมจนปัญญาครับ ผมเขียนโค้ดให้ได้ แต่ผมไม่อยากทำร้ายคุณ
|
|
|
|
|
Date :
2013-12-17 21:21:19 |
By :
arm8957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับผม ขอบคุณครับผมจะเอาข้อแนะนำสุดท้ายนี้ไปทำต่อครับ
|
|
|
|
|
Date :
2013-12-17 21:24:39 |
By :
itsup |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับคุณ คนธรรมดา ไม่พิเศษผมรบกวนถามอีกเรืองน่ะครับ
เพิ่มฟิลด์ชื่อ activity_id ในตาราง tbl_image ตอนเราสร้าง table นี้มา ภายในกำหนดเป็นอะไรก็ได้ใช่ไหมครับ
หรือต้องกำหนดตาม table activity_news
คือเป็นชนิด int(10) ตาม table นี้เลยถูกไหมครับ
|
|
|
|
|
Date :
2013-12-18 14:16:28 |
By :
itsup |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ชื่อฟิลด์จะตั้งเป็นอะไรก็ได้ครับ แต่ให้สื่อความหมายแล้วเราเข้าใจ แล้วก็ชนิดข้อมูลก็เซ็ตให้เหมือนกันเลยครับ ง่ายดี น่าจะใกล้ถึงจุดหมายละนะครับ
|
|
|
|
|
Date :
2013-12-18 21:19:41 |
By :
arm8957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|