2012-11-12 6 views
-3

DB에서 5 개의 임의 레코드를 가져 와서 표시하는 php/mysql 스크립트를 작성하려고합니다. 지금은 다음 레코드를 하나씩 꺼내 모듈에 표시하는 방법을 사용하고 있지만 한 번에 5를 꺼내는 방법을 모르겠습니다. 총 DB에 약 200-300 개의 레코드가 있습니다.mysql 데이터베이스에서 임의의 레코드 5 개를 당겨

나는 현재 무작위로 하나의 레코드를 꺼내하려면 다음 코드를 사용하고 있습니다 :

<?php 
$result = mysql_query("SELECT * FROM `zgjzb_chronoforms_data_submitbusiness` ORDER BY  RAND() LIMIT 0,4;"); 
$row = mysql_fetch_array($result); 
?> 
+7

'제한 5'. mysql_ *을 사용하지 말고 큰 테이블에서'ORDER BY RAND'를 사용하지 마십시오 –

+0

while 루프를 사용하면 [PHP 매뉴얼] (http://php.net/)에 나와있는 많은 예제에서 명확하게 볼 수 있습니다. mysql_fetch_array) – Jocelyn

+1

복제본 : http://stackoverflow.com/questions/9945691/doing-a-while-loop-to-get-10-random-results –

답변

9

당신은 ORDER BY RAND()를 사용하지 않습니다. MySQL은 임시 테이블을 생성해야한다. 테이블이 고유 ID 열이있는 경우,이 같은 훨씬 더 :

SELECT * FROM `zgjzb_chronoforms_data_submitbusiness` 
WHERE id >= (SELECT FLOOR(MAX(id) * RAND()) FROM `table`) 
ORDER BY id LIMIT 1; 

는 PHP에서 잘 작동 다른 방법에 대한 this blog post를 참조하십시오.

+4

마침내 괜찮은 대답. 감사합니다. – PeeHaa

+0

감사합니다. 이것은 5 개의 레코드를 가져 오나요? 아니면 LIMIT를 5로 변경합니까? –

+0

Noice 대답 ... –

관련 문제