Jump to content

php de 'like' ile arama sorunu


Recommended Posts

arkadaşlar php de mysql e bağlı bir site yaptım. sitede bir sözlük var. arama koydum.kodları aşağıdaki gibi

$sql="select kelime from sozluk where kelime like '%kelimeler%'";

$sonuc=mysql_query($sql);

$num_sonuc=mysql_num_rows($sonuc);

echo"$num_sonuc";

for ($i=0; $i < $num_sonuc; $i++) {

$row=mysql_fetch_assoc($sonuc);

echo $row[kelime];

echo $row[anlam];

}

bu şekilde yazınca okul kelimesini arattıyorum. sıfır değerini döndürüyor .ama

$sql="select * from sozluk where kelime like '%kelimeler%'";

ifadesi yerine

$sql="select * from sozluk where kelime='$kelimeler'";

ifadesini yazınca 3 değer döndürüyor. yani ilk ifade var olan veriyi bulamıyor.

buraya ve diğer sitelere baktım. bi çözüm yolu bulamadım. kodlar doğru gibi.

sorun ne acaba ? acilen yardımcı olursanız sevinirim.

Link to comment
Share on other sites

like komutunun bir sürü kullanılışı var hepsini denemen lazım tek bi tırnağı bile yanlış yazsan sql komutu yorumlayamayacağından dolayı sonuç döndürmeyebilir

$sql="select * from sozluk where kelime like '%'+@kelimeler+'%'";

$sql="select * from sozluk where kelime like '%'+kelimeler+'%'";

$sql="select * from sozluk where kelime like '%'kelimeler'%'";

şu yazılımları bi dene bakalım

Link to comment
Share on other sites

arkadaşım hiç biri çalışmadı. birisi yine sıfır değerini döndürdü.

diğeri yani son ikisi de

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\Apache Group\Apache2\htdocs\BOTUX\kelimeara.php on line 46 hatasını verdirdi.

Link to comment
Share on other sites

fetch_row sadece sayısal dizi indisleri olarak erişim sağlar

fetch_assoc sadece alan isimleri ile dizi değişkene erişim sağlar

fetch_array ise her ikisini de destekler

Dolayısıyla,

Şu satırı ....


...
...
$row=mysql_fetch_assoc($sonuc);
...
...
[/CODE]

[b]alttaki ile değiştir.[/b]

[CODE]$row=mysql_fetch_array($sonuc);[/CODE]

[b]sonucu tekrar buraya yaz, olmadı dosyayı gönder bi inceleyelim.[/b]

Link to comment
Share on other sites

Ayrıca;

νєяуLife ©ın dediğini yapmandan sonra eğer hala olmuyosa ilk verdiğin kodları değiştirerek şunları uygula.

$sql="select kelime from sozluk where kelime like '%kelimeler%'";[/CODE]

bölümünü;

[CODE]$sql="select kelime from sozluk where kelime like '%$kelimeler%'";[/CODE]

olarak düzenle.

Sorunun çözülecektir.

Link to comment
Share on other sites

Evet @Hakinen arkadaşımız iyi görmüş orada "$" olmadığı için "kelime" kendi anlamıyla vt ye sorgu için gidiyor.

yani yeni kodların:

$sql="select kelime from sozluk where kelime like '%$kelimeler%'";

$sonuc=mysql_query($sql);

$num_sonuc=mysql_num_rows($sonuc);

echo"$num_sonuc";

for ($i=0; $i < $num_sonuc; $i++) {

$row=mysql_fetch_array($sonuc);
echo $row[kelime];
echo $row[anlam];
}[/CODE]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...