私はすべてのレコードをlast_nameで並べ替えたクエリを取得しています。今私は、すなわち名前の最初の文字にグループ化されたPHPの結果
A
-----------
Albert
Alfred
C
-----------
Charles
D
-----------
Delta etc...
おかげでループを作成し、そのグループの最後の名前の最初の文字によって、これらの結果を、グループの上に文字を表示したいと思います!クエリで
私はすべてのレコードをlast_nameで並べ替えたクエリを取得しています。今私は、すなわち名前の最初の文字にグループ化されたPHPの結果
A
-----------
Albert
Alfred
C
-----------
Charles
D
-----------
Delta etc...
おかげでループを作成し、そのグループの最後の名前の最初の文字によって、これらの結果を、グループの上に文字を表示したいと思います!クエリで
注文MySQL
側のlastname
によって結果とPHP
側の最初の文字の変更を追跡:
<?php
$rs = mysql_query("SELECT * FROM mytable ORDER BY lastname");
while ($rec = mysql_fetch_assoc($rs)) {
if ($initial !== strtoupper(substr($rec['lastname'], 0, 1)) {
$initial = strtoupper(substr($rec['lastname'], 0, 1));
print "$initial\n";
}
print $rec['lastname'] . "\n";
}
?>
は、のようなものを追加してみてください:
group by substr(last_name,1,1)
すなわち
select substr(last_name,1,1) as alpha, *
from tableName
group by substr(last_name,1,1)
$letter = null;
foreach ($array as $word) {
if ($letter != $word[0]) {
$letter = $word[0];
echo '<b>'.strtoupper($word[0]) . '</b><br/>';
}
echo strtoupper($word) . '<br/>';
}
とクエリの追加ラインツアー:あなたは可能性があなたのビューで
order by `your_field` asc
[php concatによる[mysql group]と同じ問題と解決策(http://stackoverflow.com/questions/6719061/mysql-group-by-php-concat/6719354#6719354) – knittl
をレコードをループして分割します:
$current = '';
foreach ($rows as $r) {
if (!$current || strtolower($r['name'][0]) != $current) {
$current = strtolower($r['name'][0]);
echo strtoupper($current).'<br />---------------';
}
echo $row['name'].'<br />';
}
出回っはこのような何かを試してみましたか?
$last = '';
foreach($data as $key=>$row){
if(substr($row['last_name'],0,1)!=$last) echo '<br /><br />'.substr($row['last_name'],0,1).'<br />----------------<br />';
$last = substr($row['last_name'],0,1);
echo $row['last_name'];
}
私は書いていますずっと遅い!:D – Marco
はい、あなたが期待通りにリストをするつもり私の場合のBRAND_NAMEで自身
MySql
を使用して、これをachiveすることができます。
例:
SELECT id, upper(SUBSTR(brand_name, 1, 1)) AS alpha FROM products WHERE brand_name != '' group by alpha
UNION
SELECT id, upper(SUBSTR(brand_name, 1, 1)) AS alpha FROM products WHERE brand_name != '' order by brand_name COLLATE NOCASE
結果:
A
A Card
A Cef
A Cef O
B
Bacticef Tab
Bacticin
Bactidrox
Bactidrox Kid
........
は、それが誰かを助けることを願っています。
$ initial!== strtoupper(substr($ rec ['lastname']、0、1) –