我目前正在开发一个php函数,但我有点麻烦。
目前我在php页面上使用了一个函数,如下所示:
get_Properties($currUser);
反过来,转到第二个执行此操作的php文件:
function get_Properties($currUser) {
$mysql = New Mysql();
return $mysql->get_Properties($currUser);
}
最后但并非最不重要的是,这带来了我正在研究的功能:
function get_Properties($currUser) {
//new instance of mysqli
$mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME);
//if it doesn't work give an error
if (!$mysqli) {
die('There was a problem connecting to the database.');
}
$queryProperties ="SELECT Id, Agent, MainImage, Address, Bedrooms, Baths, Price
FROM Properties
WHERE Agent = '$currUser'
ORDER BY Id DESC";
if ($Results = $mysqli->query($queryProperties)){
if (!$Results) {
echo 'Could not run query: ' . mysql_error();
exit;
}
else{
$Results = $mysqli->query($queryProperties);
}
while ($rows = $Results->fetch_assoc()) {
echo '<div class="product clearfix">';
echo '<div class="l-image">';
echo '<img src="'.$rows['MainImage'].'" alt="'.$rows['Agent'].'" title="'.$rows['Agent'].'" />';
echo '<div class="l-image-hover">';
echo '<a href="#" class="l-lupa"><!-- --></a>';
echo '<a href="#" class="l-link"><!-- --></a>';
echo '</div>';
echo ' </div>';
echo '<div class="l-shadow"><!-- --></div>';
echo '<div class="l-title"><a href="property-details.php">'.$rows['Address'].'</a></div>';
echo '<div class="l-features clearfix">';
echo '<div class="l-bedrooms">'.$rows['Bedrooms'].' Bedrooms</div>';
echo '<div class="l-baths">'.$rows['Baths'].' Bathrooms</div>';
echo '</div>';
echo '<div class="l-details clearfix">';
echo '<div class="l-price">£'.$rows['Price'].' PCM</div>';
echo '<div class="l-view"><a href="property-details.php?PropertyId='.$rows['Id'].'">View details</a></div>';
echo '</div>';
echo '</div>';
}
}
$mysqli->close();
}
}
现在我遇到的问题是,并不总是会有回应的东西。有时$ rows变量将不返回任何内容(该特定用户没有条目)。
问题是。我如何说“如果没有返回任何行,显然没有该用户的数据,所以返回一个像$ userHasNoData = 1的变量。或类似的东西。所以在主页上我可以说”if(isset) ($ userHasNoData)){echo“没有数据!”; }
哦,当我还在学习的时候,请完全自由地批评我的代码以任何方式帮助我改进:)谢谢你们!
答案 0 :(得分:1)
扩展shannonoman的答案,您可以在执行while语句之前添加num_rows
调用作为检查:
if ($result->num_rows == 0) {
echo 'Sorry, no data!';
} else {
while ($rows = $Results->fetch_assoc()) {
// output stuff
}
}
作为进一步改进代码的机会,我还想指出,当你能够做一次时,你正在调用$mysqli->query
两次:
if ($Results = $mysqli->query($queryProperties)) {
if ($result->num_rows == 0) {
echo 'Sorry, no data!';
} else {
while ($rows = $Results->fetch_assoc()) {
// output stuff
}
}
} else {
echo 'Could not run query: ' . $mysqli->error; // not mysql_error!
exit;
}
答案 1 :(得分:0)
您可以使用以下命令检查返回的行数:
$num_rows = $Results->num_rows;
因此,请检查是否为零并采取您需要的任何操作。