php mysql ile kategoriye göre arama

1 Cevap php

merhaba arama yapmak için bu kodu kullanarak im

    <form action="arama.php" method="get">
<input type="text" name="lol">
<select name='kategori'>
<option value="tum">Tum kategoriler</option>
<? 
while ($kat = mysql_fetch_array($kategori_isim)) {
echo "
<option value=".$kat[kategori_isim].">".$kat[kategori_isim]."</option>";
} 
?>
</select>
<input type="submit" value="ara">
</form>

<?
    $lol = mysql_real_escape_string($_GET['lol']);
    $kategori = mysql_real_escape_string($_GET['kategori']);

    if ($kategori == "tum") {
    $ara = mysql_query("select * from dosyalar where baslik like '%$lol%'");
    }
    else {
    $ara = mysql_query("select * from dosyalar where baslik like '%$lol%' order by kategori = '%$kategori%'");
    }
    ?>

Terim eserleri ile arama ama kategori ile liste değil .. ben ne yapabilirim?

1 Cevap

(Ben gerçekten bu alanların ne anlama geldiğini anlamaya olamaz) soruyu anlamak emin değilim, ama ben ikinci sorgu gibi daha fazla olması gerektiğini düşünüyorum:

$ara = mysql_query("SELECT * FROM dosyalar WHERE kategori LIKE '%$kategori%'");

ORDER BY sadece sadece kod olarak bir sütun adı değil, bir çek kullanabilir, sonuçlarını sıralamak için nasıl belirtir.

Benim cevap genişletme: ORDER BY kategori = '%$kategori%', bir yazım hatası değil ama yararlı bir şey sanmıyorum. Check kategori = '%$kategori%' (siz başında hem de sonunda yüzde işaretleri ile bir değere sahip olmadıkça) her zaman yanlış olacak şekilde ORDER BY fıkra faydasız olacak ve sadece aynı seçme yapacak Eğer if bloğunun diğer branşında yapıyoruz.

ORDER BY kategori = '$kategori' o maçlar olanlar için, $kategori kategori eşit olmadığı tüm kayıtları 1 0 dönecektir belirterek. Bu sorgunun sonunda temelde sıralama tüm eşleşen satırlar olacak.