Я пытаюсь получить строки из запроса my_sqli, который начинается только с определенной буквы, однако он всегда выводит весь массив. Вот мой код, я пытаюсь получить первое значение, посмотреть, начинается ли оно с правильной буквы, а затем повторить его, если это произойдет, а затем перейти к следующему.PHP Попытка получить строки из массива, которые начинаются с определенной буквы, давая мне все
$strSQL = "SELECT title FROM blogtable ORDER BY title ASC";
$titleResult = mysqli_query($con, $strSQL);
while($rowTitle = mysqli_fetch_array($titleResult))
{
$strTitle = $rowTitle['title'];
$subTitle = substr($strTitle,0,2);
$subNum = ord($subTitle);//This gets me the value of the first letter
if($subNum = $topLetter)//$topLetter = 65, which is capital A
{
echo $strTitle;
echo "<br>";
}
}
Таким образом, проблема здесь в том, что, скажем, если у меня есть 3 вещи, и только 2 начать с, он будет выводить все 3, но я просто хочу 2, которые начинаются с А.
Это может быть глупый вопрос, но почему бы просто не сделать это в запросе? 'SELECT title FROM blogtable WHERE title LIKE 'A%' ORDER BY title ASC' Обычно это будет быстрее, особенно для больших наборов результатов. –
Вам следует рассмотреть возможность реорганизации схемы базы данных с алфавитными идентификаторами, соответствующими первой букве. Намного легче. Гораздо эффективнее. –
О, я не знал, что это возможно благодаря подсказке. – user3150430