-2

1)我有以下(包括)显示来自我的数据库(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>';
 }
4

1 回答 1

1

只需删除

$row = mysqli_fetch_array($result);

然后改变这两行

$id = $row["id"];
$title = $row["title"];

进入

$id = $row2["id"];
$title = $row2["title"];

并将两行都放在while语句之后。

现在,在您的代码中,display.php 将始终显示相同的代码,因为$id不会改变。

你的代码工作正常吗?mysqli_query 的第一个参数应该是$sqlCommand,而不是$myConnection

如果可以,尽量不要在 Mysql 上使用 root/empty_password。

希望能帮助到你,

于 2012-11-01T22:29:11.457 回答