Я получаю данные с сервера следующим образом:
$con = mysqli_connect($servername, $username, $password, $dbname);
$sql2 = "SELECT * FROM story WHERE category LIKE CONCAT('%' ,'WorldList', '%') ORDER BY IDStory DESC limit 20";
$result2 = mysqli_query($conn, $sql2);
mysqli_query ($con,"set character_set_results='utf8'");
while($finalresult=mysqli_fetch_assoc($result2)){}
Теперь я хочу получить данные другой категории, например:
$conn = mysqli_connect($servername, $username, $password, $dbname);
$sql2 = "SELECT * FROM story WHERE category LIKE CONCAT('%' ,'WorldList', '%') ORDER BY IDStory DESC limit 20 AND LIKE CONCAT('%' ,'WorldTop', '%') ORDER BY IDStory DESC limit 1,20";
$result2 = mysqli_query($conn, $sql2);
mysqli_query ($conn,"set character_set_results='utf8'");
while($finalresult=mysqli_fetch_assoc($result2)){}
Я знаю, что это неправильно, это не запрос, но как я могу сделать это так. PS: Я новичок в PHP
использовать sql union
SELECT * FROM story WHERE category LIKE CONCAT('%' ,'WorldList', '%') limit 20
UNION
SELECT * FROM story WHERE category LIKE CONCAT('%' ,'WorldTop', '%') ORDER BY IDStory DESC limit 20
Измените ваш запрос на
$sql2 = "SELECT * FROM story
WHERE category LIKE CONCAT('%' ,'WorldList', '%')
AND category LIKE CONCAT('%' ,'WorldTop', '%') ORDER BY IDStory DESC limit 20";
Вы не можете использовать ORDER BY
или же AND
после LIMIT
, В качестве альтернативы вы можете использовать BOOLEAN MODE
$sql2 = "SELECT * FROM story WHERE MATCH (category)
AGAINST ('+WorldList +WorldTop' IN BOOLEAN MODE) ORDER BY IDStory DESC limit 20";