2011-08-17 2 views
6

, 내 MySQL 데이터베이스에서 데이터를 가져 오는이 줄을 사용 :

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

나는 그것이 잘 작동 (= $ 쿼리없이)에 phpMyAdmin의 SQL 창에서 SELECT 문을 확인하세요.

하지만 PHP에서 사용하면 오류가 발생합니다. 그것은 "SET @ rank = 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에서 데이터를 끌어 표준 물건 I 멀티 쿼리를 사용 Amerb의 제안을 사용하려고 해요. 나는 쿼리과 같이 연결된 : 어떤 이유로 실패하는 것,

$result = $mysqli_multi_query($query); 

그러나 :

$query = "SET @rank = 0"; 

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

나는 결과로 변경. 나는 PHP 5.2를 실행중인 컴퓨터에있다. 어떤 제안?

+1

"쿼리"를 실행하기 위해 어떤 코드를 사용하고 있습니까? 그것은 실제로 두 개의 쿼리입니다 (SELECT 전에 세미콜론을 주목하십시오). PHP MySQL 바인딩 중 적어도 일부는 동일한 호출에서 여러 쿼리를 기대하지 않습니다. – Amber

+0

@Amber, 안녕 앰버는 메시지를 보내 주셔서 감사합니다. 나는 더 많은 코드를 추가했다. db에서 데이터를 가져 오는 일반적인 코드입니다. 나는 ";"에 관한 당신의 요지를 본다. 이 문제를 해결할 수있는 방법이 있습니까? 고맙습니다. – Laxmidi

+0

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

답변

6

This guy here 같은 쿼리의 변수를 0으로 설정하는 방법이있는 것처럼 보입니다. 하지만이 머신에서 MySQL을 사용해 보려고하지는 않습니다. 여기

그는 자신의 블로그 게시물에 제안 쿼리의 :

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

가 (때문에 어딘가 컴퓨팅 순위로 할 필요가 오는 몇 가지 숙제가 있습니까 이것은 내가 두이에서 본 세 번째 질문은 일)

중복 점수가 맞습니까?

+0

안녕하세요 @ Marvo, 링크 주셔서 감사합니다. 그게 내 문제를 해결해 줬어. 나는 점수를 매겼다. 나는 아직도 젊고 박력있는 학생 이었으면 좋겠다. 도와 주셔서 감사합니다. – Laxmidi

2

하나의 쿼리를 여러 개 사용할 수 있도록 설정해야하지만, 지금은 어떻게해야할까요? 그것은 보안 기능입니다.

1

두 개의 연속 된 쿼리로 실행 해보십시오.

관련 문제