<?php
//önce tüm kelimelerler aranıyor
$SQL="SELECT id FROM urun WHERE kimin=0 AND ( icerik like '%$string%' or uygulama like '%$string%' or
isim like '%$string%' )";
$sorgu=mysql_query($SQL) ;
if(mysql_num_rows($sorgu)==0) {
echo "arama sonucunda hiç bir şey bulunamadı";
exit();
}
if (!$sorgu)
{ echo("<P>Error performing query: " . mysql_error() . "</P>"); exit();}
$arguman=0;
$adet=0;
while($sira=mysql_fetch_array($sorgu))
{
//bulunan değerler sonuç arrayine yazılıyor.
$sonuc[$arguman]=$sira["id"];
$arguman++;
}
if($string{0}!='"')
{
//burada aynı kayıtın tekrar alınmaması sağlanıyor
$id_liste = array();
if($sira["id"]!=$sonuc[$i])
$id_liste[]=$sira["id"];
$arguman++;
$i++;
}
$sql_id = implode(',',$id_liste);
$SQL="SELECT isim, kategori FROM urun WHERE kategori IN(0,1) AND id IN($sql_id)";
$sorgu=mysql_query($SQL) ;
if (!$sorgu)
{ echo("<P>Error performing query: " . mysql_error() . "</P>"); exit();}
$kategori_liste = array();
while($sira=mysql_fetch_array($sorgu))
{
$kategori_liste[$sira['kategori']][] = $sira['isim'];
}
}
mysql_close;
// kategorisi 0 olan liste
foreach ($kategori_liste[0] as $k_liste_0) {
echo $k_liste_0['isim'];
}
// kategorisi 1 olan liste
foreach ($kategori_liste[1] as $k_liste_1) {
echo $k_liste_1['isim'];
}
?>kodlarının sonlarını değiştirdim. Fakat hiçbir şekilde test etmedim kodları. Yani yazım ve parantez hatalarım olabilir. Sadece fikir vermesi açısından ekliyorum
ID numaralarını dizi değişken içerisine attım öncelikle ve sonrasında bunları "," ile birleştirdim. Yapmış olduğun SQL sorgusunda IN fonksiyonu ile ID numaraları az önce birleştirdiğim değelerden olanları ve yine IN ile kategorisi 0 ya da 1 olanları tek bir sorgu ile çektirdim. Sonra bunların hepsini kategori ID sine bağlı olmak üzere dizi değişkene attım. Son olaraksa 0 ve 1 kategorilerini sırayla yazdırdım