2011-08-17 6 views
6

に、私は私のMySQLデータベースからデータを取得するために、この行を使用します。

$query = "SET @rank=0; SELECT @rank:[email protected] +1 as rank, Blah Blah..."; 

私はそれが正常に動作します(= $クエリなし)のphpMyAdminのSQLウィンドウでSELECT文を確認してください。

しかし、PHPで使用するとエラーが発生します。それは "SET @ランク= 0;"が好きではありませんビット。 "SET @ rank = 0;"を使用する方法はありますか?それが "$ query ="にあるとき?回避策はありますか?

public function getmyData() { 


$mysql = mysql_connect(connection stuff); 

$query = "SELECT @rank:[email protected] +1 as rank, formatted_school_name, blah blah"; 

$result = mysql_query($query); 

      $ret = array(); 
       while ($row = mysql_fetch_object($result)) { 
        $tmp = new VOmyData1(); 
        $tmp->stuff1 = $row-> stuff1; 
        $tmp->stuff2 = $row->stuff2; 

        $ret[] = $tmp; 
         } 
       mysql_free_result($result); 

       return $ret; 

    } 

更新:

コードの残りの部分は、DBからデータを引っ張るための標準的なものである私は、マルチクエリを使用してのAmerbの提案を使用しようとしています。私はそうのようなクエリを連結:

$query = "SET @rank = 0"; 

$query .= "SELECT @rank:[email protected] +1 as rank... 

私は結果を変更:

$result = $mysqli_multi_query($query); 

しかし、それはいくつかの理由で失敗しています。私はPHP 5.2を実行しているマシンです。助言がありますか?

+1

"クエリ"を実行するためにどのようなコードを使用していますか?実際には2つのクエリ(SELECTの前にセミコロンがあることに注意してください)とPHP MySQLバインディングの少なくともいくつかは、同じ呼び出しで複数のクエリを期待しません。 – Amber

+0

@Amber、こんにちはAmberさん、メッセージに感謝します。私はいくつかのコードを追加しました。これは、dbからデータを引き出すための通常のコードです。私はあなたのポイントを見ます ";"。その問題を回避する方法はありますか?ありがとうございました。 – Laxmidi

+0

http://php.net/manual/en/mysqli.multi-query.php – Amber

答えて

6

This guy hereは、同じクエリの変数をゼロに設定する方法があるようです。私は、MySQLをこのマシンで試してみることはできません。ここで

は、彼が彼のブログの記事で示唆クエリがあります:?

select @rownum:[email protected]+1 ‘rank’, p.* from player p, (SELECT @rownum:=0) r order by score desc limit 10; 

は(どこかのコンピューティングのランクに関係することにより、今後、いくつかの宿題これは、私が2で、この上で見てきた3番目の質問がありです日)

重複スコアを確認していますか?

+0

こんにちは@Marvo、ありがとうございました。それが私の問題を解決しました。私は得点をランク付けしています...私はまだ若い、勉強していた学生だったことを願っています。助けてくれてありがとう。 – Laxmidi

2

複数のクエリを1つで有効にする必要がありますが、現時点でどうしているのか忘れています。それはセキュリティ機能です。

1

2つの連続したクエリとして実行してみてください。

関連する問題