• 09-02-2015, 17:13:03
    #1
    Üyeliği durduruldu
    Merhaba Arkadaşlar Bir Sayfa Düzenleme Formum Mevcut Herhangi Bir Sayfayı Düzenlemek İçin Giriş Yaptığımda Sayfaya Ait Resimleri Çekiyorum Aşağıdaki Kodlardan.

    <?php
    				$resimSql = mysql_query("SELECT * FROM resimler WHERE resim_sayfa_id = '".$gelenId."'");
    				if (mysql_num_rows($resimSql) != 0) {
    					while ($resimYaz = mysql_fetch_assoc($resimSql)) {
    						$resimId = $resimYaz['resim_id'];
    						$resimAdi = $resimYaz['resim_uniq'];
    						$resimAd = $resimYaz['resim_adi'];
    						$resimAcik = $resimYaz['resim_aciklama'];
    						echo '<span class="res" style="float:left;display:block;margin-bottom:40px;"><img src="upload/';
    						echo $resimYaz["resim_uniq"];
    						echo '_150.jpg"><a href="#" data-tablo="resimler" data-id="'.$resimId.'">X</a><br><br>';
    						echo '<input type="text" name="resim_adi[]" class="form-control" style="width:90%;" value="';
    						echo $resimAd;
    						echo '"><br>';
    						echo '<input type="text" name="resim_aciklamasi[]" class="form-control" style="width:90%;" value="';
    						echo $resimAcik;
    						echo '">';
    						echo '<input type="hidden" value="'.$resimId.'" name="resimIdd[]">';
    						echo '</span>';
    					}
    				}else {
    						echo "Sayfaya Ait Resim Yok!";
    					}
    			?>
    1'den fazla resim olduğu için verileri Dizi şeklinde alıyorum farkettiyseniz inputların Name'lerinin sonunda [] şeklinde dizi olduğunu belirtiyorum. Yalnız Buradaki işlem şu resimlerin altında 2 tane input var 1 tanesi resmin adını diğeri ise resmin açıklamasının girildiği. Hangi resmin açıklaması ve başlığı girildiyse sadece o resmin ve adı ve başlığının update edilmesi diğer bir şartımda hangi sayfa düzenleniyorsa sadece o sayfaya ait resimlerin düzenlenmesi gerekiyor. Aşağıda ki kodlarda ise formdan gelen verileri ve resimlerin adı ve açıklamasıyla ilgili postları çekiyorum.

    <?php
    	if ($_POST) {
    		$sayfa_baslik = p('sayfa_baslik');
    		$sayfa_icerik = p('sayfa_icerik');
    		$sayfa_seo_link = p('sayfa_seo_link');
    		$sayfa_kat = p('sayfa_kat');
    		$sayfa_durum = p('sayfa_durum');
    		$sayfa_tarih = date('Y.m.d H:i:s');
    		$resimler = array($_POST['resimIdd'],$_POST['resim_adi'],$_POST['resim_aciklamasi']);
    		if (!$sayfa_baslik || !$sayfa_icerik || !$sayfa_kat) {
    			echo "<div class=\"alert alert-danger\">Lütfen Alanları Doldurunuz!</div>";
    		}else {
    			//echo "opps"; 
    			$update = mysql_query("UPDATE sayfalar SET sayfa_baslik = '".$sayfa_baslik."',
    			sayfa_icerik = '".$sayfa_icerik."',sayfa_seo = '".$sayfa_seo_link."',
    			sayfa_kat = '".$sayfa_kat."',sayfa_durum = '".$sayfa_durum."',
    			sayfa_tarih = '".$sayfa_tarih."' WHERE sayfa_id = '".$gelenId."' ");
    			//SELECT * FROM resimler WHERE resim_sayfa_id = '".$gelenId."'
    			if (!$update) {
    				echo "<div class=\"alert alert-danger\">Bir Hata Oluştu. Devamı Halinde Yöneticiye Başvurun.</div>";
    				yonlendir('index.php?do=sayfa-duzenle',2);
    			}else {
    				
    			}
    		}
    	}
    ?>
    $gelenId -> değeri ise sayfanın id'sini belirtmekte arkadaşlar. Lütfen Bana Yardımcı Olabilir misiniz ? Bu Konuyla Alakalı burada ki amaç ise birden fazla resim olduğu için resimlerin başlık ve açıklamalarını dizi şeklinde alıp posttan gelen resim id'sine göre verileri eşleştirip Database'ye update Ettirmek.

    Aşağıdaki Kodlar Tamamiyle sayfa-duzenle.php içerisinde ki kodlar arkadaşlar.

    <?php
    	$gelenId = g('id');
    ?>
    <h1 class="page-header">Sayfa Düzenle</h1>
    <?php
    	if ($_POST) {
    		$sayfa_baslik = p('sayfa_baslik');
    		$sayfa_icerik = p('sayfa_icerik');
    		$sayfa_seo_link = p('sayfa_seo_link');
    		$sayfa_kat = p('sayfa_kat');
    		$sayfa_durum = p('sayfa_durum');
    		$sayfa_tarih = date('Y.m.d H:i:s');
    		$resimler = array($_POST['resimIdd'],$_POST['resim_adi'],$_POST['resim_aciklamasi']);
    		if (!$sayfa_baslik || !$sayfa_icerik || !$sayfa_kat) {
    			echo "<div class=\"alert alert-danger\">Lütfen Alanları Doldurunuz!</div>";
    		}else {
    			//echo "opps"; 
    			$update = mysql_query("UPDATE sayfalar SET sayfa_baslik = '".$sayfa_baslik."',
    			sayfa_icerik = '".$sayfa_icerik."',sayfa_seo = '".$sayfa_seo_link."',
    			sayfa_kat = '".$sayfa_kat."',sayfa_durum = '".$sayfa_durum."',
    			sayfa_tarih = '".$sayfa_tarih."' WHERE sayfa_id = '".$gelenId."' ");
    			//SELECT * FROM resimler WHERE resim_sayfa_id = '".$gelenId."'
    			if (!$update) {
    				echo "<div class=\"alert alert-danger\">Bir Hata Oluştu. Devamı Halinde Yöneticiye Başvurun.</div>";
    				yonlendir('index.php?do=sayfa-duzenle',2);
    			}else {
    				
    			}
    		}
    	}
    ?>
    <?php
    	$sql = mysql_query("SELECT * FROM sayfalar WHERE sayfa_id = '".$gelenId."'");
    	$yaz = mysql_fetch_array($sql);
    ?>
    <form action="" method="POST">
    	<div class="form-group">
    	    <label>Sayfa ID</label>
    	    <input class="form-control" name="sayfa_id" disabled style="width:40%" value="<?php echo $yaz['sayfa_id'];?>">
    	</div>
    	<div class="form-group">
    	    <label>Sayfa Başlık</label>
    	    <input class="form-control" name="sayfa_baslik" style="width:40%" value="<?php echo $yaz['sayfa_baslik'];?>">
    	</div>
    	<div class="form-group">
    	    <label>Sayfa İçerik</label>
    	    <textarea class="form-control" rows="3" name="sayfa_icerik" style="width:40%"><?php echo $yaz['sayfa_icerik'];?></textarea>
    	</div>
    	<div class="form-group">
    	    <label>Sayfa Seo</label>
    	   <input class="form-control" name="sayfa_seo_link" style="width:40%" value="<?php echo $yaz['sayfa_seo'];?>">
    	</div>
    	<div class="form-group">
    	    <label>Sayfa Durum</label>
    	    <select class="form-control" style="width:40%;" name="sayfa_durum">
    			<option value="1" <?php echo $yaz['sayfa_durum'] == 1 ? 'selected' : ''?>>Yayında</option>
    			<option value="0" <?php echo $yaz['sayfa_durum'] == 0 ? 'selected' : ''?>>Yayında Değil</option>
    		</select>
    	</div>
    	<div class="form-group">
    	    <label>Sayfanın Bağlı Olduğu Kategori</label>
    	    <select class="form-control" style="width:40%;" name="sayfa_kat">
    	    	<?php
    	    		$sql2 = mysql_query("SELECT * FROM sayfalar INNER JOIN kategoriler ON sayfalar.sayfa_id = '".$gelenId."' and kategoriler.kat_durum = 1");
    	    		if (mysql_num_rows($sql2) != 0) {
    	    			while ($yaz2 = mysql_fetch_assoc($sql2)) {
    	    	?>
    	    	<option value="<?php echo $yaz2['kat_id'];?>" <?php echo $yaz2['kat_id'] == $yaz2['sayfa_kat'] ? 'selected' : ''?>><?php echo $yaz2['kat_adi'];?></option>
    	    	<?php
    	    			}
    	    		}
    	    	?>
    	    </select>
    	</div>
    	<div class="form-group">
    	    <label>Sayfa Tarih</label>
    	    <input class="form-control" name="sayfa_tarih" style="width:40%" value="<?php echo $yaz['sayfa_tarih']; ?>" disabled>
    	</div>
    	<div class="form-group">
    	<label>Sayfaya Ait Resimler</label><br>
    		<div class="form-group">
    			<?php
    				$resimSql = mysql_query("SELECT * FROM resimler WHERE resim_sayfa_id = '".$gelenId."'");
    				if (mysql_num_rows($resimSql) != 0) {
    					while ($resimYaz = mysql_fetch_assoc($resimSql)) {
    						$resimId = $resimYaz['resim_id'];
    						$resimAdi = $resimYaz['resim_uniq'];
    						$resimAd = $resimYaz['resim_adi'];
    						$resimAcik = $resimYaz['resim_aciklama'];
    						echo '<span class="res" style="float:left;display:block;margin-bottom:40px;"><img src="upload/';
    						echo $resimYaz["resim_uniq"];
    						echo '_150.jpg"><a href="#" data-tablo="resimler" data-id="'.$resimId.'">X</a><br><br>';
    						echo '<input type="text" name="resim_adi[]" class="form-control" style="width:90%;" value="';
    						echo $resimAd;
    						echo '"><br>';
    						echo '<input type="text" name="resim_aciklamasi[]" class="form-control" style="width:90%;" value="';
    						echo $resimAcik;
    						echo '">';
    						echo '<input type="hidden" value="'.$resimId.'" name="resimIdd[]">';
    						echo '</span>';
    					}
    				}else {
    						echo "Sayfaya Ait Resim Yok!";
    					}
    			?>
    		</div>
    	</div>
    	<button type="submit" class="btn btn-success" style="margin-bottom:30px;">Düzenlemeyi Bitir</button>
    </form>
    <script src="http://code.jquery.com/jquery-1.6.3.min.js"></script>   
    <script>
    	$(document).ready(function() {
    		$('.res > a').click(function(){
    			var $sil = $(this).parent();
    			var $id = $(this).data('id');
    			var $tablo = $(this).data('tablo');
    			$.post('resim-sil.php',{'id':$id,'tablo':$tablo},function(c){
    				if(c == 'Silindi.'){
    					$('a',$sil).fadeOut();
    					$('img',$sil).fadeOut();
    					$($sil).html(c);
    				}
    			});
    			return false;
    		});
    	});
    </script>
    Yardımcı Olan Arkadaşlara Şimdiden Teşekkürler.
  • 09-02-2015, 19:26:24
    #2
    Inputlardaki array kısımlarına sabit bir sayaç atarsanız sorunu çözersiniz.

    Hatta komple bütün arraylara gelen verinin id numarasını atayip 2 boyutlu dizi yaparsanız güncelleme vs çok daha kolay olur. Bir çok dizi ile uğraşmak yerine tek dizi ve bunun alt dizileri ile uğraşırsınız.

    Örneğin

    <?php
    $sayac = 0;
    $resimSql = mysql_query("SELECT * FROM resimler WHERE resim_sayfa_id = '".$gelenId."'");
    if (mysql_num_rows($resimSql) != 0) {
       while ($resimYaz = mysql_fetch_assoc($resimSql)) {
    	  $resimId = $resimYaz['resim_id'];
    	  $resimAdi = $resimYaz['resim_uniq'];
    	  $resimAd = $resimYaz['resim_adi'];
    	  $resimAcik = $resimYaz['resim_aciklama'];
    	  echo '<span class="res" style="float:left;display:block;margin-bottom:40px;"><img src="upload/';
    	  echo $resimYaz["resim_uniq"];
    	  echo '_150.jpg"><a href="#" data-tablo="resimler" data-id="'.$resimId.'">X</a><br><br>';
    	  echo '<input type="text" name="resim_adi['.$sayac.']" class="form-control" style="width:90%;" value="';
    	  echo $resimAd;
    	  echo '"><br>';
    	  echo '<input type="text" name="resim_aciklamasi['.$sayac.']" class="form-control" style="width:90%;" value="';
    	  echo $resimAcik;
    	  echo '">';
    	  echo '<input type="hidden" value="'.$resimId.'" name="resimIdd[]">';
    	  echo '</span>';
    	  ++$sayac;
       }
    }else {
    	  echo "Sayfaya Ait Resim Yok!";
       }
    ?>
    Daha sonra veri post edildiğinde 2 diziyi okuyup, dizi indislerine göre eşleştirme yapabilirsiniz.

    Kodlarda resimlerin update edildiği kısmı göremedim o yüzden tam olarak ihtiyacınızı karşılamayabilir.
  • 09-02-2015, 19:51:53
    #3
    Üyeliği durduruldu
    Hocam resmi tekrardan yüklemesini yapmıyorum zaten burada sadece resmin başlık ve açıklamasını update ediyorum resmin yüklemesini başka bir sayfa da yaptırıyorum. Sayfanın tüm kodlarını paylaştım düzenlemesini yapıp tekrardan yazabilir misiniz ?
  • 09-02-2015, 20:04:27
    #4
    Anladım yapmak istediğinizi fakat

    $resimler = array($_POST['resimIdd'],$_POST['resim_adi'],$_POST['resim_aciklamasi']);

    satırında açıklama ve resimleri değişkene atıyorsunuz ama bunlar nerede update ediliyor.

    Yani tüm işlemler tamam update kısmını mı yazmadınız ?
  • 09-02-2015, 22:38:31
    #5
    Üyeliği durduruldu
    Hayko adlı üyeden alıntı: mesajı görüntüle
    Anladım yapmak istediğinizi fakat

    $resimler = array($_POST['resimIdd'],$_POST['resim_adi'],$_POST['resim_aciklamasi']);

    satırında açıklama ve resimleri değişkene atıyorsunuz ama bunlar nerede update ediliyor.

    Yani tüm işlemler tamam update kısmını mı yazmadınız ?
    Dizi değişkenine basıyorum ama foreach ile update etmem gerekiyo idye göre onu yazamıyorum. İşte. İdye göre diğer 2 veriyi eşleştirmem gerekiyor ama yapamıyorum.
  • 09-02-2015, 22:52:49
    #6
    Psd2Css adlı üyeden alıntı: mesajı görüntüle
    Dizi değişkenine basıyorum ama foreach ile update etmem gerekiyo idye göre onu yazamıyorum. İşte. İdye göre diğer 2 veriyi eşleştirmem gerekiyor ama yapamıyorum.
    Şöyle yapalım o halde.

    Üstteki verdiğim kod parçasını mevcut dosyanızda güncelleyin.

    Update için ise

    $resimler = array($_POST['resimIdd'],$_POST['resim_adi'],$_POST['resim_aciklamasi']);
    satırını şu şekilde değiştirin

    $resimAdi =@ $_POST['resim_adi'];
    $resimAciklamasi =@ $_POST['resim_aciklamasi'];
    resim bilgisini update için ise şunu kullanabilirsiniz.

    Az önce aynı indisli diziye atmıştık şimdi o indis ile eşleme yaptık.

    if (!$update) ile başlayan kısmı else bloğuna yazılabilir.

    foreach($resimAdi as $index=>$res)
    {
    	$ack =@ $resimAciklamasi[$index];
    	if(!empty($res) && !empty($ack))
    	{
    		//burda resim aciklamasi guncellenir
    	}
    }
  • 10-02-2015, 14:50:55
    #7
    Üyeliği durduruldu
    Yardım edebilecek biri yok mu ?
  • 10-02-2015, 17:32:18
    #8
    Array yerine json kullanabilirsin.