(HTML tablo görünümünde link yoluyla) sütun_ismi yardım ORDER BY (PHP MySQL

2 Cevap php

HTML benim masaya benim çıkışı gibi adınız, isim, yaş, dob gibi çeşitli sütunlar vardır.

Tablo başlığı ben bu bir bağlantı olmak istiyorum, sadece sütun adının başlığıdır ve tıklandığında, seçilen sütun AZALAN (sonraki tıklama) sonra sipariş, ASC sıralanır, ve. Ben bu ileriye oldukça düz olduğunu düşündüm ama biraz zorluk yaşıyorum.

Şimdiye kadar, ben bu üretilen ve hiçbir çıkış alınır, ayrı URL'den 'users.php? Orderby = kimliği' görüntüleyerek çalışır

<?php
          if(isset($_GET['orderby'])){ 
$orderby = $_GET['orderby']; 
$query_sv = "SELECT * FROM users BY ".mysql_real_escape_string($orderby)." ASC"; 
} 
//default query 
else{ 
$query_sv = "SELECT * FROM users BY user_id DESC"; 
} 
?>


              <tr>
                <th><a href="<?php echo $_SERVER['php_SELF']."?orderby=userid";?>">User ID</a></th>

Ben bu çalışma almak Hoefully eğer, ben DOB tarafından kullanıcılara sıralayabilirsiniz ileri Ayrıca aynı prensipleri kullanılmıştır. Herkes herhangi bir fikir var mı?

2 Cevap

Bu SELECT * FROM users ORDER BY ... yerine SELECT * FROM users BY ... olmalıdır. Ayrıca aksi takdirde sorgu başarısız olur, geçirilen parametre geçerli bir sütun adı olup olmadığını kontrol etmek isteyebilirsiniz.

Bir yönü eklemek için daha karmaşık olacaktır.

Önce bir koşullu parametreyi yapmak gerekir.

if (empty($_GET['asc'])) {
  $orderby.=" DESC"; 
  $dir="&asc=1";
} else {
  $orderby.=" ASC"; 
  $dir="";
}

Şimdi sorguya $ orderby koymak ve bağlantı içine $ dir:

<a href="?orderby=userid<?php echo $dir?>">