2012-01-04 8 views
0

私は通常PHP/MySQLでコードを作成しますが、このプロジェクトではMSSQLを使用する必要があります。PHP mssqlクエリの開始と制限付き - クエリの問題への追加

以下のロジックはMySQLでは動作しますが、MSSQL設定では制限がはるかに複雑なクエリであるため、クエリに追加するときに問題が発生します。私はそれをどうしようとしているのか把握しようとしていますが、それを働かせることはできません。助けてください。

//get all products for shopkeeper 
    if($limit == 0) { 
     $prod_qry = "SELECT id, productName FROM products WITH(NOLOCK) WHERE shopkeeper = '$this->shopkeeper'"; 
    } 
    if($limit > 0) { 
     $prod_qry = "SELECT * FROM (SELECT id, productName, ROW_NUMBER() OVER (ORDER BY id) as row FROM products WITH(NOLOCK) WHERE shopkeeper='$this->shopkeeper' ) a WHERE row > $start and row <= $limit"; 
    } 
    if($hidden == 1) { 
     $prod_qry .= " AND Hidden !='1'"; 
    } 

    if($rating != 0) { 
     $prod_qry .= " AND rating > '$rating'"; 
    } 

* EDIT * アイブ氏は、以下の改正コードそれを考え出した:

$prod_qry = "SELECT * FROM (SELECT id, productName, ROW_NUMBER() OVER (ORDER BY id) as row FROM products WITH(NOLOCK) WHERE shopkeeper='$this->shopkeeper'" ; 

    if($hidden == 1) { 
     $prod_qry .= " AND Hidden !='1'"; 
    } 

    if($rating != 0) { 
     $prod_qry .= " AND rating > '$rating'"; 
    }  

    $prod_qry .= ") a ";  

    if($limit > 0) { 
     $prod_qry .= " WHERE row > $start and row <= $limit"; 
    } 
+0

"ただし、動作させることはできません。"あなたはもっと具体的になりますか?エラーメッセージとは何ですか? –

+0

実行前にクエリを出力すると、それはどのように見えますか?それは正しく形成されていますか? – ManseUK

+0

これは問題です、私はそれを正しく形成する方法を知らない、私はMSSQLに慣れていません。 – LeeTee

答えて

0

を私は答えを持つ上記の質問を編集しました。

関連する問題