• 16-10-2009, 23:33:30
    #1
    Merhaba Arkadaşlar,
    Ben ayı anda 5 tane resim birden upload etmek istiyorum. 5 tane <input>tag eklemek yerine tek <input> kullanıp bunu while döngüsü ile artırdım. Yani while döngüsünü 5'e eşitlediğim için döngü 5 kere çalışıp 5 kez resim yüklüyor. while döngüsünün içine resim küçültme kodu ekledim. Yani resim upload olurken aynı zaman da upload olan resmi istediğim boyutlarda kırpıp ayrı bir resim yaratıyorum.
    Döngüden geçirdiğim bu resimlerin adreslerini veritabanına saklamak istiyorum. 5 tane resim eklemek istiyorum. Birde eklenen bu 5 resmin küçültülmü halleri ile toplam 10 tane resim dosyası elde ediyoruz. Veritabanında resimlerin yollarını kayıt etmek için 10 tane tablo açıyorum.
    Buraya kadar herşey normal. Lakin while içindeki döngülerin toplamını aynı anda mysql e nasıl atarım.

    İşte Resim Yükleme Kodu:
    <?php include("include/resim_yukle_1.php"); //Bu dosya resmi küçültmek gereken class değişkenlerini içeriyor.
    
    
    $numfilesuploaded = $_POST['numuploads'];
          $count = 1;
          while ($count <= $numfilesuploaded) {
          	
          	$conname1 = "new_file".$count;
          	if($_FILES[$conname1]["size"] > 0){
    		$folderOriginal = "upload/sliding/galeri/";
    		$folderMedium   = "upload/sliding/galeri/";
    		$folderSmall    = "upload/sliding/galeri/thumb/";
    		$folderNormal    = "upload/sliding/normal/";
    		
    		$resim = resim_yukle("$conname1", $folderOriginal);
    		if($resim != false){		
    			_basari("<b>".$_FILES["$conname1"]["name"]."</b> başarıyla sunucuya yüklendi!");
    
    			$img = new Zubrag_image;
    		
    			// initialize
    			$img->max_x        = 100; // ex 100
    			$img->max_y        = 100; // ex 100
    			$img->cut_x        = 0; // ex 800, set to 0 to skip
    			$img->cut_y        = 0; // ex 600, set to 0 to skip
    			$img->quality      = 100; // 0 to 100, 0 - bad, 100 best
    			$img->save_to_file = 1; // 1 - save to file, 0 - output in browser
    			$img->image_type   = -1; // -1 - use default, 1 = save as GIF, 2 = JPG, 3 = PNG
    
    			// generate thumbnail
    			$img->max_x = 120;
    			$img->max_y = 120;
    			
    			
    			$img->GenerateThumbFile($folderOriginal.$resim, $folderSmall."sm_".$resim);
    			$kucuk="http://".$_SERVER['SERVER_NAME']."/santatur/admin/".$folderSmall."sm_".$resim;
    			$normal="http://".$_SERVER['SERVER_NAME']."/santatur/admin/".$folderOriginal.$resim;
    		    if ($normal)
    		    {
    		    	mysql_query("INSERT INTO resimler VALUES ('$normal')");
    		    	echo "başarılı";
    		    	
    		    }
    		    else {echo "Başarısız";}
    			
    			
    			// gecici resmi sil
    			//unlink($folderOriginal.$resim); 
    		}
    		else
    		{"HATA! <b>".$_FILES["$conname1"]["name"]."</b> sunucuya yüklenemedi!";}
          	}
          	
          
          $count = $count + 1;
          }
    
        //$normal değişkeni resmin orjinal halininin yolunu, mysql'e kaydetmek için saklar.
      //$kucuk değişkeni, küçültülmüş olan resminin yolunu, mysql'e kaydetmek için saklar.      
       
    ?>
    Yukardaki koda göre çıkcak olan 10 tane dosya yolunu aynı anda veritanına nasıl kaydedebilirim. While'nin içinde döngü olduğu için bir türlü yapamadım. Her seferinde yeni bir kayıt ekleniyor veritabanına.
    Yardımlarınız için teşekkür ederim.
  • 16-10-2009, 23:37:42
    #2
    sen zaten o 5 resim için ayrı ayrı kayıt istemiyormusun ?
  • 16-10-2009, 23:44:46
    #3
    Gripin adlı üyeden alıntı: mesajı görüntüle
    sen zaten o 5 resim için ayrı ayrı kayıt istemiyormusun ?
    Tam olarak istediğim Şöyle: while döngüsünün içinde geçen resimler (kırpılan resimler ile beraber toplam 10 tane) tek bir id numarasının altında kaydolacaklar. herbiri ayrı bir id numarası ile kaydolmayacak. Bu şekilde yapmmanın sebebi ise şu: her bir id numarası bir yer yada mekanla ilgili resimleri tutacak. Yani id[1] trabzon ile ilgili 5 resmi ve saklayacak. Ben id ile sorgulama yaptığımda id[1]'içindeki bütün resimler dökülecek. Öteki türlü hangi resmi nereye ait olduğunu anlayamam.
  • 16-10-2009, 23:47:55
    #4
    Ben bu tarz durumlarda sadece.Resim name değerini VT ye ekliyorum. Neden diyecek olursan sonuçta bir küçük birde büyük resim dosyası var ama isimleri aynı. sadece klasörleri farklı. Resimleri yazıdırırken
    <img src="<?php echo 'normal/$resim' ?>"
    <img src="<?php echo 'kucuk/$resim' ?>"
    şeklinde çekiyorum. Daha mantıklı değilmi.
  • 16-10-2009, 23:56:04
    #5
    <?php include("include/resim_yukle_1.php"); //Bu dosya resmi küçültmek gereken class değişkenlerini içeriyor.
    $numfilesuploaded = $_POST['numuploads'];
          $count = 1;
    $c=0;
          while ($count <= $numfilesuploaded) {
              $c++;
                if ($c == '1')
                mysql_query("INSERT INTO resimler (resim1) VALUES ('.')");
                if ($sqlid == '')
                $sqlid=mysql_insert_id();
              $conname1 = "new_file".$count;
              if($_FILES[$conname1]["size"] > 0){
            $folderOriginal = "upload/sliding/galeri/";
            $folderMedium   = "upload/sliding/galeri/";
            $folderSmall    = "upload/sliding/galeri/thumb/";
            $folderNormal    = "upload/sliding/normal/";
            $resim = resim_yukle("$conname1", $folderOriginal);
            if($resim != false){        
                _basari("<b>".$_FILES["$conname1"]["name"]."</b> başarıyla sunucuya yüklendi!");
                $img = new Zubrag_image;
                // initialize
                $img->max_x        = 100; // ex 100
                $img->max_y        = 100; // ex 100
                $img->cut_x        = 0; // ex 800, set to 0 to skip
                $img->cut_y        = 0; // ex 600, set to 0 to skip
                $img->quality      = 100; // 0 to 100, 0 - bad, 100 best
                $img->save_to_file = 1; // 1 - save to file, 0 - output in browser
                $img->image_type   = -1; // -1 - use default, 1 = save as GIF, 2 = JPG, 3 = PNG
                // generate thumbnail
                $img->max_x = 120;
                $img->max_y = 120;
                $img->GenerateThumbFile($folderOriginal.$resim, $folderSmall."sm_".$resim);
                $kucuk="http://".$_SERVER['SERVER_NAME']."/santatur/admin/".$folderSmall."sm_".$resim;
                $normal="http://".$_SERVER['SERVER_NAME']."/santatur/admin/".$folderOriginal.$resim;
                if ($normal)
                {
                mysql_query("UPDATE resimler SET resim".$c."='$normal', thumb".$c."='$kucuk' where id='".$sqlid"'");
                echo "başardın moruk";
                }
                else {echo "Başarısız";}
                // gecici resmi sil
                //unlink($folderOriginal.$resim); 
            }
            else
            {"HATA! <b>".$_FILES["$conname1"]["name"]."</b> sunucuya yüklenemedi!";}
              }
          $count = $count + 1;
          }
        //$normal değişkeni resmin orjinal halininin yolunu, mysql'e kaydetmek için saklar.
      //$kucuk değişkeni, küçültülmüş olan resminin yolunu, mysql'e kaydetmek için saklar.      
    ?>
    bunu yap ve resimler tablon şöyle olsun:
    id, resim1, thumb1, resim2, thumb2, resim3, thumb3, resim4, thumb4, resim5, thumb5


    aLKaDraZ adlı üyeden alıntı: mesajı görüntüle
    Ben bu tarz durumlarda sadece.Resim name değerini VT ye ekliyorum. Neden diyecek olursan sonuçta bir küçük birde büyük resim dosyası var ama isimleri aynı. sadece klasörleri farklı. Resimleri yazıdırırken
    <img src="<?php echo 'normal/$resim' ?>"
    <img src="<?php echo 'kucuk/$resim' ?>"
    şeklinde çekiyorum. Daha mantıklı değilmi.
    bende öyle yapıyorum. mantıklı.
  • 17-10-2009, 05:53:24
    #6
    Teşekkürler Gripin,
    Kodun sorunsuz çalıştı. Kafayı sıyıracaktım. While içinde bir türlü aynı sıra içinde verileri yazamadım.
    Güzel koddu.