2011-05-19 45 views
1

assending爲了我不能夠按升序排列輸出表ORDER BY ASC工作中流露出表但表元素
我的代碼如下工作:如何見下表安排在PHP

<?php 
$result = mysql_query("SHOW TABLES FROM st_db_1"); 
while($row = mysql_fetch_row($result)) { 
    $result_tb = mysql_query("SELECT id FROM $row[0] LIMIT 1"); 
    $row_tb=mysql_fetch_array($result_tb); 

    //checking for availbility of result_tb 
    if (!$result_tb) { 
       echo "DB Error, could not list tables\n"; 
       echo 'MySQL Error: ' . mysql_error(); 
       exit; 
    } 
    echo "<a href=exa.php?id=$row_tb[id]>{$row[0]}<br/><a/>" ; 
} 
mysql_free_result($result); 
mysql_free_result($result_tb); 
?> 
+0

你不需要' 「SELECT ID FROM {$行[0]} LIMIT 1」' – Dycey 2011-05-19 15:58:43

+0

是啊,到數組引用必須在引用的字符串中纏繞大括號。這是一個問題。不知道這是否是ravi最初有的實際問題,但仍然是一個問題。 – WhiskeyTangoFoxtrot 2011-05-19 17:27:57

回答

0
$result_tb = mysql_query("SELECT id FROM $row[0] LIMIT 1 s ORDER BY id ASC"); 

,你必須使用ORDER BY

+0

這沒有工作,因爲沒有一個名爲「name」的字段 – ravi 2011-05-19 15:46:44

+0

@ravi你必須用你希望安排發生的字段替換名稱,比如'id'或其他。 'name'只是一個例子。閱讀我發佈的鏈接 – afarazit 2011-05-19 15:49:41

0

如果你的意思是,

SHOW TABLES FROM st_db_1 ORDER BY x ASC 

不工作,那是因爲沒有這樣的語法(HTTP:/ /dev.mysql.com/doc/refman/5.0/en/show-tables.html)。你可以,但是,通過PHP排序結果,然後選擇的每個表:

<?php 
$result = mysql_query("SHOW TABLES FROM st_db_1"); 
$tableArr = array(); 

while($row = mysql_fetch_row($result)) { 
    $tableArr[] = $row; 
} 

usort($tableArr, function cmp($a, $b) { 
    if ($a[0] == $b[0]) 
     return 0; 
    return ($a[0] < $b[0]) ? -1 : 1; 
} 

foreach($tableArr as $row) { 
    $result_tb = mysql_query("SELECT id FROM $row[0] LIMIT 1"); 
    $row_tb = mysql_fetch_array($result_tb); 

    //checking for availbility of result_tb 
    if (!$result_tb) { 
     echo "DB Error, could not list tables\n"; 
     echo 'MySQL Error: ' . mysql_error(); 
     exit; 
    } 
    echo "<a href=exa.php?id=$row_tb[id]>{$row[0]}<br/><a/>"; 
} 

mysql_free_result($result); 
mysql_free_result($result_tb);