พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com
PHP development / ช่วยแนะนะสคริป insert ภาพเข้าไปเก็บในดาต้าเบสด้วยครับ
โอ๋
โอ๋
Tue 1 Aug 2006 16:22:38

คือผมอยากเพิ่มสคริป insert ภาพเข้าไปเก็บในดาต้าเบส แต่ต้องใส่ path ไม่ถูกอ่ะครับ คือพอใส่ path ไปแล้วมันไม่ insert เข้าไปใน ฟิลล์ของ table นะครับยังไงแนะนำด้วยครับ
<?
$DEFINE_SITE = true;
include "../../../includes/common.php";
include "../../../includes/template.php";
$template = new template();

$v = initial($ck);
//if ($mem[rank] > 0){

$step = ($_POST[vote] != "" ? 1 : 0);

if ($_POST[poll1] != "" && $step > 0){
 $startpage = "finish.html";
 $poll = $_POST[poll1];

 query("INSERT INTO `post_picture` SET `mem_no` = '$mem[no]' , `mem_name` = '$mem[name]' , `poll` = '$poll' , `topic` = '$topic' , `comment` = '$comment' , `image` = '$image' , `time` = '$time'");
 if (mysql_insert_id() > 0){
  $template->assign_block_vars('fin',null);
 } else {
  $template->assign_block_vars('al',null);
 }
} else {
 $startpage = "main.html";
}

//} else {
 //$startpage = "member.html";
//}

$template->set_filenames(array(
 'body' => $startpage,
));

$page_title = "Online-Station Activity :: Dark Story";
$template->pparse('body');
?>

ไฟล์ชื่อ main.html

หัวข้อบรรยาย
  คำบรรยาย
  ใส่ภาพประกอบ
 

Administrator
Tue 1 Aug 2006 19:45:44
ผมไม่เห็นมีโค๊ดในการ upload ครับ การอ้าง path ในการเก็บรูปหรือใช้งานรูปนั้นสามารถทำได้ทั้ง relative และ absolute ครับ เช่นต้องการอ้างรูปเช่น

http://www.domain.com/images/image.jpg

ถ้า script อยู่ที่
http://www.domain.com/upload.php
การอ้างแบบ relative จะได้
image/image.jpg
โดยการอ้างแบบ absolute ตอน upload ขึ้นอยู่กับการตั้งค่าของแต่ละ host ครับ

ส่วนการเก็บไว้ใน database อาจจะเก็บเพียงชื่อไฟล์แล้วตอนแสดงผลก็เอาชื่อไฟล์มาต่อหลัง path ที่เก็บรูปเช่น "image/".$row["path"] หรืออาจจะเก็บ path ทั้งหมดก็ได้ครับ
Aramclub
Aramclub
Wed 2 Aug 2006 10:14:08

มีปัญหาเช่นกันค่ะ คือต้องการให้ภาพลง database ด้วยค่ะ  มันมีภาพอยู่เฉพาะในโฟลเดอร์ค่ะ ต้องใช้ insert ยังไงค่ะ  ตัวเก็บภาพรองรับในdb ชื่อ pic0,  pic1, pic2, pic3, pic4

<?
$host="localhost";
$username="root";
$pass_word="";
$db="mydatabase";
$tb="pic_upload";
mysql_connect( $host,$username,$pass_word) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ ");
mysql_select_db($db) or die("เลือกฐานข้อมูลไม่ได้");

          //รับค่าไฟล์ที่อัปโหลดมา
          $fileuploads[0]=$_FILES["fileupload0"];
          $fileuploads[1]=$_FILES["fileupload1"];
          $fileuploads[2]=$_FILES["fileupload2"];
          $fileuploads[3]=$_FILES["fileupload3"];
          $fileuploads[4]=$_FILES["fileupload4"];
         
         
          //ตัวแปร $action รับค่ามาจากการโพสต์
          //ถ้ากำหนดสถานะเป็น upload จะเป็นการ upload
          //ถ้าไม่กำหนดมาจะเป็นการรอรับไฟล์ที่จะอัปโหลด
          if (isset($action) && $action=="upload") {
               //อัปโหลดทีละไฟล์
               for ($i=0; $i<count($fileuploads); $i++) {
                    echo $fileuploads[$i][name]."<br>";  //แสดงชื่อไฟล์
                    echo $fileuploads[$i][tmp_name]."<br>";  //แสดงโฟลเดอร์ที่นำไปเก็บไว้
                    echo $fileuploads[$i][type]."<br>";  //แสดงชนิดของรูปภาพ
                    echo $fileuploads[$i][size]."<br>"; //แสดงขนาดภาพ
     
     $file_name=$fileuploads[$i][name];
                   
                    //ทำการอัปโหลดที่ตรงนี้
                    //อัปโหลดไปยังไดเรคทอรี่ รากของเว็บไซต์ในชื่อเดิม
                    copy($fileuploads[$i][tmp_name], "picture/".$file_name);
     
               }
          }
    $sql1= "INSERT INTO $tb (id_pic,pic0,pic1,pic2,pic3,pic4) VALUES ('','$file_name0','$file_name1','$file_name2','$file_name3','$file_name4')";
    $dbquery1 = mysql_db_query($db, $sql1);

