2013-10-14 5 views
1

Я запускаю мобильное приложение, которое использует PHP для извлечения данных с веб-сервера.PHP возвращает нулевые значения, когда существуют данные

Когда я запускаю инструкцию SQL в запросе sql, он возвращает правильные данные.

при запуске PHP он возвращает нулевые значения для элемента на месте 0 в gameArray, все остальные элементы в массиве показывают правильные значения

код выглядит следующим образом

$userResponse = array(
      'login' => $userName, 
      'nickname' => $userNickName); 

$stmt = $conn->gamedb->prepare("SELECT player1, player2, currentturn, question1, question2, question3, question4, question5, question6, question7, question8, question9 FROM Game WHERE Player1 = ? OR Player2 = ?"); 
$stmt->bind_param('ss', $userName, $userName); 
$stmt->execute(); 
$result = $stmt->store_result(); 

//create games array to be filled when stepping through the games 
$gameResponse = array(); 

if($conn->gamedb->affected_rows > 0) 
{ 
    while ($stmt->fetch()) 
    { 
     $stmt->bind_result($player1, $player2, $currentTurn, 
          $question1, $question2, $question3, 
          $question4, $question5, $question6, 
          $question7, $question8, $question9); 

     $gameArray = array($player1, $player2, $currentTurn, 
          $question1, $question2, $question3, 
          $question4, $question5, $question6, 
          $question7, $question8, $question9); 


     //stores the game data into an array 
     $gameResponse[] = $gameArray; 
    } 

    //close stmt 
    $stmt->close(); 
} 

$response = array(
      $userResponse, 
      $gameResponse 
      ); 

echo json_encode($response); 

любой помощь была бы потрясающей!

+0

Я бы не заморачиваться с проверкой 'affected_rows' – Phil

ответ

0

Чтение страницы руководства для mysqli_stmt::fetch, это ясно заявляет

Обратите внимание, что все столбцы должны быть связаны приложением перед вызовом mysqli_stmt_fetch().

Попробуйте вместо ...

$gameResponse = array(); 

$stmt->bind_result($player1, $player2, $currentTurn, 
        $question1, $question2, $question3, 
        $question4, $question5, $question6, 
        $question7, $question8, $question9); 

while ($stmt->fetch()) { 
    $gameResponse[] = array($player1, $player2, $currentTurn, 
          $question1, $question2, $question3, 
          $question4, $question5, $question6, 
          $question7, $question8, $question9); 
} 
1

Могу я предложить вам попробовать что-то немного проще?

while($row = $result->fetch_assoc()) { 
    $gameResponse[] = $row; 
} 

Таким образом, вам не нужно проходить все колебания присвоения переменных и т. Д. PHP сделает это за вас.

Смежные вопросы