• 03-09-2014, 10:27:18
    #1
    Üyeliği durduruldu
    Merhaba arkadaşlar

    form sayfam

      <tr class="<?   if ($gosterurun['id']%2==0) {echo "active";} ?>" id="form">
              <td><input value="1" id="stok2<?=$gosterurun['id'];?>" name="check[]" type="checkbox"></td>  
                <input type="hidden" value="<?=$gosterurun['id'];?>" name="urunid[]">
                  <input type="hidden" value="<?=$bayilogid;?>" name="bayiid">
                   <input type="hidden" value="<?=$bayilogadi;?>" name="bayiadi">
                <td><?=$gosterurun['urunadi'];?></td>
                 <input type="hidden" value="<?=$gosterurun['urunadi'];?>" name="urunadi[]">
              <td><?=$gosterurun['urunfiyati'];?> tl</td>
               <input type="hidden" value="<?=$gosterurun['urunfiyati'];?>" name="urunfiyati[]">
             
                <td><input style="float:left;" type="button" onclick="arttir<?=$gosterurun['id'];?>('stok<?=$gosterurun['id'];?>'),arttir<?=$gosterurun['id'];?>('stok2<?=$gosterurun['id'];?>'),arttir<?=$gosterurun['id'];?>(
    document.getElementById('stok2<?=$gosterurun['id'];?>').checked=true)" class="btn btn-default" value="+">
    
               
                <input style="float:right;"  type="button"  class="btn btn-default" onclick="azalt<?=$gosterurun['id'];?>('stok<?=$gosterurun['id'];?>'),azalt<?=$gosterurun['id'];?>('stok2<?=$gosterurun['id'];?>')" value="-">
                
                
               <center>  <input onfocus="this.blur();" id="stok<?=$gosterurun['id'];?>" style="width:30%;" name="adet[]"  class="form-control" value="0"></center></td>
           </tr>

    gelen verileri ise

    $urunadi     = @$_POST['urunadi'];
    $urunfiyati  = @$_POST['urunfiyati'];
    $urunid      = @$_POST['urunid'];
    $bayiadi     = @$_POST['bayiadi'];
    $bayiid      = @$_POST['bayiid'];
    $adet		 = @$_POST['adet'];
    $check		 = @$_POST['check'];
    $onay = '0';
    $unixtarih = strtotime($tarih);
    
    
    
    if (!empty($adet)) {
    for($i=0;$i<count($urunid);$i++){
    $toplam = $urunfiyati[$i]*$adet[$i];
    $query = mysql_query("INSERT INTO siparisler (urunid,urunadi,spverenbayi,bayiadi,urunfiyati,sptarih,unixtarih,saat,adet,toplam,onay) VALUES ('$urunid[$i]','$urunadi[$i]','$bayiid','$bayiadi','$urunfiyati[$i]','$tarih','$unixtarih','$saat','$adet[$i]','$toplam','0')");
     }
    mysql_query("delete from siparisler where adet = '0'"); 
    echo "<script>";
    			echo "alert('Destek ticketi başarı ile oluşturuldu.');";
    			echo "window.close();";
    			echo 'window.location.href="siparisonayi.php"';
    			echo "</script>";
    
    }
    şeklinde alıyorum gordugunuz gibi once kaydettirip sonra adeti boş olanları siliyorum çok sacma bir yol izliyorum bu yuzden yardımınız lazım gelen verileri check secili olmayınca sadece seciliye ait veriler kaydedilsin. işlemler sıralı oldugu için checki secmeyince en üstte gelen veri kaydediliyor işin içinden çıkamadım bilen arkadaşlar yardımcı olursa sevinirim.
  • 03-09-2014, 11:01:38
    #2
    Üyeliği durduruldu
    if (!empty($adet) AND $check != 0) { 
    for($i=0;$i<count($urunid);$i++){ 
    $toplam = $urunfiyati[$i]*$adet[$i]; 
    $query = mysql_query("INSERT INTO siparisler (urunid,urunadi,spverenbayi,bayiadi,urunfiyati,sptarih,unixtarih,saat,adet,toplam,onay) VALUES ('$urunid[$i]','$urunadi[$i]','$bayiid','$bayiadi','$urunfiyati[$i]','$tarih','$unixtarih','$saat','$adet[$i]','$toplam','0')"); 
     } 
    echo "<script>"; 
                echo "alert('Destek ticketi başarı ile oluşturuldu.');"; 
                echo "window.close();"; 
                echo 'window.location.href="siparisonayi.php"'; 
                echo "</script>"; 
    
    }
  • 03-09-2014, 12:46:44
    #3
    Üyeliği durduruldu
    hocam dediginiz gibi yapıyorum fakat sorun şurda 4 adet ürün var diyelim 1 ile 3 e check seçtim sadece 1 ile 3 adet verileri kaydetmeliyim bu şekilde 1 2 kaydediliyor 3 4 kalıyor yani check count sayısına göre veri kaydediyor sırasına göre değil en önemli sorun bu.
  • 03-09-2014, 14:59:16
    #4
    Balanar adlı üyeden alıntı: mesajı görüntüle
    hocam dediginiz gibi yapıyorum fakat sorun şurda 4 adet ürün var diyelim 1 ile 3 e check seçtim sadece 1 ile 3 adet verileri kaydetmeliyim bu şekilde 1 2 kaydediliyor 3 4 kalıyor yani check count sayısına göre veri kaydediyor sırasına göre değil en önemli sorun bu.
    if (!empty($adet)) { 
    for($i=0;$i<count($urunid);$i++){
    
    	if ($check[$i] == '1')
    	{
    		$toplam = $urunfiyati[$i]*$adet[$i];
    		$query = mysql_query("INSERT INTO siparisler (urunid,urunadi,spverenbayi,bayiadi,urunfiyati,sptarih,unixtarih,saat,adet,toplam,onay) VALUES ('$urunid[$i]','$urunadi[$i]','$bayiid','$bayiadi','$urunfiyati[$i]','$tarih','$unixtarih','$saat','$adet[$i]','$toplam','0')"); 
    	}
    } 
    
    echo "<script>"; 
                echo "alert('Destek ticketi başarı ile oluşturuldu.');"; 
                echo "window.close();"; 
                echo 'window.location.href="siparisonayi.php"'; 
                echo "</script>"; 
    
    }
    bu şekilde dener misiniz ?

    eğer olmazsa alternatif olarak şöyle bir yol deneyebilirsiniz.

    html kısmında dizi olarak post edilen tüm inputların namelerine ürün id yide eklersiniz yani örneğin şu şekilde:

    <input value="1" id="stok2<?=$gosterurun['id'];?>" name="check[<?=$gosterurun['id'];?>]" type="checkbox">
    daha sonra php kısmında ise döngünüzü şu şekile yaparsınız.

    foreach ($check => $urun_id => $value){
    
    }
    bu döngüde $urun_id degiskeni ürün id sini value ise check olup olmadığını verir if ($value == '1') gibi bir şartlada insert işleminizi yapabilirsiniz.
  • 03-09-2014, 15:14:10
    #5
    Üyeliği durduruldu
    deneyip sonucu yazacagım hocam teşekkürler
  • 03-09-2014, 18:10:36
    #6
    Üyeliği durduruldu
    malesef hocam yine olmadı foreach de hata var zaten => olan yer as olacaktı duzelttim foreach ile tek şekilde ayrıştıramam 4 alan array olarak geliyor iç içe foreach mi yoksa başka bişemi olacak cozemedim foreach içinde for denedim yine olmadı. hep birinci veriyi kaydetti.

    yasarkemaldag adlı üyeden alıntı: mesajı görüntüle
    if (!empty($adet)) { 
    for($i=0;$i<count($urunid);$i++){
    
    	if ($check[$i] == '1')
    	{
    		$toplam = $urunfiyati[$i]*$adet[$i];
    		$query = mysql_query("INSERT INTO siparisler (urunid,urunadi,spverenbayi,bayiadi,urunfiyati,sptarih,unixtarih,saat,adet,toplam,onay) VALUES ('$urunid[$i]','$urunadi[$i]','$bayiid','$bayiadi','$urunfiyati[$i]','$tarih','$unixtarih','$saat','$adet[$i]','$toplam','0')"); 
    	}
    } 
    
    echo "<script>"; 
                echo "alert('Destek ticketi başarı ile oluşturuldu.');"; 
                echo "window.close();"; 
                echo 'window.location.href="siparisonayi.php"'; 
                echo "</script>"; 
    
    }
    bu şekilde dener misiniz ?

    eğer olmazsa alternatif olarak şöyle bir yol deneyebilirsiniz.

    html kısmında dizi olarak post edilen tüm inputların namelerine ürün id yide eklersiniz yani örneğin şu şekilde:

    <input value="1" id="stok2<?=$gosterurun['id'];?>" name="check[<?=$gosterurun['id'];?>]" type="checkbox">
    daha sonra php kısmında ise döngünüzü şu şekile yaparsınız.

    foreach ($check => $urun_id => $value){
    
    }
    bu döngüde $urun_id degiskeni ürün id sini value ise check olup olmadığını verir if ($value == '1') gibi bir şartlada insert işleminizi yapabilirsiniz.
  • 03-09-2014, 18:55:19
    #7
    Balanar adlı üyeden alıntı: mesajı görüntüle
    malesef hocam yine olmadı foreach de hata var zaten => olan yer as olacaktı duzelttim foreach ile tek şekilde ayrıştıramam 4 alan array olarak geliyor iç içe foreach mi yoksa başka bişemi olacak cozemedim foreach içinde for denedim yine olmadı. hep birinci veriyi kaydetti.
    şu şekilde dener misiniz ?

    php kısmı:
    <?php  
    $urunadi     = @$_POST['urunadi']; 
    $urunfiyati  = @$_POST['urunfiyati']; 
    $urunid      = @$_POST['urunid']; 
    $bayiadi     = @$_POST['bayiadi']; 
    $bayiid      = @$_POST['bayiid']; 
    $adet         = @$_POST['adet']; 
    $check         = @$_POST['check']; 
    $onay = '0'; 
    $unixtarih = strtotime($tarih); 
    
    
    
    if (!empty($adet)) { 
    foreach ($check => $urun_id as $value){
    	if ($value == '1')
    	{
    		$toplam = $urunfiyati[$urun_id]*$adet[$urun_id]; 
    		$query = mysql_query("INSERT INTO siparisler (urunid,urunadi,spverenbayi,bayiadi,urunfiyati,sptarih,unixtarih,saat,adet,toplam,onay) VALUES ('$urunid[$urun_id]','$urunadi[$urun_id]','$bayiid','$bayiadi','$urunfiyati[$urun_id]','$tarih','$unixtarih','$saat','$adet[$urun_id]','$toplam','0')"); 
    	}
    }
     
    
    echo "<script>"; 
                echo "alert('Destek ticketi başarı ile oluşturuldu.');"; 
                echo "window.close();"; 
                echo 'window.location.href="siparisonayi.php"'; 
                echo "</script>"; 
    
    }
    ?>
    html kısmı:
    <tr class="<?   if ($gosterurun['id']%2==0) {echo "active";} ?>" id="form"> 
              <td><input value="1" id="stok2<?=$gosterurun['id'];?>" name="check[<?=$gosterurun['id'];?>]" type="checkbox"></td>   
                <input type="hidden" value="<?=$gosterurun['id'];?>" name="urunid[<?=$gosterurun['id'];?>]"> 
                  <input type="hidden" value="<?=$bayilogid;?>" name="bayiid"> 
                   <input type="hidden" value="<?=$bayilogadi;?>" name="bayiadi"> 
                <td><?=$gosterurun['urunadi'];?></td> 
                 <input type="hidden" value="<?=$gosterurun['urunadi'];?>" name="urunadi[<?=$gosterurun['id'];?>]"> 
              <td><?=$gosterurun['urunfiyati'];?> tl</td> 
               <input type="hidden" value="<?=$gosterurun['urunfiyati'];?>" name="urunfiyati[<?=$gosterurun['id'];?>]"> 
              
                <td><input style="float:left;" type="button" onclick="arttir<?=$gosterurun['id'];?>('stok<?=$gosterurun['id'];?>'),arttir<?=$gosterurun['id'];?>('stok2<?=$gosterurun['id'];?>'),arttir<?=$gosterurun['id'];?>( 
    document.getElementById('stok2<?=$gosterurun['id'];?>').checked=true)" class="btn btn-default" value="+"> 
    
                
                <input style="float:right;"  type="button"  class="btn btn-default" onclick="azalt<?=$gosterurun['id'];?>('stok<?=$gosterurun['id'];?>'),azalt<?=$gosterurun['id'];?>('stok2<?=$gosterurun['id'];?>')" value="-"> 
                 
                 
               <center>  <input onfocus="this.blur();" id="stok<?=$gosterurun['id'];?>" style="width:30%;" name="adet[<?=$gosterurun['id'];?>]"  class="form-control" value="0"></center></td> 
           </tr>
  • 04-09-2014, 10:13:08
    #8
    Üyeliği durduruldu
    hocam elinize saglık akıl akıldan üstündür demişler sayenizde oldu benden sonraki arkadaşlar için uyarım foreachde ufak bir hata su sekilde yaparlarsa calısacaktır.

    foreach ($check as $urun_id => $value){

    yasarkemaldag adlı üyeden alıntı: mesajı görüntüle
    şu şekilde dener misiniz ?

    php kısmı:
    <?php  
    $urunadi     = @$_POST['urunadi']; 
    $urunfiyati  = @$_POST['urunfiyati']; 
    $urunid      = @$_POST['urunid']; 
    $bayiadi     = @$_POST['bayiadi']; 
    $bayiid      = @$_POST['bayiid']; 
    $adet         = @$_POST['adet']; 
    $check         = @$_POST['check']; 
    $onay = '0'; 
    $unixtarih = strtotime($tarih); 
    
    
    
    if (!empty($adet)) { 
    foreach ($check => $urun_id as $value){
    	if ($value == '1')
    	{
    		$toplam = $urunfiyati[$urun_id]*$adet[$urun_id]; 
    		$query = mysql_query("INSERT INTO siparisler (urunid,urunadi,spverenbayi,bayiadi,urunfiyati,sptarih,unixtarih,saat,adet,toplam,onay) VALUES ('$urunid[$urun_id]','$urunadi[$urun_id]','$bayiid','$bayiadi','$urunfiyati[$urun_id]','$tarih','$unixtarih','$saat','$adet[$urun_id]','$toplam','0')"); 
    	}
    }
     
    
    echo "<script>"; 
                echo "alert('Destek ticketi başarı ile oluşturuldu.');"; 
                echo "window.close();"; 
                echo 'window.location.href="siparisonayi.php"'; 
                echo "</script>"; 
    
    }
    ?>
    html kısmı:
    <tr class="<?   if ($gosterurun['id']%2==0) {echo "active";} ?>" id="form"> 
              <td><input value="1" id="stok2<?=$gosterurun['id'];?>" name="check[<?=$gosterurun['id'];?>]" type="checkbox"></td>   
                <input type="hidden" value="<?=$gosterurun['id'];?>" name="urunid[<?=$gosterurun['id'];?>]"> 
                  <input type="hidden" value="<?=$bayilogid;?>" name="bayiid"> 
                   <input type="hidden" value="<?=$bayilogadi;?>" name="bayiadi"> 
                <td><?=$gosterurun['urunadi'];?></td> 
                 <input type="hidden" value="<?=$gosterurun['urunadi'];?>" name="urunadi[<?=$gosterurun['id'];?>]"> 
              <td><?=$gosterurun['urunfiyati'];?> tl</td> 
               <input type="hidden" value="<?=$gosterurun['urunfiyati'];?>" name="urunfiyati[<?=$gosterurun['id'];?>]"> 
              
                <td><input style="float:left;" type="button" onclick="arttir<?=$gosterurun['id'];?>('stok<?=$gosterurun['id'];?>'),arttir<?=$gosterurun['id'];?>('stok2<?=$gosterurun['id'];?>'),arttir<?=$gosterurun['id'];?>( 
    document.getElementById('stok2<?=$gosterurun['id'];?>').checked=true)" class="btn btn-default" value="+"> 
    
                
                <input style="float:right;"  type="button"  class="btn btn-default" onclick="azalt<?=$gosterurun['id'];?>('stok<?=$gosterurun['id'];?>'),azalt<?=$gosterurun['id'];?>('stok2<?=$gosterurun['id'];?>')" value="-"> 
                 
                 
               <center>  <input onfocus="this.blur();" id="stok<?=$gosterurun['id'];?>" style="width:30%;" name="adet[<?=$gosterurun['id'];?>]"  class="form-control" value="0"></center></td> 
           </tr>