Я не уверен, что понимаю вопрос (я не могу понять, что означают эти поля), но я думаю, что ваш второй запрос должен быть больше похож на:
$ara = mysql_query("SELECT * FROM dosyalar WHERE kategori LIKE '%$kategori%'");
ORDER BY
указывает только способ сортировки результатов, вы можете использовать только имя столбца, а не проверку, как в вашем коде.
Расширяя мой ответ: ORDER BY kategori = '%$kategori%'
не является синтаксической ошибкой, но я не думаю, что она делает что-то полезное. Проверка kategori = '%$kategori%'
всегда будет ложной (если у вас нет значения со знаками процента как в начале, так и в конце), поэтому предложение ORDER BY
будет бесполезным, и вы просто сделаете то же самое, что и в другой ветви блока if
.
Указание ORDER BY kategori = '$kategori'
вернет 0 для всех записей, где kategori
не равно $kategori
, 1 для тех, где оно совпадает. Это в основном отсортирует все совпадающие строки в конце вашего запроса.