안녕하세요, 저는 데이터베이스에서 5 개의 임의의 행을 가져 와서 표시하려고합니다. 나는 현재 이렇게하지만 중복 결과가 발생합니다.PHP mysql 임의의 행이 중복되지 않습니다.
한계를 5로 변경 한 다음 배열에 저장해야하지만 어떻게해야합니까? 또는 더 좋은 방법이 있습니까?
function GetPlayer($link){
if (isset($_SESSION['username'])) {
$x = 0;
while($x <= 5) {
$sql = "SELECT * FROM userstats ORDER BY RAND() LIMIT 1; ";
$result = mysqli_query($link,$sql);
$row = mysqli_fetch_assoc($result);
if($row['username'] !== $_SESSION['username']){//add so it dosent put duplicates
echo ("<tr>");
echo ("<th>".$row['username']." </th>");
echo ("<th>Level: ".$row['Level']." </th>");
echo ("<th>Player Stats:".$row['Attack']."/".$row['Defence']." </th>");
echo ("<th>Win Chance: ");
echo CalculateWinChance($link,$row['Defence']);
echo ("<th><input type ='submit' name = 'Attack_Btn' value ='Attack'></th>");
echo ("</tr>");
$x++;
}
}
}
}
사용 DISTINCT 및/또는 GROUP BY . –
'ORDER BY RAND() LIMIT 5; '가 가장 좋은 방법입니다. – CatalinB
나는 여기있는 동안 다른 질문을 할 수 있습니다. 제출 버튼을 각 행마다 고유하게 만드는 방법은 무엇입니까? 그래서 내가 변수를 전달하는 데 사용할 수 있습니다 – GregHBushnell