• 17-08-2009, 14:29:09
    #1
    başlık pek uygun olmadı kusuruma bakmayın
    isim scripti hazırlıyorum
    form ile veritabanıma isimleri kaydediyorum
    ziyaretçilerime isimleri harfe göre göstermek istiyorum

    Örnek:


    her harf için bir sorgu çalıştırmak mantıksızca olacağı için bir dizimi gerekir burada arkadaşlar??
  • 17-08-2009, 16:07:47
    #2
    her harf listesinin kendi sayfası olmayacak mı ki?
    böle olacaksa GET ile harfi çekip ona göre sorgulatırsanız her harf için yine tek bir sorgu yapmış olacaksınız..
  • 17-08-2009, 16:28:41
    #3
    Üyeliği durduruldu
    her harfi kategori olarak belirleyeceksin. daha sonra isimleri eklerken, ismin baş harfine uygun olan kategoriye ekleyeceksin. her harf kategori oldugu için harfe tıklandıgında o harfe eklenmiş olan isimler siralanacak.

    isimgoster.php?harf=A örneğin. böle bi sayfaya girildiğin de A harfine eklenmiş olan isimler sıralanacak. db den çekerkende:

    $harf = "A"
    $liste = mysql_query("SELECT * FROM tablo WHERE harf = '$harf'");

    biraz karışık oldu ama kusura bakma.
  • 17-08-2009, 21:19:46
    #4
    THR
    Üyeliği durduruldu
    mysql_query("SELECT * FROM tablo WHERE baslik LIKE '$harf%'"); veya
    mysql_query("SELECT * FROM tablo WHERE baslik REGEXP '".$harf."$');
  • 17-08-2009, 21:22:25
    #5
    regexp bütün ihtiyacınızı karşılayacaktır.
  • 17-08-2009, 22:03:46
    #6
    Sadece id e göre yapabilirsin ama işin içine Türkçe karakter girince iş değişiyor, onun için ayrı bir fonksiyon yazmalısın, Türkçe karakter olmayacaksa sadece id ve for döngüsü ile rahatça yaparsın.
  • 17-08-2009, 23:08:45
    #7
    önerileriniz için çok teşekkürler arkadaşlar
    bu şekilde çözdüm işi ma şu REGEXP olayını çok merak ettim
    nedir nasıl kullanılır bunu araştırıcam
    function harfler(){
    echo"<center>";
    $harfler = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","Y","Z");
    	while (list(,$harf) = each($harfler)) {
    		echo"<a href=\"modules.php?name=isimler&op=harfler&harf=$harf\">$harf</a> - ";
    	}
    		echo"<hr>";echo"</center>";
    }
    function harflerisec ($harf) {
    	global $db,$prefix;
            include("header.php");		
            OpenTable3();
    	ustmenu();		
    echo "<table border=\"1\" width=\"100%\">";		echo"<tr style=\"background-color: b8339d;\"><td colspan=\"3\" align=\"center\"><font color=\"FFFFFF\"><b>$harf harfi ile başlayan isimler</b></font></td></tr>";
    		$al = $db->sql_query("select * from ".$prefix."_isimler where onay='1' and  isim LIKE '".$harf."%' order BY id desc");		if(mysql_num_rows($al)!=0){			echo"<tr style=\"background-color: ff86e7;\"><td><b>İsim</b></td><td><b>Cinsiyet</b></td><td><b>İsmin Anlamı</b></td></tr>";
                while (list($id, $isim, $cinsiyet ,$anlami)=$db->sql_fetchrow($al)) {
    				echo"<tr style=\"background-color: ffdcf8;\"><td>$isim</td><td>$cinsiyet</td><td>$anlami</td></tr>";
                }		} else {		echo"<tr style=\"background-color: ffdcf8;\"><td colspan=\"3\" align=\"center\">Bu harfte isim bulunamadı!</td></tr>";		}		echo"<tr style=\"background-color: ff86e7;\"><td colspan=\"3\"> Toplam <b>".mysql_num_rows($al)."</b> isim bulundu.</td></tr>";		echo"</table>";		
    CloseTable3();
            include("footer.php");
    }
  • 18-08-2009, 10:48:11
    #8
    Üyeliği durduruldu
    LIKE / REGEXP sorgulari yavaş çalişir.

    harf diye bir alan açıp WHERE harf='$harf' ile çok daha hızlı sonuç alırsın.
  • 18-08-2009, 11:08:07
    #9
    Üyeliği durduruldu
    sql de substr de alternatif bir çözüm olabilir