2012-10-12 3 views
-1

MYSQL에 행이 있습니다.상위 ID로 주문하는 방법

기본적으로 사용자 입력을 기반으로하는 기사 및 소문입니다. 내 쿼리에서 나는 나중에 결과가 더 높은 순위를 갖도록 테이블을 만들고 싶습니다. Order By Query는 어떻게 작동합니까?

$query = "SELECT * FROM rumours"; 
$query.= "ORDER BY" 
$query = mysql_query($query) or die('MySQL Query Error: ' . mysql_error($connect)); 

while ($row = mysql_fetch_assoc($query)) { 
    $id = $row['id']; 
    $band = $row['band']; 
    $title = $row['Title']; 
    $description = $row['description']; 
    echo "<table border='1'>"; 
    echo "<tr>"; 
    echo "<td> $title </td>"; 
    echo "</tr>"; 
    echo "<tr>"; 
    echo "<td class = 'td1'> $description </td>"; 
    echo "</tr>"; 
    echo "</table>"; 
} 
+2

'순서 아이디 DESC' 또는 작성 날짜의 일종, creation_date_col의 DESC' BY'ORDER이있는 경우. –

+0

'루머'란에 모든 열을 주시면 더 나은 대답을 드릴 수 있습니다. –

답변

1

스 니펫과 관련하여 몇 가지 사항이 있습니다.

  1. 컬럼리스트를 사용 *
  2. mysql_ 기능 deprecated되는 피 선택된다. mysqli_ 또는 PDO 기능을 사용해야합니다.
  3. 변수를 다시 할당하는 대신 열을 직접 호출하여 시간을 절약 할 수 있습니다.
  4. 이전에 레코드를 표시하려면이 기준을 무엇입니까? id이 더 높으면 레코드가 최신 레코드입니까? 내 대답에 이것을 가정했습니다.

여기 mysqli_를 사용하여 코드의 개선 된 버전입니다 :

$link = mysqli_connect("localhost", "user", "pass", "db"); 

if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$q = "SELECT id, band, Title, description FROM rumours ORDER BY id DESC"; 
$result = mysqli_query($link, $q); 

while($row = mysqli_fetch_array($result, MYSQLI_BOTH)) { 
    echo "<table border='1'>"; 
    echo "<tr>"; 
    echo "<td>" . $row[id] . "</td>"; 
    echo "</tr>"; 
    echo "<tr>"; 
    echo "<td class = 'td1'>" . $row[description] . "</td>"; 
    echo "</tr>"; 
    echo "</table>"; 
} 

mysqli_free_result($result); 
관련 문제