Я пытаюсь найти вхождения писем через некоторое время () … но сейчас это не совсем у меня получается … Вот код, который у меня есть сейчас:
$sql = "SELECT name FROM shops ORDER BY name ASC";
$result = mysqli_query($conn,$sql);
// Previous or first letter
$first = "";
// Current letter
$current = "";
$c_instances = 0;
while($obj = mysqli_fetch_object($result)){
$current = strtoupper(substr($obj->name,0,1));
if(empty($first)){
$first = strtoupper(substr($obj->name,0,1));
}
if($current != $first){
?>
<a href=""><li><?=$first;?> <span><?=$c_instances;?></span></li></a>
<?
$first = strtoupper(substr($obj->name,0,1));
$c_instances = 0;
}
$c_instances++;
}
Это действительно работает, но когда дело доходит до последней буквы, это не показывает. Как сейчас и сейчас, он варьируется от A-H, но показывает только от A до F, а не два последних магазина, начинающиеся с «H». Я вроде знаю, что является причиной этого, но мой мозг не может обойти это прямо сейчас … Я считаю, что это вызвано, потому что он использует $ first вместо $ current, так что он повторяет тот, что раньше .. Дайте мне знать, если у вас есть идея, чтобы решить эту проблему .. спасибо
Вы можете заставить SQL делать всю работу за вас, если хотите
SELECT SUBSTRING(name,1,1) as First, count(name)
from shops
GROUP BY First
ORDER BY First;
Других решений пока нет …