2013-05-12 2 views
-1

를 가져 반환 다음Array_Rand은 항상 같은 값을 PHP 나는이 기능이 배열을

function set_spell() { 
global $connection; 
$query = "SELECT * FROM Spells"; 
$result_set = mysqli_query($connection, $query); 
$spell_id_list = mysqli_fetch_array($result_set); 
return $spell_id_list; 

내가 출력 배열에서 임의의 ID를 시도,하지만 난 항상 ID 얻을 1.

$spell_id_list = set_spell(); 
echo $spell_id_list[array_rand($spell_id_list)]; 

때 MYSQL에서이 쿼리를 실행하면 모든 ID가 예상대로 나열됩니다. 왜 위의 코드는 임의로 하나를 선택하지 않습니까?

이것은 대답을 본 후에 나 자신을 때리게 될 것 같은 어리석은 질문 일 것이다. 그러나 나는 내가 그것에 있어야한다고 생각하는 것보다 오랫동안 붙어있다.

도움 주셔서 감사합니다. 같은 반환하거나 쿼리에 rand()에 의해 순서를 사용 & 모든 가져온 결과의 배열을 생성하거나 있도록

+0

? 무작위 결과 또는 하나의 무작위 값 배열? – Rikesh

+0

'global'을 사용하지 말고 대신'connection'을 매개 변수로 전달하십시오 –

+0

잠시 지났지 만 * _fetch_row 하나의 결과 만 얻지는 않았습니까? 그래서 $ spell_id_list는 set_spell이 리턴되었을 때 item에 대해서만 가지고 있지 않습니까? – BrianHall

답변

2

당신은, 당신의 함수에서 단 하나의 결과를 반환 당신이 무엇을 달성하고자하는

SELECT * FROM Spells ORDER BY RAND(); 
+0

Yeh는 원래 MYSQL 문에서 ORDER BY RAND()를 사용했지만 완전히 무작위 적이거나 좋은 습관은 아니라고 들었습니다. 가져온 결과가 모두있는 배열을 어떻게 만들 수 있습니까? 위의 설명에서 말했듯이 msqli_fetch_array를 사용했지만 여전히 동일한 결과를 얻었습니까? –

+0

'mysqli_fetch_array'를 반복하면 & 결과 배열이 생성됩니다. – Rikesh

관련 문제