İyinet'e Hoşgeldiniz!

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

Kayıt Ol!

php ile veritabanında arama (yardım).

Metro

0
İyinet Üyesi
Katılım
1 Ocak 2007
Mesajlar
84
Reaction score
0
Arkadaşlar Veritabanında arama için aşşağıdaki kodu kullanıyorum.
Yalnız şöyle bir sorunum var; Bu kod aramaya ilk uyan veriyi veriyor sadece.
ben; Bir adet sonuç değilde Tüm sonuçları listelesin istiyorum. Birde sonucu bulduğu satırdaki diğer verileride aranan sonuçla beraber listelemesini nasıl sağlarım?

<?php
$aranan= "arancak kelime";
$baglanti = mysql_connect("localhost",".....",".......");
mysql_select_db("........");

$sorgu = "SELECT arıcam_sutun FROM arıcam_tablo WHERE arıcam_sutun REGEXP '$aranan'";
$sorgulama = mysql_query ($sorgu);

while ($aranan=mysql_fetch_assoc ($sorgulama))
{
$veri =$aranan["arıcam_sutun"];
}

echo $veri;

mysql_close($baglanti);
?>
 

Metro

0
İyinet Üyesi
Katılım
1 Ocak 2007
Mesajlar
84
Reaction score
0
İstediğim gibi oldu sempaty teşekkür ederim :)
 
M

maiL

Misafir
peki bunu arama formuna nasıl oturturuz.
arama yapılacak form ve ara butonu şeklinde nasıl yaparız?
yani aranacak kısıma x bişi yazıp araya basıldığında belirlediğimiz tabloda nasıl aratırız?
 

sempaty

1
İyinet Üyesi
Katılım
25 Şubat 2005
Mesajlar
3,824
Reaction score
19
Konum
hawaii. ama sanal tur.
<form method="post">
<input type="text" name="kelime">
<input type="submit">
</form>

php dosyasında,

$aranan= $_POST['kelime'];
 
M

maiL

Misafir
<form method="post">
<input type="text" name="kelime">
<input type="submit">
</form>

sanırım ilk 4 satırda bir eksiklik var gibime geldi. çünkü bir kelime aratıcaksam ve ara.php olarak php kodunu kaydettiysem sorguyu ara.php den nasıl yapıcak bu kod?
 

Metro

0
İyinet Üyesi
Katılım
1 Ocak 2007
Mesajlar
84
Reaction score
0
while ($aranan=mysql_fetch_array ($sorgulama))
{
echo $aranan["arıcam_sutun"];
}

diğer sütunlar için $aranan['sütunadı'] şeklinde yazdırabilirsin } den öncesine ekleyerek

Peki burda; aranan kelimeyi arama sonucunda koyu göstermek istesek?
etiketlerini nerde kullanmamız lazım?

Birde aracağımız tablodaki kelimenin ilişkili olduğu 20 karakterlik kısmı ekrana basmamız gerekirse bunu nasıl yapabiliriz.? Tabloda 200 karakter var ama biz kelimenin geçtiği 20 karakterlik bölümü ekrana bascaz sadece.
 

mike

0
İyinet Üyesi
Katılım
5 Haziran 2006
Mesajlar
12
Reaction score
0
echo "<b>$aranan[arıcam_sutun]</b>";


karakter kısaltması
$kisaltik = substr("$aranan[arıcam_sutun]",0,20); //////// 0 dan 20 karaktere kadar kısmı alıyor
echo "$kisaltik";
 

*siber*

0
İyinet Üyesi
Katılım
20 Temmuz 2005
Mesajlar
2,014
Reaction score
1
Konum
about:blank
bold yapmak için, while içinde
PHP:
$veri =$aranan["arıcam_sutun"]; 
$yeniveri = ereg_replace("$aranan", "<b>$aranan</b>", $veri);
echo $yeniveri;

Ben üç satır gösterdim sen tek satırlada kısaltabilirsin.
 

Metro

0
İyinet Üyesi
Katılım
1 Ocak 2007
Mesajlar
84
Reaction score
0
bold yapmak için, while içinde
PHP:
$veri =$aranan["arıcam_sutun"]; 
$yeniveri = ereg_replace("$aranan", "<b>$aranan</b>", $veri);
echo $yeniveri;

Ben üç satır gösterdim sen tek satırlada kısaltabilirsin.


echo $yeniveri; -> arıcam sütunun tamamını veriyo.

