İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Arama Sonuçları

phpacemisi

0
İyinet Üyesi
Katılım
25 Ocak 2008
Mesajlar
117
Reaction score
1
Konum
Turkey
Merhaba sayenizde bir download sitesi yapmaya çalışıyorum
Ben sitede arama yapıldığı zaman eğer sonuç yoksa şayet orada karışık programları çıkarmak istiyorum yani sonuç bulunamadı yazsın ama altınada karışık benzer yada farklı programları çıkarsın
bunu yapabilirmiyim ve nasıl?
teşekkürler
 

mstgngr

0
İyinet Üyesi
Katılım
2 Kasım 2007
Mesajlar
83
Reaction score
0
gelen kelimenin sondan bir kaç karakterini eksilterek aramanın sonuç vermesini sağlayabilirsin.
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
66
Konum
Sakarya
"Benzer" çok genel bir kelime.
2 progamın benzer olma şartı nedir?
 

beceriksiz_acemi

0
İyinet Üyesi
Katılım
27 Aralık 2005
Mesajlar
4,796
Reaction score
16
Konum
-Adsense-
Merhaba sayenizde bir download sitesi yapmaya çalışıyorum
Ben sitede arama yapıldığı zaman eğer sonuç yoksa şayet orada karışık programları çıkarmak istiyorum yani sonuç bulunamadı yazsın ama altınada karışık benzer yada farklı programları çıkarsın
bunu yapabilirmiyim ve nasıl?
teşekkürler

Aramayı hangi kriterlerde yapıyorsun ? Sadece başlıkta, içerikte v.s. ?
 

NeFuSa

0
İyinet Üyesi
Katılım
27 Aralık 2006
Mesajlar
1,414
Reaction score
15
Konum
İstanbul
Kod:
<?
		$sqlkategorilist1 = "SELECT * FROM tablo_ismi WHERE medyaid='1' ORDER BY rand() DESC";
		$raporkategorilist1 = mysql_query($sqlkategorilist1);
		$rowsraporkategorilist1 = mysql_num_rows($raporkategorilist1);
		
		for ($i=0; $i<9; $i++) {
			$rowkategorilist = mysql_fetch_array($raporkategorilist1);

			if ($rowsraporkategorilist1 < $i OR $rowsraporkategorilist1 == $i) {
			}
			else {
				if ($i == 3 OR $i == 6) {
					?>
					<br>
					<?
				}
				?>
<a href="sqlden çekilecek link">O dosyanın ismi</a>
				<?
				if ($i == 8) {
					?>
					<br>
					<?
				}
			}
		}
		?>

Kategoriye göre arama yapılıyorsa mesela.
O kategoriye ait random programları aşağıda çıkartabilirsin.
 

phpacemisi

0
İyinet Üyesi
Katılım
25 Ocak 2008
Mesajlar
117
Reaction score
1
Konum
Turkey
sevgili üstatlarım ben aramayı açıklama ve tags denilen 2 bölümden yapıyorum. isteidğim eğer öyle bir sonuç yoksa ya karışık programlar gelsin arama sonucunun altında yada kelime eksilterek kişi avast aradı yok ama av ile başlayan gibi olurmu bilemiyorum olmassa karışık programlar gelsin bunu yapabilirmiyim üstatlar
aramada kullanılan kodlar aşağıda
PHP:
	if (!$pid) $sql="Select* from program where (isim like '%$query%' or aciklama like '%$query%' or tags like '%$query%') order by tarih desc 
limit $alt,$max";
else $sql="Select * from program where (isim like '%$query%' or aciklama like '%$query%' or tags like '%$query%') and altkat = '$kid' order 
by tarih desc limit $alt,$max";
if (!$pid) $sql2="Select* from program where (isim like '%$query%' or aciklama like '%$query%' or tags like '%$query%')";
else $sql2="Select* from program where (isim like '%$query%' or aciklama like '%$query%' or tags like '%$query%') and altkat = '$kid'";
 

phpacemisi

0
İyinet Üyesi
Katılım
25 Ocak 2008
Mesajlar
117
Reaction score
1
Konum
Turkey
ben ona oda bana bakıyor bu baya zor bişey ve kasamlı onu benim şimdiki bilgimle yapmam çok zor bana aramada sonuç çıkmassa oraya karışık programlar çıkaracak kod lazım yapan yapabilen yardımcı olabilecek arkadaşlar varsa bekleyecem cevaplarını
 

phpacemisi

