• 21-09-2012, 10:42:52
    #10
    Kimlik doğrulama veya yönetimden onay bekliyor.
    veri sayımızı bilmediğimiz için mysql_num_rows(mysql_query(sorgu)) ile sayıyı bulmak mantıksız olmaz heralde?

    random sorgu yerine php ile random bulmanın daha mantıklı olduğunu öğrendikten sonra benim soruma yardımcı olabilecek biri olabilirmi
  • 21-09-2012, 10:59:14
    #11
    Kimlik doğrulama veya yönetimden onay bekliyor.
    oguzhan306 adlı üyeden alıntı: mesajı görüntüle
    Sitenin açılışını forumdan yapacam Çok az kaldı bi kaç rötuş felan bu da son 2-3 rötüştan biri. Performans içinse en fazla 1500 satırlık bilginin olduğu bir db den olsun olsun en fazla günlük 10-15 girişlik bi site eğer onda da sorun olacaksa yapcak bişi yok daha fazlasını öğrenmek için kasacaz

    aşağıda yazdığım şekli $sonuc=mysql_fetch_array($query); satırı için hata verdi. Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in

    <?
    $query = mysql_query("SELECT Sergi.* , Sergi.ID as t1id , (SELECT count(*) FROM Sergi where ID<t1id) as sira FROM Sergi as t1 ORDER BY RAND() LIMIT 1");
    
    $sonuc=mysql_fetch_array($query);
    
    ?>
    <a href="goster.php?id=<?php echo $sonuc['ID']?>"><img src="<?php echo $sonuc['Yol']?>" width="200"/></a><br />
    Puanı: <strong><? echo $sonuc['Ortalama_Puan'] ?></strong> | Sırası: <? echo $sonuc['ID'] ?>
    buradaki kod ise çalıtırmaya çalıştığım kod.

    Sırası: <? echo $sonuc['ID'] ?> olarak yazdığım yer sıra numarası olması gerekiyor ama onu muhtemelen yanlış bir şekilde çağırıyorum çünkü nasıl çağırmam gerektiğini çözemedim

    Tablomun adı Sergi
    SELECT Sergi.* , Sergi.ID as t1id , (SELECT count(*) FROM Sergi where ID<t1id) as sira FROM Sergi as t1 ORDER BY RAND() LIMIT 1

    Yukardaki Sorguyu biraz açalım

    SELECT :Bir Tablodan veri seçileceğini belirtiyor
    Sergi.* :Buda Sergi Tablosunda ne var ne yok(sutun) seç demek istiyor
    Sergi.ID as t1id :Buda Sergi tablosundaki ID sutununu bana t1id ismi ile cek diyor yani fake bir sutun adı ile alıyor

    (SELECT count(*) FROM Sergi where ID<t1id) as sira :Bu bir subquery bununla şunu demek istiyoruz. Sergi Tablosunda ID sutunu bir onceki sql'den donen RANDOM ID değerinden kucuk olan satırları saydır(count) bunuda bize yine bunu fake bir sutun adi ile sira ile getir diyoruz

    FROM Sergi as t1 Hangi tablodan veri cekecegimizi ve bu tablonun isminin sorgunun diğer bolumlerinde t1 olarak kullanacağımızı belirtiyoruz. SQL'de as aliases olarak geçer yani bizim Türkçe kısa yol / kısaltma olarak düşünebiliriz.

    ORDER BY RAND() Belirtiğimiz verileri bize Karışık olarak sırala diyoruz.

    LIMIT 1 Sadece 1 Satır veri getir diyoruz.


    şimdi yukardaki bilgilerden yola cikacak olursak Sorgu sonucunda donen verileri ekrana basarken (diğerlerini almakta sıkıntı yaşamadığını düşünüyorum ) sirayıda bu sorguya göre

    $sonuc['sira'];

    olarak ekrana basarbilirsin..
  • 21-09-2012, 11:29:53
    #12
    sql ve php hakkında bi sürü yerde bi sürü yazı çizi okumuşumdur bir sürüsü işime yaramıştır ama bu kadar net açıklama ender görmüşümdür. Bunun için teşekkür ediyorum öncelikle.

    Böyle satır satır komut çalıştırır gibi anlatımlar gayet yararlı oluyor ilerde böyle bişey arayanların işine de yarar...


    Gelelim soruna. Bu çalışmadı

    <?
    $query = mysql_query("SELECT Sergi.* , Sergi.ID as t1id , (SELECT count(*) FROM Sergi where ID<t1id) as sira FROM Sergi as t1 ORDER BY RAND() LIMIT 1"); 
    
    $sonuc=mysql_fetch_array($query);
    
    ?>
    <a href="goster.php?id=<?php echo $sonuc['ID']?>"><img src="<?php echo $sonuc['Yol']?>" width="200"/></a><br />
    Puanı: <strong><? echo $sonuc['Ortalama_Puan'] ?></strong> | Sırası: <? echo $sonuc['sira'] ?>
    Aslına bakarsanız bu benim için olmazsa olmaz bi durum değil. Siteyi yaparken olabilecek bişey olarak düşünmüştüm. Ama dediğim gibi çok elzem bi durum değil.

    Yormamak için bunu pas geçiyorum (yardım hakkımı başka yerlerde kullanırım )
  • 21-09-2012, 11:53:14
    #13
    çalışmadı derken hata mı veriyor sonuç mu dönderiyor aldığınız sonucu da bizimle paylaşırsanız sonuca daha kolay ulaşırız..

    Ayrıca bu yazılım işi ile uğraşıyorsan vaz geçme biraz mola ver kendine ama pas geçme dün gece jQuery icin kendime küçük bi slider yazayım dedim bi css'deki bir "-" yüzünden 2 saat uğraştım Ama sonuç? Yaptım vazgeçmek yok
  • 21-09-2012, 12:25:07
    #14
    Yazılımla kendi merakım için uğraşıyorum. Ticari değil.

    Zaten bitirdiğimde forumla paylaşacağım siteyi. Kişisel blog (blog demeyide pek sevmem türkçesi varken) sitesi yaptım diyebilirim.

    wp türü şeyler varken neden kendim uğraştım o da ayrı bir sorunsal

    aldığım hata mysql_fetch_array() expects parameter 1 to be resource, boolean given in hatası.

    ayrıca ben sorgudaki bir ' yüzünden 1 gün kaybettim gerçekten yazılım sıkıntılı bişey ama biraz kendin bişey yapmaya başlayınca da eğlenceli oluyor. muhtemelen o yüzden devam ediyorum kendi işimi kendim yapmaya