sohbet odaları

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

Metro

Şen Üye
Bilgiler
Katılım
1 Ocak 2007
Mesajlar
84
Reaksiyon
0
Puanları
0
204 Aydır Üye
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);
?>
 
Bilgiler
Katılım
25 Şubat 2005
Mesajlar
3,824
Reaksiyon
19
Puanları
0
Şube
hawaii. ama sanal tur.
226 Aydır Üye
while ($aranan=mysql_fetch_assoc ($sorgulama))
{
$veri =$aranan["arıcam_sutun"];
}
echo $veri;
yerine
while ($aranan=mysql_fetch_array ($sorgulama))
{
echo $aranan["arıcam_sutun"];
}
dener misin

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

Metro

Şen Üye
Bilgiler
Katılım
1 Ocak 2007
Mesajlar
84
Reaksiyon
0
Puanları
0
204 Aydır Üye
İstediğim gibi oldu sempaty teşekkür ederim :)
 
M

maiL

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?
 
Bilgiler
Katılım
25 Şubat 2005
Mesajlar
3,824
Reaksiyon
19
Puanları
0
Şube
hawaii. ama sanal tur.
226 Aydır Üye
<form method="post">
<input type="text" name="kelime">
<input type="submit">
</form>

php dosyasında,

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

maiL

<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

Şen Üye
Bilgiler
Katılım
1 Ocak 2007
Mesajlar
84
Reaksiyon
0
Puanları
0
204 Aydır Üye
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

Pratik Üye
Bilgiler
Katılım
5 Haziran 2006
Mesajlar
12
Reaksiyon
0
Puanları
0
211 Aydır Üye
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*

Müptela
Bilgiler
Katılım
20 Temmuz 2005
Mesajlar
2,014
Reaksiyon
1
Puanları
0
Yaş
43
Şube
about:blank
221 Aydır Üye
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

Şen Üye
Bilgiler
Katılım
1 Ocak 2007
Mesajlar
84
Reaksiyon
0
Puanları
0
204 Aydır Üye
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*

Müptela
Bilgiler
Katılım
20 Temmuz 2005
Mesajlar
2,014
Reaksiyon
1
Puanları
0
Yaş
43
Şube
about:blank
221 Aydır Üye
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

Şen Üye
Bilgiler
Katılım
1 Ocak 2007
Mesajlar
84
Reaksiyon
0
Puanları
0
204 Aydır Üye
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*

Müptela
Bilgiler
Katılım
20 Temmuz 2005
Mesajlar
2,014
Reaksiyon
1
Puanları
0
Yaş
43
Şube
about:blank
221 Aydır Üye
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

Şen Üye
Bilgiler
Katılım
1 Ocak 2007
Mesajlar
84
Reaksiyon
0
Puanları
0
204 Aydır Üye
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

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

Müptela
Bilgiler
Katılım
1 Temmuz 2006
Mesajlar
1,356
Reaksiyon
0
Puanları
0
210 Aydır Üye
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*

Müptela
Bilgiler
Katılım
20 Temmuz 2005
Mesajlar
2,014
Reaksiyon
1
Puanları
0
Yaş
43
Şube
about:blank
221 Aydır Üye
hani ya rep mep görünmüyor :)
iyinet hazır elin değmişken bir tanede invite send yapsana :D
 

Tia

Pratik Üye
Bilgiler
Katılım
14 Ocak 2012
Mesajlar
12
Reaksiyon
0
Puanları
0
142 Aydır Üye
6 yıl geçmesine rağmen çok faydalandığım bir konu oldu, teşekkürler.
 
  • Yararlı
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. iyinet.com sayfalarında yer alan yazı, görsel ve linklerle ilgili hukuki şikayetleriniz için Buradan iletişime geçmeniz durumunda, ilgili kanunlar ve yönetmelikler çerçevesinde en geç 7 gün içerisinde iyinet yönetimince tarafınıza dönüş sağlanacaktır.
Üst