Bugüne ORDER BY de bir MySQL sorguda SINIRI kullanırken - PHP

2 Cevap php

, HI

Ben oldukça bu anlamaya olamaz, ben kronolojik-ters ve sayfa başına dört (ve sayfaları düzenlemek için sayfalandırma kullanarak) sonuçlarını sınırlandırmak bunları sipariş, MySQL kayıtları çekmeye çalışıyorum. O anda bu hata veriyor:

Ölümcül hata: satır 126 / Users/allan/Sites/4is_site/casestudylist.php SQL

$limit = 'LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = "SELECT * FROM studies  ORDER BY date desc WHERE niche = '{$_GET['niche']}' $limit";

Pagination şimdi ben BY ORDER eklemek için denedim ben sorunları alıyorum, iyi çalışıyor olmuştur.

2 Cevap

Bu sözdizimi yanlış. Bu çalışması gerekir.

$escapedNiche = mysql_real_escape_string($_GET['niche']);
$query = "SELECT * FROM studies WHERE niche = '$escapedNiche' ".
         "ORDER BY date DESC $limit";

Gelecekte başvurmak için - SELECT Syntax

BTW $ _GET ['niş'] kaçmak için:

$clean_niche = mysql_escape_string($_GET['niche']);
$limit = 'LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = "SELECT * FROM studies  "
        ."WHERE niche = '{$clean_niche}' "
        ."ORDER BY date desc $limit";

Bu $ _GET ['niş'] karakterleri kaçan SQL injection saldırılarına karşı korumaya yardımcı olacaktır.

Ekstra güvenlik için, veritabanına erişmek için Zend DB gibi bağlı parametreleri (google'em) ve / veya kütüphane fonksiyonlarını kullanarak düşünün.