Здравствуйте, возникла следующая проблемка, нужно сделать вывод категорий из БД по алфавиту так, что-бы перед каждой новой буквой выводился заголовок, например перед словами на букву "А", выводился заголовок с буквой "A", перед "Б", заголовок с "Б" и т.д. Думаю можно сделать цикл, который будет проверять первую букву слова и выводить её перед ним, но тогда вывод будет перед каждым словом, как сделать, чтобы он выводил этот заголовок только тогда, когда первая буква слова меняется? Спасибо.
Возникла проблемка с опеределением первой буквы, подскажите как её выбрать, не могу найти подходящую функцию Например, как из переменной $row['title'] выбрать первую букву?
$t = $r_subcat['title']{0}; echo $t; Вывело. А как запомнить предыдущую? Код (PHP): do { $t = $r_subcat['title']{0}; if (!empty($r_subcat['id'])) { $subcat .= "<h3>$t</h3>"; $subcat .= "<div>$r_subcat[title]</div>"; } } while($r_subcat = @mysql_fetch_assoc($res_subcat)); Вот сам цикл.[/code]
переменную еще одну заведите, и первую букву берите по-человечески =) http://www.php.ru/manual/function.substr.html $t = substr($r_subcat['title'], 0, 1);
А как выбрать предыдущее значение? Если я заведу её в цикле, он внесет в нее тоже самое значение, а если выбирать первую букву перед циклом, то она не будет меняться.
Код (PHP): while($r_subcat = mysql_fetch_assoc($res_subcat)) { $r_subcat['title']//Ковычки делайте... и не нужно там "@" }
а в самом конце цикла присваивайте этой переменной текущее значение $t и тогда в начале следующего прохода она будет держать в себе предыдущее значение $t, а вы вычислите новое, сравните их и когда они не совпадут - буква сменилась.