1)我有以下(include)来显示我的db(phprealty)中的随机记录和两个联合表(phprealty_propert + phprealty_prop_img)。代码工作没有任何问题。但是,当我将限制设置为3时,我得到2条记录,这就是为什么我将限制设置为4所以我得到3条记录。我可以保留原样吗?
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>';
}
答案 0 :(得分:1)
删除
$row = mysqli_fetch_array($result);
然后更改这两行
$id = $row["id"];
$title = $row["title"];
到
$id = $row2["id"];
$title = $row2["title"];
并在之后将两行放在语句中。
在您的代码中,display.php将始终显示相同的代码,因为 $ id 不会更改。
您的代码是否正常运行? mysqli_query上的第一个参数应该是 $ sqlCommand ,而不是 $ myConnection 。
如果可以的话,尽量不要在Mysql上使用root / empty_password。
希望它有所帮助,