?>
         
         
         
          <!--สำหรับการอัพโหลด-->
          <form method="post" action="./upload.php?action=upload" enctype="multipart/form-data">
          <input type="file" name="fileupload0" class="orenge" size="40"><br>
          <input type="file" name="fileupload1" class="orenge" size="40"><br>
          <input type="file" name="fileupload2" class="orenge" size="40"><br>
          <input type="file" name="fileupload3" class="orenge" size="40"><br>
          <input type="file" name="fileupload4" class="orenge" size="40"><br>
          <input type="submit" name="Submit" value="อัปโหลด" class="orenge">
          </form>

Administrator
Wed 2 Aug 2006 10:42:11
โค๊ดของคุณ Aramclub โค๊ด insert ตรง
$sql1= "INSERT INTO $tb (id_pic,pic0,pic1,pic2,pic3,pic4) VALUES ('','$file_name0','$file_name1','$file_name2','$file_name3','$file_name4')";

ผมไม่เห็นการประกาศตัวแปร $file_name1 - $file_name4 เพื่อ insert ลงฐานข้อมูลครับ ซึ่งถ้าคุณทำการ loop แล้วคุณอาจจะทำการสร้างตัวแปร $file_name เป็น array ก็ได้ครับ เข่น

for ($i=0; $i<count($fileuploads); $i++) {
    echo $fileuploads[$i][name]."<br>";  //แสดงชื่อไฟล์
    echo $fileuploads[$i][tmp_name]."<br>";  //แสดงโฟลเดอร์ที่นำไปเก็บไว้
    echo $fileuploads[$i][type]."<br>";  //แสดงชนิดของรูปภาพ
    echo $fileuploads[$i][size]."<br>"; //แสดงขนาดภาพ
     
     $file_name[]=$fileuploads[$i][name];
                   
    //ทำการอัปโหลดที่ตรงนี้
    //อัปโหลดไปยังไดเรคทอรี่ รากของเว็บไซต์ในชื่อเดิม
    copy($fileuploads[$i][tmp_name], "picture/".$fileuploads[$i][name]);
}

$sql1= "INSERT INTO $tb (id_pic,pic0,pic1,pic2,pic3,pic4) VALUES ('','".$file_name0."','$file_name[0]','".$file_name[1]."','".$file_name[2]."','".$file_name[3]."')";
Aramclub
Aramclub
Wed 2 Aug 2006 11:48:18

ทำดูแล้วค่ะ  ไม่เข้า db อยู่ดีค่ะ  ลงแต่ใน  Folder  เป็นเพราะอะไรค่ะ  มือใหม่ไม่เข้าใจค่ะ  รบกวนด้วยค่ะ

Administrator
Wed 2 Aug 2006 12:01:49
อ่อ ขออภัยครับ ตัวแปร $file_name ถูกสร้างใน loop เลยไม่สามารถนำมาใช้นอก loop ได้ครับ

$file_name = ""; //ประกาศไว้นอก loop ด้วยครับ
for ($i=0; $i<count($fileuploads); $i++) {
    echo $fileuploads[$i][name]."<br>";  //แสดงชื่อไฟล์
    echo $fileuploads[$i][tmp_name]."<br>";  //แสดงโฟลเดอร์ที่นำไปเก็บไว้
    echo $fileuploads[$i][type]."<br>";  //แสดงชนิดของรูปภาพ
    echo $fileuploads[$i][size]."<br>"; //แสดงขนาดภาพ
     
     $file_name[]=$fileuploads[$i][name];
                   
    //ทำการอัปโหลดที่ตรงนี้
    //อัปโหลดไปยังไดเรคทอรี่ รากของเว็บไซต์ในชื่อเดิม
    copy($fileuploads[$i][tmp_name], "picture/".$fileuploads[$i][name]);
}

$sql1= "INSERT INTO $tb (id_pic,pic0,pic1,pic2,pic3,pic4) VALUES ('','".$file_name0."','$file_name[0]','".$file_name[1]."','".$file_name[2]."','".$file_name[3]."')";
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login