2016-09-11 5 views
-1

My機能:なぜこの関数は終了した行を返しますか?

function fetchAllGames($limit=9, $page=1, $isEnded="") 
{ 
    global $mysqli,$db_table_prefix; 

    if($isEnded!=""){$myWhere="WHERE ended=".$isEnded." ";}else{$myWhere="";} 
    $offset=($page - 1) * $limit; 
    $stmt = $mysqli->prepare("SELECT 
     created_timestamp, 
     end_timestamp, 
     winner_userid, 
     ended, 
     name, 
     game_uniqID, 
     game_id, 
     img 
     FROM ".$db_table_prefix."game 
     ".$myWhere." 
     LIMIT ".$limit." 
     OFFSET ".$offset); 
    $stmt->execute(); 
    $stmt->bind_result($created_timestamp, $end_timestamp, $winner_userid, $ended, $name, $game_uniqID, $game_id, $gameImg); 
    while ($stmt->fetch()){ 
     $row[] = array('created_timestamp' => $created_timestamp, 'end_timestamp' => $end_timestamp, 'winner_userid' => $winner_userid, 'ended' => $ended, 'name' => $name, 'game_uniqID' => $game_uniqID, 'game_id' => $game_id, 'gameImg' => $gameImg); 
    } 
    $stmt->close(); 
    if (isset($row)){ 
     return ($row); 
    } 
} 

私は$allGames = fetchAllGames(9,1,0);でそれを呼び出す場合、それは0 =エンドと= 1を終了した行との両方の行を返し、私は$allGames = fetchAllGames(9,1,1);でそれを呼び出す場合、それはエンド= 1で行だけを返します。 。私はなぜかどちらも理解できない。何か不足していますか?それでも

+0

キャストの後に0 = ""あり、それは 'else {$ myWhere =" "";} 'を選択します – Drew

+0

ちょっと分かりますか? –

+0

論理的には、いいえ。しかし、あなたのコードではそうであるようです。 0を渡すと '$ myWhere'を退職できますか? – Drew

答えて

-1

それはそれをやっている理由を確認してください、私はちょうど場合に変更することで、それを固定されていません:

$myWhere = ""; 
    if($isEnded=="active"){$myWhere="WHERE ended=0";}elseif($isEnded=="ended"){$myWhere="WHERE ended=1";} 

をそして

$allGames = fetchAllGames(9,1,"active"); 

それとも

$allGames = fetchAllGames(9,1,"ended"); 

かによって、それを呼び出しますそれらのすべてのためにそれを空にしておく。

関連する問題