• 24-08-2016, 19:56:18
    #1
    Merhaba. Bugüne kadar PHP kategorisinde yardımcı olabildiğim herkese yardımcı olmaya çalıştım. Şimdi de benim bir sorunum oldu ve çözemiyorum. Kafayı yemek üzereyim.

    Yapmak istediğimi özetliyorum.

    1 adet müşteri panelim mevcut.
    Panel içerisinde müşteriler yorum yapabiliyor ve yorum tablosuna müşterinin id siyle kaydoluyor. Müşteri id sini session ile çekebiliyorum.
    1 müşteri hizmet hakkında bir yorum attığında tekrar yorum yapmak istediğinde yorumu düzenleme sayfasına gitmesini istiyorum.

    PHP kodlarım aşağıdaki gibi fakat sorguyu yaptığımda dönüş olmuyor.

    <?php
    $musteri_id = session("musteri_id");
    $yorums = $baglan->query("SELECT * FROM yorumlar WHERE musteri = '$musteri_id'");
    $yorumbul = mysql_num_rows($yorums);
    if($yorumbul==1) {
    echo' 
    							<div class="alert alert-block alert-info fade in">
    							<button data-dismiss="alert" class="close close-sm" type="button">
    							<i class="icon-remove"></i>
    							</button>
    							<strong>Bilgi!</strong> Zaten yorum yapmışsınız, yorum sayfanıza yönlendiriliyorsunuz!
    							</div>';
    }else{
    echo'
    <form class="form-horizontal tasi-form" method="post" action="">
    
    <div class="form-group">
    	<label class="col-sm-2 col-sm-2 control-label">Yorum</label>
    <div class="col-sm-10">
    	<textarea style="resize: none;" name="yorum" class="form-control" rows="6" placeholder="Buraya yorumunuzu girin."></textarea>
    </div>
    </div>
    
    <div class="form-group">
    <div class="col-lg-offset-4 col-lg-4">
    	<button type="submit" class="btn btn-danger">Yorum Ekle</button>
    </div>
    </div>
    </form>           
    ';
    }
    ?>
    Örnek olarak tablo bu;

    id | musteri | yorum | durum
    5 | 8 | Denemeee | 0

    Müşteri session idsi de 8 fakat hiçbir şekilde yanıt alamamaktayım. Yardımcı olabilirseniz çok müteşekkir olurum.
  • 24-08-2016, 20:07:20
    #2
    Öncelikle,

    Sayfanın en başında session_start(); olduğunu varsayıyorum. Ek olarak hatalar meydana gelir ise session_start(); hemen üstüne ob_start(); eklenmeli.

    Bunun yanı sıra kodlamada session("veri"); gibi bir ibare gördüm. Benim bildiğim ve uzunca zaman kullandığım session ile veri alma mantığı $_SESSION['veri']; şeklindedir.

    Yukarıdaki maddeleri denersen çözüme ulaşabilirsin.
  • 24-08-2016, 21:16:40
    #3
    wrecking adlı üyeden alıntı: mesajı görüntüle
    Öncelikle,

    Sayfanın en başında session_start(); olduğunu varsayıyorum. Ek olarak hatalar meydana gelir ise session_start(); hemen üstüne ob_start(); eklenmeli.

    Bunun yanı sıra kodlamada session("veri"); gibi bir ibare gördüm. Benim bildiğim ve uzunca zaman kullandığım session ile veri alma mantığı $_SESSION['veri']; şeklindedir.

    Yukarıdaki maddeleri denersen çözüme ulaşabilirsin.
    Veritabanına kayıt esnasında da $musteri_id = session("musteri_id"); kullandım ver sorun oluşmadı. Sadece yorumlar tablosundan her bir id nin musteri kısmını çekip onları mysql_num_rows($veri); ile sayı olarak tanımlayıp 1==1 ile zaten yorum yapmışsınız echosunu verdiremiyorum.

    Ek olarak sessionu

    <?php    // Session Fonksiyonu
    
        function session($par){
    
    		if($_SESSION[$par]){
    
    			return $_SESSION[$par];
    
    		}else{
    
    			return false;
    
    		}
    
    	}
    ?>
    fonksiyonum ile alıyorum.
  • 24-08-2016, 22:18:02
    #4
    muhammedaksam adlı üyeden alıntı: mesajı görüntüle
    Veritabanına kayıt esnasında da $musteri_id = session("musteri_id"); kullandım ver sorun oluşmadı. Sadece yorumlar tablosundan her bir id nin musteri kısmını çekip onları mysql_num_rows($veri); ile sayı olarak tanımlayıp 1==1 ile zaten yorum yapmışsınız echosunu verdiremiyorum.

    Ek olarak sessionu

    <?php    // Session Fonksiyonu
    
        function session($par){
    
    		if($_SESSION[$par]){
    
    			return $_SESSION[$par];
    
    		}else{
    
    			return false;
    
    		}
    
    	}
    ?>
    fonksiyonum ile alıyorum.
    Session'ı ufak bir değişken ile almak varken neden bir fonksiyon tercih ettin şaşırtıcı.

    Kaynak tüketimini yükseltir böyle herşey'de fonksiyon kullanmak.

    Tavsiyem bu tür ufak değişken ile halledilecek şeylerde fonksiyon kullanmamak.

    Son olarak, mysql yapısından PDO yapısına geçmeni öneririm.
  • 24-08-2016, 22:26:14
    #5
    wrecking adlı üyeden alıntı: mesajı görüntüle
    Session'ı ufak bir değişken ile almak varken neden bir fonksiyon tercih ettin şaşırtıcı.

    Kaynak tüketimini yükseltir böyle herşey'de fonksiyon kullanmak.

    Tavsiyem bu tür ufak değişken ile halledilecek şeylerde fonksiyon kullanmamak.

    Son olarak, mysql yapısından PDO yapısına geçmeni öneririm.
    PDO konusunda pek bilgim yok ama yavaş yavaş incelemeye başladım. Bu arada dediğim şekilde sorgu yapmama yardımcı olabilir misiniz? İşin içinden çıkamadım. Bir müşterinin ikinci yorumunu onaylamamak da çare olabilir fakat uyarı gelip yorum düzenleme sayfasına giderse daha iyi olabilir. Yardımcı olabilirseniz çok yardımcı olmuş ve bu konuda gelişmemi sağlamış olursunuz. Şimdiden teşekkürler.
  • 24-08-2016, 23:54:40
    #6
    Üyeliği durduruldu
    $musteri_id şunu öncelikle bir echo yaparmısın geliyormu ona göre bakalım

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 23:54:40 -->-> Daha önceki mesaj 23:49:12 --

    neyse burada değilsin sanırım
    müşteri id nin geldiğini varsayarak

    if(!mysql_num_rows($baglan->mysql_query("select musteri from yorumlar where musteri='".$musteri_id."'"))){
        echo 'yorum yap';
    }else{
        echo 'zaten bir yorum var';
    }
    bu şekilde deneyebilirsin ama arkadaşın önerisine katılıyorum kod yapın çok yanlış
  • 25-08-2016, 00:05:11
    #7
    session fonksiyonunu kullanma eğer illa kullancam diyorsan fonksiyonu aynı sayfa içinde kullan.
  • 25-08-2016, 01:17:32
    #8
    muhammedaksam adlı üyeden alıntı: mesajı görüntüle
    Merhaba. Bugüne kadar PHP kategorisinde yardımcı olabildiğim herkese yardımcı olmaya çalıştım. Şimdi de benim bir sorunum oldu ve çözemiyorum. Kafayı yemek üzereyim.

    Yapmak istediğimi özetliyorum.

    1 adet müşteri panelim mevcut.
    Panel içerisinde müşteriler yorum yapabiliyor ve yorum tablosuna müşterinin id siyle kaydoluyor. Müşteri id sini session ile çekebiliyorum.
    1 müşteri hizmet hakkında bir yorum attığında tekrar yorum yapmak istediğinde yorumu düzenleme sayfasına gitmesini istiyorum.

    PHP kodlarım aşağıdaki gibi fakat sorguyu yaptığımda dönüş olmuyor.

    <?php
    $musteri_id = session("musteri_id");
    $yorums = $baglan->query("SELECT * FROM yorumlar WHERE musteri = '$musteri_id'");
    $yorumbul = mysql_num_rows($yorums);
    if($yorumbul==1) {
    echo' 
    							<div class="alert alert-block alert-info fade in">
    							<button data-dismiss="alert" class="close close-sm" type="button">
    							<i class="icon-remove"></i>
    							</button>
    							<strong>Bilgi!</strong> Zaten yorum yapmışsınız, yorum sayfanıza yönlendiriliyorsunuz!
    							</div>';
    }else{
    echo'
    <form class="form-horizontal tasi-form" method="post" action="">
    
    <div class="form-group">
    	<label class="col-sm-2 col-sm-2 control-label">Yorum</label>
    <div class="col-sm-10">
    	<textarea style="resize: none;" name="yorum" class="form-control" rows="6" placeholder="Buraya yorumunuzu girin."></textarea>
    </div>
    </div>
    
    <div class="form-group">
    <div class="col-lg-offset-4 col-lg-4">
    	<button type="submit" class="btn btn-danger">Yorum Ekle</button>
    </div>
    </div>
    </form>           
    ';
    }
    ?>
    Örnek olarak tablo bu;

    id | musteri | yorum | durum
    5 | 8 | Denemeee | 0

    Müşteri session idsi de 8 fakat hiçbir şekilde yanıt alamamaktayım. Yardımcı olabilirseniz çok müteşekkir olurum.
    Merhaba

    $yorums = $baglan->query("SELECT * FROM yorumlar WHERE musteri = '$musteri_id'");
    Öncelikle ilk sorum 1 adet mi hizmet var? çok çeşit hizmet varsa sorgudaki koşulu arttırmalısın çünkü bu kod ile sadece bir kişi bir hizmete yorum verebilecektir belki bu çözüm olmuştur çözüm olmadıysa şu yolları deneyebilirsin;

    1-) sorgunun çalışıp çalışmadığını kontrol et echo var_dump("$yorums") yeterli olacaktır.

    2-) yorumbul değişkeninin değerini öğren yukarıdaki nedenle çalışmıyorsa 1in üzerinde kayıt vardır 1e eşit olmadığından senin koşulun çalışmaz.

    İyi çalışmalar
  • 25-08-2016, 01:43:17
    #9
    jooker adlı üyeden alıntı: mesajı görüntüle
    $musteri_id şunu öncelikle bir echo yaparmısın geliyormu ona göre bakalım

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 23:54:40 -->-> Daha önceki mesaj 23:49:12 --

    neyse burada değilsin sanırım
    müşteri id nin geldiğini varsayarak

    if(!mysql_num_rows($baglan->mysql_query("select musteri from yorumlar where musteri='".$musteri_id."'"))){
        echo 'yorum yap';
    }else{
        echo 'zaten bir yorum var';
    }
    bu şekilde deneyebilirsin ama arkadaşın önerisine katılıyorum kod yapın çok yanlış
    $musteri_id = session("musteri_id"); ile tanımladığım $musteri_id başarıyla echo veriyor fakat kod işe yaramadı.

    n0kta adlı üyeden alıntı: mesajı görüntüle
    session fonksiyonunu kullanma eğer illa kullancam diyorsan fonksiyonu aynı sayfa içinde kullan.
    Session fonksiyonum fonksiyonlar.php dosyamda ve header gibi alanlara müşteri adsoyad vs. echo ediyor.

    Mikroscript adlı üyeden alıntı: mesajı görüntüle
    Merhaba

    $yorums = $baglan->query("SELECT * FROM yorumlar WHERE musteri = '$musteri_id'");
    Öncelikle ilk sorum 1 adet mi hizmet var? çok çeşit hizmet varsa sorgudaki koşulu arttırmalısın çünkü bu kod ile sadece bir kişi bir hizmete yorum verebilecektir belki bu çözüm olmuştur çözüm olmadıysa şu yolları deneyebilirsin;

    1-) sorgunun çalışıp çalışmadığını kontrol et echo var_dump("$yorums") yeterli olacaktır.

    2-) yorumbul değişkeninin değerini öğren yukarıdaki nedenle çalışmıyorsa 1in üzerinde kayıt vardır 1e eşit olmadığından senin koşulun çalışmaz.

    İyi çalışmalar
    Hizmet eğitim gibi bir şey. Ben bu hizmeti daha önce verdiğim müşterilerime panel yapıyorum. Oradan hizmet takip edip yorum yapabilecekler. Yani sadece 1 yorum hakları olacak.

    echo var_dump("$yorums") ile bir sonuç alamazken echo var_dump("$musteri_id") ile sonuç alabiliyorum.

    yorumbul içinse if($yorumbul>0) olarak değiştirmiştim.

    Sorunu hallettim.

    <?php
    $musteri_id= session("musteri_id");
    	$v_veriyicek = $baglan->query("SELECT * FROM yorumlar WHERE musteri = '$musteri_id'");
    	$v_veri = $v_veriyicek->fetch_object();
    	$v_veriyicek->close();
    
    if($v_veri->musteri>0) {echo'yorum yapildi';}else{echo'yorum formu';}
    ?>