Kişi arama motoru.

SuperSuperahmet kiraz

Merhaba ben sitem için kişi yada üye arama moturu yapmak istiyorum kod bilgim mevcut ama arama moturu mantığını çözemedim şöyle bir kod yazdım ama bu direk üyenin sayfa linkini veriyo ben aynı isimdeki diğer üyelerinde sayfa linklerini vermesini istiyorum mesala adam ahmet veli arıyo diyelim arama motoru bana ahmet velinin sayfa linkini ve ahmet adındaki tüm üyelerin linki vede veli soyadındaki tüm üyelerin linkini versin istiyorum lütfen yardım edin.

<?php

session_start();

include("vt.php");

$arama= trim($_POST["arama"]);

error_reporting(0);

if($arama == ""){

echo"arama boş";

exit;

}

if (ereg('@',$arama)){

$sorgu= mysql_query('select * from uyeler where uye_email="'.$arama.'"');

$say= mysql_fetch_array($sorgu);

if($say>0){

echo 'uye link = <a href="profile.php?go=profile&id='.$say["uye_id"].'" title="Profile" >'.$say["uyeadi"].' '.$say["uyesoyadi"].'</a>';

}else{

echo"bulunamadı";

}

exit;

}

if (!ereg('@',$arama)){

$degisken=explode("-",$arama);

$ad= $degisken[0];

$soyad= $degisken[1];

$sorgu= mysql_query('select * from uyeler where uyeadi="'.$ad.'" && uyesoyadi="'.$soyad.'"');

$say= mysql_fetch_array($sorgu);

$sorgu2= mysql_query('select * from uyeler where uyesoyadi="'.$soyad.'"');

$say2= mysql_fetch_array($sorgu2);

if($say && $say2 >0){

echo 'uye link = <a href="profile.php?go=profile&id='.$say["uye_id"].'" title="Profile" >'.$say["uyeadi"].' '.$say["uyesoyadi"].'</a><br>';

echo 'uye link = <a href="profile.php?go=profile&id='.$say2["uye_id"].'" title="Profile" >'.$say2["uyeadi"].' '.$say2["uyesoyadi"].'</a>';

}else{

echo"bulunamadı";

}

}

?>

2012-06-08 02:42:01 Edit:2012-06-08 02:48:48

Php

alicilinAli Fırat Güler

mysql de LIKE denilen olayla halledebilirsiniz hocam

örnek kullanım;

kisiler adında bir tablom olduğunu varsayıyorum ve bu tabloda id, isim, soy_isim alanları olsun. ve ben isime ve soy isime göre arama yaparken şu şekilde bir komut kullanabilirim.

$isim=$_GET['isim'];

$soy_isim=$_GET['soy_isim'];

mysql_query("SELECT * FROM  kisiler WHERE isim LIKE '$isim%' and  soy_isim LIKE '$soy_isim%'");

GEt değerlerine şu şekilde veri girildiğini varsayarsak;

ara.php?isim=a&soy_isim=d

yukardaki sorgu bize a ile başlayan isim ve soy adı d ile baslayan bütün isimleri vericektir örn; ahmet demir, ali döner vs....

2012-06-08 12:13:20

Php

SuperSuperahmet kiraz

Çok saollun ali bey çok işimi yaradı ama adam veritabınıda olmaya birşey ardığında bulunamadı yazdırmak istiyorum ama olmuyo ne denediysem yapamadım söyle bir kod yazdım 

<?php

session_start();

include("db.php");

$arama= trim($_POST["arama"]);

error_reporting(0);

if($arama == ""){

echo"arama boş";

exit;

}

if (ereg('-',$arama)){

$degisken=explode("-",$arama);

$ad= $degisken[0];

$soyad= $degisken[1];

$bilgi3= mysql_query("SELECT * FROM uyeler WHERE uyeadi LIKE '$ad%' && uyesoyadi LIKE '$soyad%'"); 

while ($sutun= mysql_fetch_array($bilgi3))

echo ''.$sutun["uye_id"].'-'.$sutun["uyeadi"].'-'.$sutun["uyesoyadi"].''; 

echo '<br>'; 

}

exit;

}else

$bilgi= mysql_query("SELECT * FROM uyeler WHERE uyeadi LIKE '$arama%'"); 

$bilgi2= mysql_query("SELECT * FROM uyeler WHERE uyesoyadi LIKE '$arama%'"); 

while ($sutun= mysql_fetch_array($bilgi))

echo ''.$sutun["uye_id"].'-'.$sutun["uyeadi"].'-'.$sutun["uyesoyadi"].''; 

echo '<br>'; 

}

while ($sutun= mysql_fetch_array($bilgi2))

echo ''.$sutun["uye_id"].'-'.$sutun["uyeadi"].'-'.$sutun["uyesoyadi"].''; 

echo '<br>'; 

}

sistem sorunsuz çalışıyo sadace bulunamadı yazdıramıyorum şöyle denedim olmadı.

if($bilgi == 0){

echo"bulunamadı";

}

2012-06-11 20:13:33

Php

alicilinAli Fırat Güler

hocam su sekilde halledebilirsiniz;

$sql=mysql_query(" select from ve lıke den olaşan standart sql kodumuz.....");

$sayi=mysql_num_rows($sql);

if($sayi < 1) echo'Aradıgınız kriterlerde bilgi bulunamadı';

while($row=mysql_fetch_array($sql)){

klasik döngü içeriği...

}

şimdi üstad kodumuzu incelediğimizde. normal sql sorgumuzu yaptırıyouz.

ve o sql sorgusundan cıkan kaç satır bilgi oldugunu buluyoruz. daha sonra buldugumuz satır sayısı 1 den küçük ise yani 0 ise ekrana bulunamadı hatasını yaz diyoruz. sonuc var ise hiç bişey yazmaz.

altada yine o yukarda çalışmış olan sql sonucunu alıp diziye çevrip bir döngü ile tek tek bak diyoruz.

bukadar basit hocam kolay gelsin...

2012-06-11 22:57:04

phpkodlari.com © 2009 Herkes Php öğrenecek
Eglence ve Oyun: Gamikro