1) 데이터베이스 (phprealty_propert + phprealty_prop_img)가 두 개인 테이블을 사용하여 db (phprealty)의 임의의 레코드를 표시하려면 아래를 포함하십시오. 코드는 문제없이 작동합니다. 그러나 한도를 3으로 설정하면 2 레코드가 생기므로 한계를 4로 설정하여 3 레코드를 얻습니다. 나는 그것을 그대로 두어야합니까?PHP * RAND() LIMIT x, y
2) PHP에 익숙하지 않으므로이 코드가 취약하기 때문에 어떤 종류의 보호가 필요하다고 생각하십니까? 그렇다면 PHP를 사용하여 데이터를 표시 할 때 웹 페이지를 보호하기 위해해야 할 일을 알려주십시오.
미리 감사드립니다.
<?php
$pid = 3;
$myConnection = new mysqli("localhost", "root", "", "phprealty");
$sqlCommand = "SELECT phprealty_property.*, phprealty_prop_img.p_id, phprealty_prop_img.fn FROM phprealty_property INNER JOIN phprealty_prop_img ON phprealty_property.id = phprealty_prop_img.p_id WHERE phprealty_prop_img.def='1' AND phprealty_property.type = $pid";
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error());
$sqlCommand .= " ORDER BY RAND() LIMIT 0,4";
$result = mysqli_query($myConnection, $sqlCommand);
$Displayproperty = '';
$row = mysqli_fetch_array($result);
$id = $row["id"];
$title = $row["title"];
while ($row2 = mysqli_fetch_array($result)){
$img = $row2["fn"];
$thumb = 'th_' . $img;
$Displayproperty .= '
<div class="random">
<a href="display.php?id=' . $id . '"><img src="../falcon/listImgs/' . $thumb . '" /> </a></div>';
}
당신이 4 개 행을 반환하는, 희망은 도움이되지만 첫 번째 행은 $ 행 변수에 사용되며, 나머지는 $의 ROW2 변수에 사용됩니다. ORDER BY RAND()는 매우 비효율적 인 연산이기 때문에 절대적으로 필요한 경우가 아니면 일반적으로 피해야합니다. – CodePB
답장을 보내 주셔서 감사합니다. 하지만 6으로 제한하면 6이됩니다. – Omar
어쩌면 내가 누락 된 부분이있을 수 있습니다. LIMIT 0,4는 4 개의 행을 반환해야합니다. – CodePB