• 05-03-2014, 14:02:33
    #1
    php scriptimde arama sistemini yaptım çalışıyor.

    Bundan sonra şunu yapmak istiyorum arama ile bulduğu idlerin herhangi birini seçip gidicek.

    <?php
    														 
    		if ($_POST){
    				$tur=$_POST["tur"];
    				$sorgu=mysql_query("select * from kitaplar where kategori like '%$tur%'");
    				if (mysql_num_rows($sorgu)>0){
    				while($kayit=mysql_fetch_array($sorgu)){
    				echo $kayit["id"]; // Burada id'leri listelettik bu idlerin birini seçip. kitap.php?git=herhangibirid şeklinde yollamak istiyorum.
    				echo '<br/>';
    				}
    				}else{
    				echo 'Kitap Bulunamadı';
    				}
    				}else{
    				?>
    				<form action="" method="POST">
    				<table cellspacing="10" cellpadding="4">
    				<tr>
    				<td width="80px;">Kitap Türü</td>
    				<td><select name="tur" class="kitapturu">
    				<option value="Aksiyon">Aksiyon</option>
    				<option value="2">2</option>
    				</select></td></tr>
    				</table>
    				<input type="submit" value="Kitap Bul" style="outline:none;margin-left:37px;clear:both;width:300px;height:40px;background:#fff;border-radius:5px;border:1px solid #3f3f3f;"/>
    				</form>
    				<?php
    			}			?>
  • 05-03-2014, 14:06:33
    #2
    Koah adlı üyeden alıntı: mesajı görüntüle
    php scriptimde arama sistemini yaptım çalışıyor.

    Bundan sonra şunu yapmak istiyorum arama ile bulduğu idlerin herhangi birini seçip gidicek.

    <?php
    														 
    																if ($_POST){
    																	$tur=$_POST["tur"];
    																	$sorgu=mysql_query("select * from kitaplar where kategori like '%$tur%'");
    																		if (mysql_num_rows($sorgu)>0){
    																			while($kayit=mysql_fetch_array($sorgu)){
    																				echo $kayit["id"]; // Burada id'leri listelettik bu idlerin birini seçip. kitap.php?git=herhangibirid şeklinde yollamak istiyorum.
    																				echo '<br/>';
    																			}
    																		}else{
    																			echo 'Kitap Bulunamadı';
    																	}
    																}else{
    																?>
    																																						<form action="" method="POST">
    																<table cellspacing="10" cellpadding="4">
    																<tr>
    																<td width="80px;">Kitap Türü</td>
    																<td><select name="tur" class="kitapturu">
    																	<option value="Aksiyon">Aksiyon</option>
    																	<option value="2">2</option>
    																</select></td></tr>
    																</table>
    																<input type="submit" value="Kitap Bul" style="outline:none;margin-left:37px;clear:both;width:300px;height:40px;background:#fff;border-radius:5px;border:1px solid #3f3f3f;"/>
    																</form>
    																<?php
    																}
    																?>

    $kitap_sayi = mysql_num_rows($sorgu);
    $rastgele = rand(0,$kitapsayi);
    $sorgu=mysql_query("select * from kitaplar where id= $rastgele");
    $rastgele_kitap = mysql_fetch_array($sorgu);
  • 05-03-2014, 14:22:34
    #3
    RooTsGhosT adlı üyeden alıntı: mesajı görüntüle
    $kitap_sayi = mysql_num_rows($sorgu);
    $rastgele = rand(0,$kitapsayi);
    $sorgu=mysql_query("select * from kitaplar where id= $rastgele");
    $rastgele_kitap = mysql_fetch_array($sorgu);
    burda $rastgele_kitap veritabanına kayıtlı herhangi bir id vericek dimi?

    echo $rastgele_kitap olarak dediğimde herhangi bir sonuç vermedi?
  • 05-03-2014, 14:27:54
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @Koah; şu sorguyla rastgele bi' satır alabilirsin.
    SELECT * FROM `kitaplar` ORDER BY RAND() LIMIT 1
  • 05-03-2014, 14:29:18
    #5
    Koah adlı üyeden alıntı: mesajı görüntüle
    burda $rastgele_kitap veritabanına kayıtlı herhangi bir id vericek dimi?

    echo $rastgele_kitap olarak dediğimde herhangi bir sonuç vermedi?
    hocam
    $kitap_sayi = mysql_num_rows($sorgu); değeri arama sorgusunda gelen kayıt sayısını veriyor bildiğiniz gibi $rastgele = rand(0,$kitapsayi); fonksiyonu ile 0 ve gelen kayıt sayısı arasında rastgele bir değer seçiyoruz.... mysql_fetch_array($sorgu); gelen veriyi değişkene atıyoruz $rastgele_kitap["id"] değerini echo komutu ile yazdırdığınızda sayfayın her yenilediğiniz zaman size rastgele bir id verecektir...
  • 05-03-2014, 14:39:28
    #6
    RooTsGhosT adlı üyeden alıntı: mesajı görüntüle
    hocam
    $kitap_sayi = mysql_num_rows($sorgu); değeri arama sorgusunda gelen kayıt sayısını veriyor bildiğiniz gibi $rastgele = rand(0,$kitapsayi); fonksiyonu ile 0 ve gelen kayıt sayısı arasında rastgele bir değer seçiyoruz.... mysql_fetch_array($sorgu); gelen veriyi değişkene atıyoruz $rastgele_kitap["id"] değerini echo komutu ile yazdırdığınızda sayfayın her yenilediğiniz zaman size rastgele bir id verecektir...
    echo $rastgele_kitap["id"] ; yazdığımda yine boş sayfa gösterdi.
  • 05-03-2014, 14:42:40
    #7
    @Koah; var_dump($rastgele_kitap); yapınca NULL mu yazıyor yoksa bi' sonuç mu geliyor?
  • 05-03-2014, 16:55:47
    #8
    saintx adlı üyeden alıntı: mesajı görüntüle
    @Koah; şu sorguyla rastgele bi' satır alabilirsin.
    SELECT * FROM `kitaplar` ORDER BY RAND() LIMIT 1
    Hocam RAND() bu şekilde kullanmak, büyük veritabanlarında yavaşlamaya neden oluyor, CPU çok kullanıyor diye biliyorum.

    http://stackoverflow.com/questions/4...600k-rows-fast

    Burada bunun için bir kaç şey üretmişler. Kullanılacağınız yer öyle 600 bin satır gibi devasa bişey olmayacaksa ve bir tane çekcekseniz çok sorun olmayacağını düşünüyorum gerçi.
  • 05-03-2014, 17:33:36
    #9
    @HACKHERS; toplam satır sayısını alıp PHP tarafında rand() ile rastgele değer üretipte aynı sonuca ulaşabiliriz. Daha pratik olduğu için SQL sorgusunda nasıl kullanabileceğini belirttim.