$query = "(l.name LIKE '%$rus%' OR l.name LIKE '%$eng%')";
elseif (!empty($rus) && empty($eng))
$query = "l.name LIKE '%$rus%'";
else
$query = "l.name LIKE '%$eng%'";
$similar = $mysqli->query("SELECT l.id, l.textid, l.name, l.categoryid, c.cat_name FROM lists as l LEFT JOIN categories AS c ON l.categoryid = c.id WHERE $query AND l.id <> " . $id . " LIMIT 10") or sqlerr(__FILE__, __LINE__, $mysqli->error);
if ($similar->num_rows > 0) {
?>
<h2>Читайте также</h2>
<?PHP
while($row=$similar->fetch_array())
{
$text_my_view=$mysqli->query("SELECT text FROM texts WHERE id = ".$row['textid']) or sqlerr(__FILE__,__LINE__,$mysqli->error);
Работает. Но долготовато. Есть идеи как оптимизировать?
likvidator
Отправлено: 20 Февраля, 2015 - 19:42:07
Посетитель
Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012
Помог: 4 раз(а)
[+]
как минимум - избавиться от запроса в цикле... юзайте джоины или IN... Точно не скажу,не вникал+нет структуры. Но сколько id'шников= столько запросов- это bad
gephaest
Отправлено: 20 Февраля, 2015 - 21:24:37
Новичок
Покинул форум
Сообщений всего: 32
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
Я бы еще рекомендовал отделить логику от вывода, у вас мешанина нечитаемая
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.