Arkadaşlar merhaba.Php konusunda fazla profesyönel değilim.Öğrenme aşamasındayım ve bir konuda yardımlarınıza ihtiyacım var.Şimdi bir kod yazmam gerekiyor.İçeriği şöyle olucak bir sayfa içerisinde ürünler olucak kategori şeklinde.O kategori içerisindeki ürünler checkbox şeklinde olması lazım veya listboxda olabilir buradan ürünleri seçicem hemen yanındaki textbox içerisine adet miktarını giricem altındada bir buton veya link olucak sepete ekle şekilinde.Sepete eklenen ürünleri aynı sayfada bir alana eklemem gerekiyor örnek olarak 5 adet notebook seçtim sepette alt alta listelenicek bunlar farklı bir ürün eklersem onun altına gelicek 5 notebook 2 oem parçası gibi.Bunlar veritabanına eklenmicek cookie veya sessionla çerez olarak orada tutsa yeter.Bana bunun mantığı anlatılsa yeter veya örnek olarak ufak bir uygulama hazır varsa veya yazabilirseniz çok memnun olurum.Mantığı anladıkdan sonra ben onu kendimce geliştiririmde bir örneğe ihtiyacım var.Yardımlarınızı bekliyorum şimdiden teşekkür ederim.
<?php $id = $_SESSION['urunid']; $adet = $_SESSION['adet']; $urunsorgula = mysql_query("SELECT * FROM urunler WHERE id="$id" LIMIT $adet"); while($sorgu = mysql_fetch_array($urunsorgula)){
$adi = $sorgu['adi'];
?>
<?php echo $adi; ?> <?php echo $adet; ?>
<?php } ?>
Bu şekilde kullanabilirsin ancak bu sistem sadece 1 adet ürün için geçerli olacaktır. session ile birden fazla ürünü seçemezsin seçebilsen bile bunun için muazzam derecede kod bilgisine sahip olma gerekiyor.
Örneğin id değeri 1 olan ürün eklendiğinde adeti belirlendiğinde session normal şekilde alınır. fakat id değeri 2 olan bir ürün eklenmek istendiğinde
if($_POST['ekle'] != $_SESSION['urunid']) {
şekilnde bir yapı kullanman gerekiyor ancak bu yapı da geçerli bir yapı değildir. çünkü session['urunid'] değeri gelen i değeriyle değişecektir. Bu noktada session ile birden fazla ürünü tutmazsın.
Yapaman gereken şu olacaktır. urunler tablona "alici" "adet" ve "durum" adında stunlar eklemen gerekiyor. böyle bir sistemde üyelik sistemi şarttır. ya da geçici üyelik sistemi.
Sepete eklenmeyen ürünlerin durum değeri 1 olsun üye session değerimiz kullanici olsun
if(empty($urunid)) { else "Urun Boş Olamaz"; } else { $guncelle = mysql_query("UPDATE urunler SET alici='$kim', adet='$adet', durum='2' WHERE id='$urunid' ");
}
?>
<form action="" method="post" > <select name="ekle"> <?php $urunsorgula = mysql_query("SELECT * FROM urunler ORDER BY id "); while($sorgu = mysql_fetch_array($urunsorgula)){
Yeni konu açmak istemedim. Localhostta düzgün çalışan dropdown, sunucuya atınca neden çalışmaz ? Veritabanı bağlantıları vs doğru ama içini doldurmuyor dropdownlistin.
Birçok sebebi olabilir. 1.si veritabanı bağlantı kodlarını kontrol et ve çalıştığına tam emin ol.
2. si dropdown da ki while döngüsünün yapısından kaynaklı olabilir. bir post değeri alınıp buna göre while çekiliyorsa ya da get ile çekiliyorsa bu kısımlar kontrol edilmelidir.
bunu kontrol etmek için shile döngüsünün bağlı olduğu msyql_query kodunda
$vericek = mysql_query("SELECT * FROM tabloadi WHERE id='1' ");
bu şeilde veri çekmeye çalış. yani id dğeri 1 olanı seçip listeleyecektir. eğer bu çelışırsa sorun sorgu kodundadır. değilse sorun veritabanı bağlantısındadır.
Birçok sebebi olabilir. 1.si veritabanı bağlantı kodlarını kontrol et ve çalıştığına tam emin ol.
2. si dropdown da ki while döngüsünün yapısından kaynaklı olabilir. bir post değeri alınıp buna göre while çekiliyorsa ya da get ile çekiliyorsa bu kısımlar kontrol edilmelidir.
bunu kontrol etmek için shile döngüsünün bağlı olduğu msyql_query kodunda
$vericek = mysql_query("SELECT * FROM tabloadi WHERE id='1' ");
bu şeilde veri çekmeye çalış. yani id dğeri 1 olanı seçip listeleyecektir. eğer bu çelışırsa sorun sorgu kodundadır. değilse sorun veritabanı bağlantısındadır.
Localhostta herşey düzgün çalışıyor, fakat alanadı aldığım sunucuda çalışmıyor. Belki sunucu bedava olduğu için olabilir.
Veritabanı bağlantılarım doğru. Üye girişi vs gibi yerler çalışıyor. Çünkü.
Sorgularda olduğunu düşünmüyorum sorunun, yoksa localhostta çalışmaz.
Hocam öncelikle verdiğin bilgiler için teşekkür ederim . Ozaman şöyle bir sorum olucak listboox ve checkboxa eklemek istediğim verileri veritabanından çekebilirmiyim varsa bunun içinde bir örnek gösterebilirmisin ?
Zaten sana verdiğim kodlarda listbox ile veri çekme ve listelemeyi gösterdim. Neyi soruyorsun halen anlamadım Ayrıca KazuYA18 Konuyu okumadan elindeki kodu paylaşmanın mantığı nedir ? Konuya ilgilendiğin içi mi yazdın yoksa yazmış olasın diyemi yazdın ?
Zaten sana verdiğim kodlarda listbox ile veri çekme ve listelemeyi gösterdim. Neyi soruyorsun halen anlamadım Ayrıca KazuYA18 Konuyu okumadan elindeki kodu paylaşmanın mantığı nedir ? Konuya ilgilendiğin içi mi yazdın yoksa yazmış olasın diyemi yazdın ?
Çok teşekkür ederim aksoy hocam yardımlarınız için sağolun
<?php class db { public function urunEkle($urunadi,$detay,$fiyat,$kategori,$uid) { $this->adminKontrol(); $this->baglan(); $sql="insert into urunler (urun_adi,detay,fiyat,kategori_id,urun_id) values ('$urunadi','$detay','$fiyat','$kategori','$uid')"; mysql_query($sql) or die(mysql_error()); $this->kopar(); } public function urunGuncelle($urunid,$urunadi,$detay,$fiyat,$kategori) { $this->adminKontrol(); $this->baglan(); $sql="Update urunler SET urun_adi='$urunadi',detay='$detay',fiyat='$fiyat',kategori_id='$kategori' where urun_id=$urunid"; mysql_query($sql) or die("Sorgu Hatalı"); $this->kopar(); } public function urunSil($urunid) { $this->adminKontrol(); $this->baglan(); $sql="DELETE from urunler where urun_id=$urunid"; mysql_query($sql) or die("Sorgu Hatalı"); $this->kopar(); } public function ListeleSayfalama($tablo,$kosul,$ilk,$sayfakayit) { $this->baglan(); $sql="Select * from $tablo where $kosul Limit $ilk,$sayfakayit"; //echo $sql; $veriler= mysql_query($sql)or die ("Sayfalama Sorgu Hatalı"); $this->kopar(); return $veriler; } public function sepeteekle($urunid,$adet,$musteri) {
$musteriliste= $this->ListeleKosullu("ogrenci", "kullanici_adi='$musteri'"); $musterikayit= mysql_fetch_array($musteriliste); $musteriid=$musterikayit["ogrenci_no"]; $sql="insert into sepet (urun_id,ogrenci_no,musteri,adet,tutar)values ('$urunid','$musteriid','$musteri','$adet','$toplamtutar')"; $this->baglan(); mysql_query($sql) or die(mysql_error()); $this->kopar(); } } ?>
Yukarıda database classımız var.. ilgili ürün işlemlerinin yapıldıgı.. ürün ekleme silme güncelleme listeleme gibi...
<?php $urun_id = @$_POST["urun_id"]; $musteri = @$_SESSION["user"]; $sql = mysql_query("Select * from sepet where urun_id = '$urun_id' and musteri = '$musteri'"); $varmi = mysql_num_rows($sql); if(isset($_POST['submit'])) { if($varmi>=1) { echo"<center><font size=+2 color = '#FF0000'>Bu ürün sepetinizde bulunmaktadır.</font></center>"; } else { $vt->sepeteekle(@$_POST["urun_id"],@$_POST["adet"],@$_SESSION["user"]); } } ?> <h4><strong><p align="left">KATEGORİLER</p></strong></h4> <script language="javascript" type="text/javascript" > function jumpto(x){
if (document.form1.jumpmenu.value != "null") { document.location.href = x } } </script> <form name="form1"> <select name="jumpmenu" onChange="jumpto(document.form1.jumpmenu.options[document.form1.jumpmenu.options.selectedIndex].value)"> <option> Ürün Kategorileri</option> <option name "secim0" value = "urunler.php">Tüm ürünler</option> <option name "secim1" value = "urunler.php?kid=1">Teknolojik ürünler</option> <option name "secim2" value = "urunler.php?kid=2">Giyim</option> <option name "secim3" value = "urunler.php?kid=3">Kitap</option> <option name "secim4" value="urunler.php?kid=4">Ev Eşyası</option> </select> </form>
Ürünlerini neden listbox şekinde listeliyorsun ki ?
Neyse istediğin şey şu şekilde olur.
Tabloların var olduğunu var sayıyorum.
sepet.php
Bu şekilde kullanabilirsin ancak bu sistem sadece 1 adet ürün için geçerli olacaktır. session ile birden fazla ürünü seçemezsin seçebilsen bile bunun için muazzam derecede kod bilgisine sahip olma gerekiyor.
Örneğin id değeri 1 olan ürün eklendiğinde adeti belirlendiğinde session normal şekilde alınır. fakat id değeri 2 olan bir ürün eklenmek istendiğinde
if($_POST['ekle'] != $_SESSION['urunid']) {
şekilnde bir yapı kullanman gerekiyor ancak bu yapı da geçerli bir yapı değildir. çünkü session['urunid'] değeri gelen i değeriyle değişecektir.
Bu noktada session ile birden fazla ürünü tutmazsın.
Yapaman gereken şu olacaktır. urunler tablona "alici" "adet" ve "durum" adında stunlar eklemen gerekiyor. böyle bir sistemde üyelik sistemi şarttır. ya da geçici üyelik sistemi.
Sepete eklenmeyen ürünlerin durum değeri 1 olsun üye session değerimiz kullanici olsun
sepet.php
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesajda bahsedilenler: @aksoydesign
2. si dropdown da ki while döngüsünün yapısından kaynaklı olabilir. bir post değeri alınıp buna göre while çekiliyorsa ya da get ile çekiliyorsa bu kısımlar kontrol edilmelidir.
bunu kontrol etmek için shile döngüsünün bağlı olduğu msyql_query kodunda
$vericek = mysql_query("SELECT * FROM tabloadi WHERE id='1' ");
bu şeilde veri çekmeye çalış. yani id dğeri 1 olanı seçip listeleyecektir. eğer bu çelışırsa sorun sorgu kodundadır. değilse sorun veritabanı bağlantısındadır.
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesajda bahsedilenler: @cllyldrm
Localhostta herşey düzgün çalışıyor, fakat alanadı aldığım sunucuda çalışmıyor. Belki sunucu bedava olduğu için olabilir.
Veritabanı bağlantılarım doğru. Üye girişi vs gibi yerler çalışıyor. Çünkü.
Sorgularda olduğunu düşünmüyorum sorunun, yoksa localhostta çalışmaz.
Bu mesaja 2 cevap geldi. Cevapları Gizle
Ayrıca KazuYA18 Konuyu okumadan elindeki kodu paylaşmanın mantığı nedir ?
Konuya ilgilendiğin içi mi yazdın yoksa yazmış olasın diyemi yazdın ?
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesajda bahsedilenler: @agaccavdiran
Çok teşekkür ederim aksoy hocam yardımlarınız için sağolun
Yukarıda database classımız var.. ilgili ürün işlemlerinin yapıldıgı.. ürün ekleme silme güncelleme listeleme gibi...
Yukarıdaki php kodu urunler.php nin en önemli kısmıdır. Ürünlerin listelenmesi ve kategorize edilmesini sağlar...
Yukarıdaki kod kısmı ise sepet kısmıdır.. Sepete eklediğiniz ürünler listelenir. İlgi ürünle alakalı sipariş verebilirisiniz.
< Bu mesaj bu kişi tarafından değiştirildi mehfatitem -- 31 Mayıs 2014; 7:30:54 >
Bu mesajda bahsedilenler: @agaccavdiran