2011-02-27 73 views
2
<?php 
$con = mysql_connect ("localhost", "user", "pass") 
    or die ('Error: ' . mysql_error()); 
mysql_select_db ("members"); 

if(isset($_GET['orderby'])){ 
$order = $_GET['orderby']; 
$result = "SELECT * FROM persons ORDER BY ".mysql_real_escape_string($order)." DESC"; 
} 
else{ 
$result = mysql_query("select * from persons"); 
} 

$num_rows = mysql_num_rows($result); 
$row_counter = 0; 

echo "<table width=600 border=0 cellspacing=0>\n"; 
echo "<tr>\n 
     <th>&nbsp;</th>\n 
     <th>First Name</th>\n 
     <th>Last Name</th>\n 
     <th>Email Address</th>\n 
     <th>City</th>\n 
     <th>State</th>\n 
     <th><a href='index.php?orderby=submitDate'>Date</a></th>\n 
     </tr>"; 

while($row = mysql_fetch_array($result)){ 
    if($row_counter % 2){ 
    $row_color="bgcolor='#FFFFFF'"; 
    } 
    else{ 
    $row_color="bgcolor='#F3F6F8'"; 
    } 
    echo "<tr ".$row_color.">"; 
    echo "<td class='id'>" . $row['id'] . "</td>\n"; 
    echo "<td>" . $row['firstName'] . "</td>\n"; 
    echo "<td>" . $row['lastName'] . "</td>\n"; 
    echo "<td>" . $row['email'] . "</td>\n"; 
    echo "<td>" . $row['city'] . "</td>\n"; 
    echo "<td>" . $row['state'] . "</td>\n"; 
    echo "<td>" . $row['submitDate'] . "</td>\n"; 
    echo "</tr>"; 
    $row_counter++; 
    } 
echo "</table>"; 

mysql_close($con); 
? 

>鏈接到PHP MYSQL排序表列

我只是想不通,爲什麼我的鏈接排序我的查詢是行不通的。有任何想法嗎?預先感謝!

+1

請注意,此代碼嚴重受SQL注入的困擾。 – 2011-02-27 08:40:45

回答

2

你的if else block是錯的。在一種情況下,$ result是另一個查詢,它是一個結果集。檢查下面的代碼..修正。

<?php 
$con = mysql_connect ("localhost", "user", "pass") 
    or die ('Error: ' . mysql_error()); 
mysql_select_db ("members"); 

if(isset($_GET['orderby'])){ 
$order = $_GET['orderby']; 
$sql = "SELECT * FROM persons ORDER BY ".mysql_real_escape_string($order)." DESC"; 
} 
else{ 
$sql = "select * from persons"; 
} 
$result = mysql_query($sql); 
$num_rows = mysql_num_rows($result); 
$row_counter = 0; 

echo "<table width=600 border=0 cellspacing=0>\n"; 
echo "<tr>\n 
     <th>&nbsp;</th>\n 
     <th>First Name</th>\n 
     <th>Last Name</th>\n 
     <th>Email Address</th>\n 
     <th>City</th>\n 
     <th>State</th>\n 
     <th><a href='index.php?orderby=submitDate'>Date</a></th>\n 
     </tr>"; 

while($row = mysql_fetch_array($result)){ 
    if($row_counter % 2){ 
    $row_color="bgcolor='#FFFFFF'"; 
    } 
    else{ 
    $row_color="bgcolor='#F3F6F8'"; 
    } 
    echo "<tr ".$row_color.">"; 
    echo "<td class='id'>" . $row['id'] . "</td>\n"; 
    echo "<td>" . $row['firstName'] . "</td>\n"; 
    echo "<td>" . $row['lastName'] . "</td>\n"; 
    echo "<td>" . $row['email'] . "</td>\n"; 
    echo "<td>" . $row['city'] . "</td>\n"; 
    echo "<td>" . $row['state'] . "</td>\n"; 
    echo "<td>" . $row['submitDate'] . "</td>\n"; 
    echo "</tr>"; 
    $row_counter++; 
    } 
echo "</table>"; 

mysql_close($con); 
?> 
+1

!!謝謝 !!我是一個初學者,你可以說:我很感激! – Jason 2011-02-27 07:50:26