2011-02-02 13 views
1

mysqlの結果をwikiページの一覧のようなアルファベット順に並べるにはどうしたらいいですか?mysqlのwikiのようなアルファベット順のリスト表示方法

例:


リンゴ
アプリコット

B
バナナ

など

のマイSQLは、以下の通りである:

$sql = "SELECT id, title FROM myTable ORDER BY title ASC"; 

ありがとうございました。

+2

を試してみてください? – drudge

+0

私は実際にアルファベットと一致する結果を配置するタイプのフォーマットをリストするwikiページに結果を表示します。このページは、例ですhttp://wikimediafoundation.org/wiki/Category:English – bradly

答えて

1
<?php 
while ($row = mysql_fetch_assoc($result)){ 

    $first_letter = mb_substr($row['title'],0,1); 
    if($tmp!=$first_letter){ 
     $tmp = $first_letter; 
     echo '<h3 >'.$tmp.'</h3>'; 
    } 
    echo $row['title']; 

} //end while 
?> 
+1

+1 - 私は彼が望むことをするだろうと思っていますが、コードスニペットを使用して – TehShrike

+0

の間に$ tmpを初期化する必要があります。基本は世話をすることになる。 –

1

は、特にあなたが抱えている問題は何ですか...アルファベット順に並べ替える必要があり、この

SELECT UPPER(SUBSTRING(title, 1, 1)) AS 
FIRST , id, title 
FROM myTable 
ORDER BY FIRST ASC 
LIMIT 0 , 30 
+0

私はタイトルで注文することを提案し、アナナスの前にリンゴを持たないようにしてください。限界は意味をなさない。良いSQL結果のために+1。 –

+0

良い点;それはタイトルで注文することができます方法については、最初に –

0
<?php 

$arrayAlphabet = array('a','b','c','d',....................,'y','z'); //DONT FORGET FILLING DOTS. :D 

foreach($arrayAlphabet AS $apha){ 
    $sql = "SELECT id, title FROM myTable WHERE title LIKE '".$alpha."%' ORDER BY title ASC"; 
    $result = mysql_query($sql); 
    if(mysql_num_rows($result)){ 
     while($rows = mysql_fetch_assoc($result)){ 
      $arrayOfTitles[$alpa][] = $rows; 
     } 
    } 
} 

foreach($arrayAlphabet AS $apha){ 
    ?> 
    <div><span class="header"><?php echo strtoupper($alpha);?></span> 
     <div class="titles"> 
     <?php 
     foreach($arrayOfTitles[$alpa] AS $arrayKey $arrayValue){ 
      ?><div class="title">$arrayOfTitles[$alpa][$arrayKey]['title']</div><?php 
     } 
     ?> 
     </div> 
    </div> 
} 

?> 
+0

ああ、26クエリ、1の代わりに、あなたは本当に良いアイデアだと思う? (答え-NO) –

+0

あなたのものほど良くありません。しかし、投票するのはとても悪いと思いますか? – borayeris

+0

率直に言って、1ではなく26のクエリを実行するのはひどい考えです。 –

-2
**sorting the record alphetical order A B C D** ....Z when i **click A Letter** then its **show all name start with A letter** ,and click C Letter then its show all name start with C letter 

 <?php 
$host = "localhost"; 
$user = "root"; 
$pw = ""; 
$database = "test"; 

$con = mysql_connect($host,$user,$pw) 
    or die("Cannot connect to mySQL."); 

mysql_select_db($database,$con) 
    or die("Cannot connect to database."); 




$errormsg= "No Record Found...!"; 


$alpha="%"; 
if (isset($_REQUEST['alpha'])) { 
$alpha = $_REQUEST['alpha']."%"; 
} 
$q1 = mysql_query("select * from registration where firstname like '$alpha%' "); 





?> 

<div > 
     <form action="" method="post" > 
<table > 
         <td><div style="float:left;"> 
    <CENTER> 
    <FONT COLOR=Green>Sort by Alphabet:</FONT> 
           <A HREF="<?php echo $_SERVER['PHP_SELF']; ?>">All</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=A">A</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=B">B</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=C">C</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=D">D</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=E">E</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=F">F</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=G">G</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=H">H</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=I">I</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=J">J</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=K">K</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=L">L</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=M">M</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=N">N</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=O">O</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=P">P</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=Q">Q</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=R">R</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=S">S</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=T">T</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=U">U</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=V">V</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=W">W</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=X">X</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=Y">Y</A> 
    <FONT COLOR=Green>|</FONT> <A HREF="?alpha=Z">Z</A> 
    </CENTER> 

     </div> 


    </td></tr> 

      <tbody> 
    <?php 



    $i=1; 
    $num_rows=mysql_num_rows($q1); 
    if($num_rows==0) 
    { 
    ?> 
    <div align="center"> 
    <div class="alert alert-danger alert-dismissable"> 

     <?php echo $errormsg; ?></div> 
    </div> 
      <?php 
    } 
    else 
    { 
    while($roww=mysql_fetch_array($q1)) 
    {     
     ?> 
      <tr> 
    <td><div style="height:100px;float:left;"> 
     <input name="" type="checkbox" value=""> 
     </div> 
     <div><a href="#"> <b><?php echo $roww["firstname"]; ?></b></a><br /> 
     :&nbsp;<?php echo $roww["firstname"]; ?><br /> 
     <?php echo $roww["lastname"]; ?><br /> 
     <?php echo $roww["password"]; ?><br /> 
     <?php echo $roww["gender"]; ?><br /> 
     </div></td> 
    </tr> 
      <?php } 
      $i++; 
      } 

      ?> 
      </tbody> 

     </table> 
     </form> 
    </div> 
    </body></html> 
    <SCRIPT LANGUAGE=JavaScript> 
     <!-- 
     document.write(ALPHABET()) 
     //--> 
    </SCRIPT> 


CREATE TABLE IF NOT EXISTS `registration` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`firstname` varchar(20) NOT NULL, 
`lastname` varchar(20) NOT NULL, 
`password` varchar(20) NOT NULL, 

`gender` varchar(20) NOT NULL, 



PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; 
+1

このコードの機能の説明を追加できますか? – arco444

+0

そのレコードをアルファベット順に並べ替えるA B C D .... Zをクリックすると、すべての名前が文字で始まり、Cをクリックするとすべての名前がCの文字で始まります –

関連する問題