简体   繁体   中英

MySQL fetch array not collecting and returning all the rows | PHP | MySQL

I have a function (see below)

public function ReadBets_Open($id) {
    $queryBase = "SELECT * FROM `vr_wp_bets` WHERE `is_open` = 'true' AND `id` = '%s';";
    $queryBase2 = sprintf($queryBase, $id);
    $selectQuery = mysql_query($queryBase2);
    $return = "<div style='max-height: 400px; overflow: scroll;'>";
    while ($result = mysql_fetch_array($selectQuery)) {
        //var_dump($result);
        $return = "<div style='border: 1pt solid black; width: 99%;'>";
        $return .= "<h2>" . $result['title'] . "</h2>";
        $return .= "<table>";

        $return .= "<tr><td style='width:50%;'>Sport: </td><td>" . $result['sport'] . "</td></tr>";
        $return .= "<tr><td style='width:50%'>Participant: </td><td>" . $result['participant'] . "</td></tr>";
        $return .= "<tr><td>Market: </td><td>" . $result['market'] . "</td></tr>";
        $return .= "<tr><td>Time: </td><td>" . date("H:i", strtotime($result['bettilltime'])) . "</td></tr>";
        $return .= "<tr><td>Odds: </td><td>" . $result['odds'] . "</td></tr>";
        $return .= "<tr><td>Stake: </td><td>&pound;" . $result['stake'] . "</td></tr>";

        if ($result['is_ew'] == "true") {
            $return .= "<tr><td>Each Way: </td><td>" . $this->CalculateEachWay($result['odds'], $result['ew_odds']) . "</td></tr>";
            $return .= "<tr><td>Estimated Return:</td><td>" . "N/A" ."</td></tr>";
        }
        else if ($result['odds'] == "SP") {
            $return .= "<tr><td>Estimated Return:</td><td>" . "N/A" ."</td></tr>";
        }
        else {
            $return .= "<tr><td>Estimated Return:</td><td>&pound;" . $result['estimated_return'] ."</td></tr>";
        }

        $return .= "</table>";
        $return .= "</div><br>";
    }
    $return .= "</div>";
    return $return;
}

And I know for a fact that there is 4 results in this that should be selected, however only one is returned by the fetch array, I was wondering if anyone can see an issue with this and if so what is it? This has had me stumped for a few days now and I really need an answer to this.

The way that I call the method is:

$classInstance->ReadBets_Open($current_user->ID);




NOTE
I am aware that I am using depreciated mysql_* functionality, this will be changed in the future, this needs to be made and released.

You are resetting $return each time you loop. So by the end of the loop $return will only have the last row's details.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM