0

我目前正在研究一个 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。或者类似的东西。所以在主页上我可以说“如果(isset ($userHasNoData)) { echo "没有数据!"; }

哦,因为我还在学习,请随时以任何方式批评我的代码以帮助我改进:) 谢谢你们!

4

2 回答 2

1

扩展 shannonoman 的答案,您可以num_rows在执行 while 语句之前添加调用作为检查:

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;
}
于 2013-01-21T00:57:59.797 回答
0

您可以使用以下命令检查返回的行数:

$num_rows = $Results->num_rows;

所以检查为零并采取任何你需要的行动。

于 2013-01-20T11:46:19.913 回答