Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

aynı veriyi 2 kere

$id = $_POST["idgel"];
$isim = $_POST["urunisim"];
 
    if($_FILES['resim']['size'][0] > 0) {
      
      baglan();
      $sorgu=sorgu("SELECT * from t_urg_urungorsel WHERE urn_id='$id'");
      while($yap=mysql_fetch_array($sorgu)) :
      $gorsell = $yap["urn_gorsel"]; 
            $TempDirectory = "moda/";
            unlink($TempDirectory."/".$gorsell);
      endwhile;

    $klasor="moda/";//dosyaları atmak istediğiniz klasörün adı
    srand ((double) microtime( )*1000000);
    $radi = rand();
    $dosya_isim_sayi=count($_FILES['resim']['name']);
    for($i=0;$i<$dosya_isim_sayi;$i++){
        if(!empty($_FILES['resim']['name'][$i])){
            move_uploaded_file($_FILES['resim']['tmp_name'][$i],"moda/".$radi.$_FILES['resim']['name'][$i]);
        }
    }
    
    foreach ($_FILES['resim']['name'] as $key=> $value) {
        $valuee = $radi.$value;        
        sorgu("
        UPDATE t_urg_urungorsel SET
            urn_gorsel = '$valuee',
            urn_ilksira = '$key',
            urn_id = '$id',
            urn_isim = '$isim'
            WHERE urn_id = '$id'    
        ");
    }           
                                      
    }  


<div class="r sag inputkapsa clearfix" style="overflow: scroll; min-height:250px; height:auto !important; height:347px;">                               
                            <?php
                            
                                $sorgu=sorgu("SELECT urn_id,urn_gorsel from t_urg_urungorsel WHERE urn_id= '{$id}'");
                                while($yap=mysql_fetch_array($sorgu)) :                                
                            ?>                                                                                                                
                             <div id="inputs"><div class="input"><input name="resim[]" id="resim[]" type="file" value="<?php echo $yap["urn_gorsel"]; ?>" /></div></div>
                                <?php echo $yap["urn_gorsel"]."<br>"; ?>                                                                    
                            <?php endwhile ?>                                                                                                                                                            
                         
                        </div>


Ürün düzenlerken şöyle bir sıkıntı var. 2 tane var veri diyelim. ilkini seçip diğerini seçmediğimizde veya ikisini de ayrı seçsek bile ilk seçtiğime göre atıyor. Boş veri bıraktığımda sadece rand() değeri algılıyor. ikisine de aynı yazıyor.

Dump ile baktım. Veriler $valuee = $radi.$value; buraya da geliyor. Veritabanına da gidiyor Ve kaydediyor.

Dosya aktarımına gelince seçtiğim dosya gerekli yere gidiyor.

Sorun nerden kaynaklanıyor acaba.

Cevaplar için teşekkür ederim
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • -1
    necmettin adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    80 cevap - 0 soru
    İlk verdiğin blokta $_FILES['resim']['name'][$i] şeklinde kullanmışsın. POST'tan gelen dosyalar resim[] olduğuna göre $_FILES['resim'][$i]['name'] olması gerekmez mi?
    • GncArt adlı üyenin fotoğrafı GncArt
      Bu kullanımda bi hata yok

      $_FILES['files']['name']


      kalıptır. Sonradan atanacak değişken sonuna [] içinde yazılır.
      10 yıl önce yazılmış
    • evr adlı üyenin fotoğrafı evr
      dosya doğru çalışıyor. Orada count ile sayması için...
      Foreach yaptığımızda $_FILES['resim']['name'] bunu okuyor zaten valuede ordada sorun yok... Hepsine dump yaptım. Ama nedense bu şekilde bir sorun mevcut
      10 yıl önce yazılmış
  • GncArt adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    42 cevap - 13 soru
    Birde LIMIT ekleyerek dener misiniz?

     
    foreach ($_FILES['resim']['name'] as $key=> $value) {
            $valuee = $radi.$value;        
            sorgu("
            UPDATE t_urg_urungorsel SET
                urn_gorsel = '$valuee',
                urn_ilksira = '$key',
                urn_id = '$id',
                urn_isim = '$isim'
                WHERE urn_id = '$id'  LIMIT 1");
    
    • GncArt adlı üyenin fotoğrafı GncArt
      Ayrıca UPTADE sorgusunu niye döngü içine yazdınız onu anlamadım. Sadece değişkenleri foreach ile alıp sorguyu 1 kez yaptırmalısın.
      10 yıl önce yazılmış
    • evr adlı üyenin fotoğrafı evr
      ikisini doldurunca değiştiriyor ama biri veya hepsi boş olduğunda sadece rand() değeri yazıyor dosya ismini vermiyor.
      10 yıl önce yazılmış
    • evr adlı üyenin fotoğrafı evr
      GncArt; demek istediğini tam anlamadım. Bir örnek verirsen. LIMIT 1 sorunu biraz çözdü gibi..
      ama yukarıda ifade ettiğim sorun devam ediyor hala...
      10 yıl önce yazılmış
    • GncArt adlı üyenin fotoğrafı GncArt
      sorgu(); fonksiyonunu foreach döngüsünden bağımsız olarak yapmanı istemiştim. En altta düzelterek yazdım.

       
       
      $id = $_POST["idgel"];
      $isim = $_POST["urunisim"];
       
          if($_FILES['resim']['size'][0] > 0) {
            
            baglan();
            $sorgu=sorgu("SELECT * from t_urg_urungorsel WHERE urn_id='$id'");
            while($yap=mysql_fetch_array($sorgu)) :
            $gorsell = $yap["urn_gorsel"]; 
                  $TempDirectory = "moda/";
                  unlink($TempDirectory."/".$gorsell);
            endwhile;
      
          $klasor="moda/";//dosyaları atmak istediğiniz klasörün adı
          srand ((double) microtime( )*1000000);
          $radi = rand();
          $dosya_isim_sayi=count($_FILES['resim']['name']);
          for($i=0;$i<$dosya_isim_sayi;$i++){
              if(!empty($_FILES['resim']['name'][$i])){
                  move_uploaded_file($_FILES['resim']['tmp_name'][$i],"moda/".$radi.$_FILES['resim']['name'][$i]);
              }
          }
          
          foreach ($_FILES['resim']['name'] as $key=> $value) {
              $valuee = $value.$radi;
          }     
      
           sorgu("UPDATE t_urg_urungorsel SET  urn_gorsel = '$valuee', urn_ilksira = '$key', urn_id = '$id', urn_isim = '$isim' WHERE urn_id = '$id'  LIMIT 1 "); 
                                            
          }  
      
      
      10 yıl önce yazılmış
    • evr adlı üyenin fotoğrafı evr
      sorunsal hala devam ediyor. inputun biri boş olunca random değeri atıyor sadece
      10 yıl önce yazılmış
    • GncArt adlı üyenin fotoğrafı GncArt
      Sorununu tam nedenini anlamış değilim fakat kullandığım bir ürün düzünleme kodunu paylaşıyorum. Gerekli yerleri değiştirerek denemeni isteyeceğim.

       
      <?php
      $id=$_GET['id'];
      $t=mysql_fetch_array(mysql_query("SELECT * FROM urun WHERE id='$id'"));
      
      foreach($_POST AS $key => $value) {${$key} = $value;} $ip=$_SERVER['REMOTE_ADDR'];
      
      if ($make!="") {
      	mysql_query("UPDATE `urun` SET `kid` = '$kategori',
      `make` = '$make',
      `model` = '$model',
      `size` = '$size',
      `year` = '$year',
      `impression` = '$impression',
      `location` = '$location',
      `price` = '$price',
      `description` = '$description',
      `aciklama` = '$aciklama',
      `other` = '$diger',
      `special` = '$special' WHERE `id` ='$id' LIMIT 1 ;") or die("Hata..".mysql_error());
      	echo '<div align="center"><div class="tamam" align="left">
         Ürün Başarıyla Güncellendi...<br><br> <a href="panel.php?q=urunler">Geri Dön</a></div></div>';	
      	} else {
      ?>
      <form id="form1" name="kat_ekle" method="post" action="">
       ... form kodları..
      </form>
      <?php } ?>
      
      


      form kodları alanında ise input değerlerini en başta yaptırdığım sorgudan alıyorum.ör:

      
      <input type="text" value="<?php echo $t['make']; ?>" />
      ...
       
      10 yıl önce yazılmış
    • evr adlı üyenin fotoğrafı evr
      maalsef olmuyor. İlkini seçiyorum value değeri boş dönüyor ama FILES dumpta görüyorum veriyi... Foreachi dediğiniz gibi de denedim olmadı.
      10 yıl önce yazılmış
    • GncArt adlı üyenin fotoğrafı GncArt
      Benim anlamdığım ürün düzenleme sayfasında verilerin değerlerini çektiğinizde sonuçta input alanın içi dolu oluyor. Eğer değiştirmeseniz bile sadece değişen kısımlar güncellenir. Diğer içeriğin değeri sıfırlanmaz.

      Değerleri alırken ki SQL sorgunuzu dikkatlice yapınız.
      10 yıl önce yazılmış
  • Hasan adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    63 cevap - 0 soru
    Sanırım ben sorunu pek anlamadım. Bugün ki eğitimden olsa gerek neyse.. Şimdi senin kodda gördüğüm kadarıyla input value'ları ürüne ait resimleri vermişsin. Buda ürün düzenlemede yeni resim seçmesede value'daki resimleri alıp tekrar yükletiyorsun? Yanlış mı görmüşüm?

    random ürettiğin sayı ise for veya foreach dışında kaldığı için hep aynı kalır. Gerçi bu sorun teşkil etmeyebilir ama döngü içinde oluştursan farklı sayılar olup çeşitlilik artışı sağlar :)

    Son olarak neden 2 ayrı döngü var? aslında ikisinde de yapmak istenen aynı fazladan kullanmışsın sanırım. ya foreach olanı ya da for olanı kullansanda tek döngüde bütün işlemlerini halletsen daha iyi olmaz mı?

    Bide gerçekten ben tam olarak sorunun ne olduğunu anlamadım biraz detay anlatabilir misin ne yapmak istediğini ?
    • evr adlı üyenin fotoğrafı evr
      for döngüsüne taşıdım hepsini... rand() üretimi pek önemli değil şuan.

      LIMIT1 koydum sorguya... birtanesini seçip diğerini seçmediğimde boş veri geliyor. Onun dışında ikisini doldurunca normal çalışıyor. Sorun tam olarak böyle.

      Cevaplar için teşekkür ederim
      10 yıl önce yazılmış