mesela echo $aranan; -> aranan kelmeyi vermiyo while içinde array yazıyo.
while önce "ereg_replace" kullanırsam bold oluyo ama arama sonucunda göstermek için while içinde kullanınca tamamını veiyo.

"ereg_replace" benimde aklımda ama başka türlü nasıl yaparız while içinde yani?
 

*siber*

0
İyinet Üyesi
Katılım
20 Temmuz 2005
Mesajlar
2,014
Reaction score
1
Konum
about:blank
PHP:
while ($ara=mysql_fetch_assoc($sorgulama))
{ 
$veri = $ara[arıcam_sutun]; 
$yeniveri = ereg_replace("$aranan", "<b>$aranan</b>", $veri); 
echo $yeniveri;  
}

Böyle dene
 

Metro

0
İyinet Üyesi
Katılım
1 Ocak 2007
Mesajlar
84
Reaction score
0
siber ilgilendiğin için öncelikle teşekkür ederim...

Verdiğin kodun aynısını kullanıyorum zaten. :) while içinde "$veri" yi olduğu gibi yazıyo hepsini. while dışında bold yazıyo ama bize arama sonucunda bold yazması lazım. :(
 

*siber*

0
İyinet Üyesi
Katılım
20 Temmuz 2005
Mesajlar
2,014
Reaction score
1
Konum
about:blank
Verdiğim kodu aynen yazdığına eminmisin _assoc ile ? Burada $veri yi $yeniveri ye depolayıp $aranan değişkenini bulduğunda bold yapıp echo yaptırıyoruz. Sorunsuz çalışması gerek.
 

Metro

0
İyinet Üyesi
Katılım
1 Ocak 2007
Mesajlar
84
Reaction score
0
siber çok sağol ya ben "$ara" yerinede "$aranan" kullanmışım sorun çözüldü. + rep de vercem ama sistem müsade etmiyo. iyi akşamlar...
 
M

maiL

Misafir
bu kısımı index.php ye koydum.

<form method="post" action="ara.php">
<input type="text" name="kelime">
<input type="submit">
</form>

aşağıdaki kısmı ara.php yaptım.

<?php
$aranan= $_POST['kelime'];
$baglanti = mysql_connect("localhost","xx","xx");
mysql_select_db("xx");

$sorgu = "SELECT title FROM lyrics WHERE title REGEXP '$aranan'";
$sorgulama = mysql_query ($sorgu);

while ($aranan=mysql_fetch_array ($sorgulama))
{
echo $aranan["title"];
}

mysql_close($baglanti);
?>

(yukarıda aramayı şarkı sözlerinin başlık kısmında yaptırıyorum.)

şimdi arama yapıyorum. xx aradım. sonucu şu şekilde çıkıyor.
aaaaaxxx bbbbxxx bceedddcxxx xxxxx
yani sonuçlar yan yana çıkıyor.

(şuan xxx.com/sarkisozu7777-ali-ahmet-dokunma.htm şeklinde sozlerimi yazdırıyorum.) (sarkisozuid-sanatçı-şarkı.htm)

2. sorumda çıkan sonuçlarda bulunan kelimenin olduğu sözün başlığına tıklayınca çıkan sonuçlarda (xxx.com/sarkisozuİD-sanatçı-şarkı.htm) gibi link verebilirmiyim.
 

hakimi

0
İyinet Üyesi
Katılım
1 Temmuz 2006
Mesajlar
1,356
Reaction score
0
while ($aranan=mysql_fetch_array ($sorgulama))
{
$add=trsil($aranan[title]); // trsil de tr karakterlerden kaçıyorsun. tabi trsil dosyan olmalı :)
//Önce
echo "<A href=$site/$dd.html>$aranan[title]</a><br>";
echo "$aranan[title]<br>";
}
yaparsan alt alta dizilirler. Sbebi while liste yapar sen araya bir şey koymalısın ki yan yana olmasın.
 

*siber*

0
İyinet Üyesi
Katılım
20 Temmuz 2005
Mesajlar
2,014
Reaction score
1
Konum
about:blank
hani ya rep mep görünmüyor :)
iyinet hazır elin değmişken bir tanede invite send yapsana :D
 

Tia

0
İyinet Üyesi
Katılım
14 Ocak 2012
Mesajlar
12
Reaction score
0
6 yıl geçmesine rağmen çok faydalandığım bir konu oldu, teşekkürler.
 

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