0
İyinet Üyesi
Katılım
25 Ocak 2008
Mesajlar
117
Reaction score
1
Konum
Turkey
arama sonuçlarının ekrana basılması

evet uzun süreç sonucunda baya ilerledim size soruyu kolaylaştırıp tek bir cevap haline kadar getirdim
sizden isteğim altta vereceğim kodda
PHP:
$q=mysql_query($sql);
	$sql22=mysql_query($sql2);
	$nr2=mysql_num_rows($sql22);
		
	if($nr2 == 0) {
	 echo 'Aradığınız kriterlerde kayıt bulunamadı. Lütfen tekrar deneyiniz.';
	}
	else
	{
	
	while ($r=mysql_fetch_array($q)) {
	
	$q2=@mysql_query("select * from yorumlar where pid = '$r[id]'");
	$n=@mysql_num_rows($q2);
	$r1=mysql_fetch_array(mysql_query("Select * from kategori where id='$r[kategori]'"));
	$r2=mysql_fetch_array(mysql_query("Select * from altkat where id='$r[altkat]'"));
	?>
echo 'Aradığınız kriterlerde kayıt bulunamadı. Lütfen tekrar deneyiniz.';
}
else
{
bu bölüme eğer sonuç yoksa ekrana bas diyor. yorumları altta ben ise şu kodu bastırmak istiyorum
PHP:
$q=mysql_query("Select * from program WHERE songuncellenme >= DATE_SUB(CURDATE(),INTERVAL 7 DAY) ORDER BY songuncellenme DESC limit 0,5");

ve yardımınıza ihtiyacım var
 

phpacemisi

0
İyinet Üyesi
Katılım
25 Ocak 2008
Mesajlar
117
Reaction score
1
Konum
Turkey
PHP:
	$q=mysql_query($sql);
	$sql22=mysql_query($sql2);
	$nr2=mysql_num_rows($sql22);
		
	if($nr2 == 0) {
	 echo 'Aradığınız kriterlerde kayıt bulunamadı. Lütfen tekrar deneyiniz.';
	}
	else
	{
	$q=mysql_query("Select * from program WHERE songuncellenme >= DATE_SUB(CURDATE(),INTERVAL 7 DAY) ORDER BY 

songuncellenme DESC limit 0,5");
	while ($r=mysql_fetch_array($q)) {
	
	$q2=@mysql_query("select * from yorumlar where pid = '$r[id]'");
	$n=@mysql_num_rows($q2);
	$r1=mysql_fetch_array(mysql_query("Select * from kategori where id='$r[kategori]'"));
	$r2=mysql_fetch_array(mysql_query("Select * from altkat where id='$r[altkat]'"));
	?>

bu şekilde kullandığım zaman 2 karakterde sonuç veriyor mesela ğü yazdım sonuç yoksa ekraba basıyor ama iüğ yani 3 kelime olunca basmıyor bunu nasıl aşabilirim.
 

desoLate

0
İyinet Üyesi
Katılım
14 Haziran 2006
Mesajlar
220
Reaction score
0
PHP:
$nr2=mysql_num_rows($sql22);
        
    if($nr2 == 0) {
     echo 'Aradığınız kriterlerde kayıt bulunamadı. Lütfen tekrar deneyiniz.';
    }
    else
    {
    $q=mysql_query("Select * from program WHERE songuncellenme >= DATE_SUB(CURDATE(),INTERVAL 7 DAY) ORDER BY 

songuncellenme DESC limit 0,5");
    while ($r=mysql_fetch_array($q)) {

Anladığım kadarıyla kodlarda yapmaya çalıştığınız olay; eğer arama bölümüne girilen kelimede sonuç yoksa, yani dönen satır 0 ise son eklenen 5 programı göstermek. Ama kodlar diyor ki; eğer $nr2 boş ise sonuç bulunamadığını söyle, $nr2 boş değilse son 5 programı göster.

Kodları şu şekilde değiştirirseniz sanırım istediğiniz olacaktır.
PHP:
$nr2=mysql_num_rows($sql22);
        
    if($nr2 == 0) {
     echo 'Aradığınız kriterlerde kayıt bulunamadı. Aşağıdaki programlar belki ilginizi çekebilir.';

     $q=mysql_query("Select * from program WHERE songuncellenme >= DATE_SUB(CURDATE(),INTERVAL 7 DAY) ORDER BY songuncellenme DESC limit 0,5");
    }
//    else ---iptal. 
//    {    ---iptal. alt tarafta kapandığı } da iptal olacak.
    
    while ($r=mysql_fetch_array($q)) {
 

phpacemisi

0
İyinet Üyesi
Katılım
25 Ocak 2008
Mesajlar
117
Reaction score
1
Konum
Turkey
desoLate evet yapmak istediğim o sonuç yoksa x programları göster haklısın ve kodu hemen deniyorum
 

phpacemisi

0
İyinet Üyesi
Katılım
25 Ocak 2008
Mesajlar
117
Reaction score
1
Konum
Turkey
desoLate arama.phpde dediğğn gibi yaptım fakat yine Aradığınız kriterlerde kayıt bulunamadı. Lütfen tekrar deneyiniz. mesaj veriyor aslında arama phpde böyle bir yazı dahi yok bu yazıyı farklı yerden mi alıyor acaba? yani vardı ama senin verdiğin kodla değiştirinde gitti fakat aynı mesajı veriyor
 

desoLate

0
İyinet Üyesi
Katılım
14 Haziran 2006
Mesajlar
220
Reaction score
0
Sakıncası yoksa arama.php dosyasına ait tüm kodları buraya yazın, düzenleyip tekrar yazayım.
 

desoLate

0
İyinet Üyesi
Katılım
14 Haziran 2006
Mesajlar
220
Reaction score
0
Sonuç bulunamadığı zaman son 5 programı gösterme sorunsuz bir şekilde çalışıyor şu anda zaten. Tek hata aldığınız kısım sayfalama. Onu da şöyle çözebilrisiniz.

PHP:
if(!empty($nr2))
{
//sayfalama kodlarınız
}
Yani, eğer arama sonucu bulunamamışsa sayfalama kodlarını hiç çalıştırmama yolu. Eğer sonuç varsa sayfalama kodlarını çalıştıracaktır. Böylece hiçbir sorun kalmaz sanırım :)
 

phpacemisi

0
İyinet Üyesi
Katılım
25 Ocak 2008
Mesajlar
117
Reaction score
1
Konum
Turkey
PHP:
if($nr2 == 0) {
     echo 'Aradığınız kriterlerde kayıt bulunamadı. Aşağıdaki programlar belki ilginizi çekebilir.';

     $q=mysql_query("Select * from program WHERE songuncellenme >= DATE_SUB(CURDATE(),INTERVAL 7 DAY) ORDER BY songuncellenme 

DESC limit 0,5");
if(!empty($nr2))
{
//sayfalama kodlarınız
}  

    }
//    else ---iptal. 
//    {    ---iptal. alt tarafta kapandığı } da iptal olacak.
    
    while ($r=mysql_fetch_array($q)) {

kodu bu şekilde kullandım ama sonuç alamadım
 

desoLate

0
İyinet Üyesi
Katılım
14 Haziran 2006
Mesajlar
220
Reaction score
0
PHP:
$page2= $site . "/arama.php?query=".guvenlik($_GET['query']) ."&kid=". $_GET['kid'] . "&";
$ana_baglanti = $page2;
$eleman_sayisi = $nr2;
$sayfa_basina = $max;
$aktif_sayfa = $page;
$ekmi = 0;
$sayfa_degiskeni = "p";

    echo "<div class=\"pagination\"><p><b>Sayfalar:</b>";
    // Bu fonksiyon calismak icin birdensuna() fonksiyonunu gerektirir 
    $sayfa_sayisi = ceil($eleman_sayisi/$sayfa_basina); 
    if ( $aktif_sayfa < 1 OR $aktif_sayfa > $sayfa_sayisi ) { $aktif_sayfa = 1; } 
    $sayfalar_araligi = ceil($sayfa_sayisi/5); // sayisi kucultuldukce baglanti sayisi azalir 
    $sayfalanacak = array(1,$sayfa_sayisi,birdensuna(($aktif_sayfa-20),$sayfa_sayisi) 
    ,birdensuna(($aktif_sayfa-15),$sayfa_sayisi),birdensuna(($aktif_sayfa-10),$sayfa_sayisi) 
    ,birdensuna(($aktif_sayfa-5),$sayfa_sayisi),birdensuna(($aktif_sayfa-2),$sayfa_sayisi) 
    ,birdensuna(($aktif_sayfa-1),$sayfa_sayisi),$aktif_sayfa 
    ,birdensuna(($aktif_sayfa+1),$sayfa_sayisi),birdensuna(($aktif_sayfa+2),$sayfa_sayisi) 
    ,birdensuna(($aktif_sayfa+5),$sayfa_sayisi),birdensuna(($aktif_sayfa+10),$sayfa_sayisi) 
    ,birdensuna(($aktif_sayfa+15),$sayfa_sayisi),birdensuna(($aktif_sayfa+20),$sayfa_sayisi)); 
    for ($i=$aktif_sayfa;$i>0;$i=$i-$sayfalar_araligi) { $sayfalanacak[] = $i; } 
    for ($i=$aktif_sayfa;$i<$sayfa_sayisi;$i=$i+$sayfalar_araligi) { $sayfalanacak[] = $i; } 
    $sayfalanacak = array_unique($sayfalanacak); 
    sort($sayfalanacak); 
    foreach ( $sayfalanacak as $sayfa_no ) { 
        if ( $sayfa_no == $aktif_sayfa ) { echo "<span class=\"here\"><span>$sayfa_no</span></span>"; } 
        else { 
            if ( $ekmi == 0 ) { echo "<a href=\"$ana_baglanti$sayfa_degiskeni=$sayfa_no\">$sayfa_no</a> "; } 
               else { echo "<a href=\"$ana_baglanti&$sayfa_degiskeni=$sayfa_no\">$sayfa_no</a> "; } 
}    }    
echo "<br></div>";
}
}

Altakiyle değiştirin.

PHP:
if(!empty($nr2))
{
$page2= $site . "/arama.php?query=".guvenlik($_GET['query']) ."&kid=". $_GET['kid'] . "&";
$ana_baglanti = $page2;
$eleman_sayisi = $nr2;
$sayfa_basina = $max;
$aktif_sayfa = $page;
$ekmi = 0;
$sayfa_degiskeni = "p";

    echo "<div class=\"pagination\"><p><b>Sayfalar:</b>";
    // Bu fonksiyon calismak icin birdensuna() fonksiyonunu gerektirir 
    $sayfa_sayisi = ceil($eleman_sayisi/$sayfa_basina); 
    if ( $aktif_sayfa < 1 OR $aktif_sayfa > $sayfa_sayisi ) { $aktif_sayfa = 1; } 
    $sayfalar_araligi = ceil($sayfa_sayisi/5); // sayisi kucultuldukce baglanti sayisi azalir 
    $sayfalanacak = array(1,$sayfa_sayisi,birdensuna(($aktif_sayfa-20),$sayfa_sayisi) 
    ,birdensuna(($aktif_sayfa-15),$sayfa_sayisi),birdensuna(($aktif_sayfa-10),$sayfa_sayisi) 
    ,birdensuna(($aktif_sayfa-5),$sayfa_sayisi),birdensuna(($aktif_sayfa-2),$sayfa_sayisi) 
    ,birdensuna(($aktif_sayfa-1),$sayfa_sayisi),$aktif_sayfa 
    ,birdensuna(($aktif_sayfa+1),$sayfa_sayisi),birdensuna(($aktif_sayfa+2),$sayfa_sayisi) 
    ,birdensuna(($aktif_sayfa+5),$sayfa_sayisi),birdensuna(($aktif_sayfa+10),$sayfa_sayisi) 
    ,birdensuna(($aktif_sayfa+15),$sayfa_sayisi),birdensuna(($aktif_sayfa+20),$sayfa_sayisi)); 
    for ($i=$aktif_sayfa;$i>0;$i=$i-$sayfalar_araligi) { $sayfalanacak[] = $i; } 
    for ($i=$aktif_sayfa;$i<$sayfa_sayisi;$i=$i+$sayfalar_araligi) { $sayfalanacak[] = $i; } 
    $sayfalanacak = array_unique($sayfalanacak); 
    sort($sayfalanacak); 
    foreach ( $sayfalanacak as $sayfa_no ) { 
        if ( $sayfa_no == $aktif_sayfa ) { echo "<span class=\"here\"><span>$sayfa_no</span></span>"; } 
        else { 
            if ( $ekmi == 0 ) { echo "<a href=\"$ana_baglanti$sayfa_degiskeni=$sayfa_no\">$sayfa_no</a> "; } 
               else { echo "<a href=\"$ana_baglanti&$sayfa_degiskeni=$sayfa_no\">$sayfa_no</a> "; } 
}    }    
echo "<br></div>"; }
}
}

} hatası alabilirsin. Kodda gördüğün en alttaki } ler ile oynarsan düzelecektir.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst