2012-11-22 3 views
0

ORDER BY rand()를 사용하여 PHP 웹 사이트의 MySQL 테이블에서 가져온 데이터를 무작위로 추출하려고했습니다. 하지만 문제는 다음 페이지로 이동 한 후 1 페이지의 일부 데이터가 2 페이지에 표시된다는 것입니다. 나는 랜덤 화의 PHP 버전을 찾기 위해 웹 검색을 시도했다. 그러나 나는 그것을 발견 할 수 없다. 누구든지이 문제에서 저를 도울 수 있습니까? 고마워요. DPHP를 사용하여 무작위 화

+1

코드 내용 – MLeFevre

답변

0

매번 난수를 계산하면 다른 페이지에서도 같은 값을 갖게 될 것입니다. 난수를 한 번 가져 와서 다른 사이트로 전달해야합니다 (예 : HTTP-Get 당.

일부 코드로 누군가가 당신을 더 도울 수 있습니다;).

0

페이징을 만들기 위해 쿼리에 LIMIT x,y을 사용한다고 가정합니다.

$seed = isset($_SESSION['seed'])? $_SESSION['seed'] : mt_rand(); 
$_SESSION['seed'] = $seed; 
$qry = "SELECT * FROM `table` ORDER BY RAND($seed) LIMIT 0,5"; 
0

왜 당신이 임의의 데이터에 페이지 매김을 할 것입니다 : 그래서, 하나의 가능한 솔루션

예를 들어 당신의 ORDER BYSEED를 사용하고 SESSION 또는 GET를 통해 그것을 전달하는 것입니다?

하지만 여전히 원하는 경우 POST 요청을 사용하여 페이지간에 이동할 수 있습니다. 그러나 이것은 여전히 ​​쓸모없는 것이다.

0

PHP에서 shuffle()과 같은 기능을 찾고있는 것으로 보입니다. 반환 된 데이터를 배열에 저장하고 셔플 (배열)을 사용합니다.

1

SQL-rand()를 사용하여 여전히 수행 할 수 있습니다.

rand()를 호출하는 대신 동일한 시드로 시드를 호출하십시오. 임의로 PHP에서 그 씨앗을 생성합니다.

예를 들어, ORDER BY rand(5)은 항상 동일한 순서를 반환합니다.

다른 페이지를로드하기 위해 Ajax 호출을 사용하는 경우 모든 호출마다 동일한 시드를 제출하십시오. 모든 페이지 스위치에서 페이지가 다시로드되는 경우 GET/POST를 사용하여 그대로 유지할 수 있습니다.

관련 문제