1

コードをmysqlからmysqliに変更しようとしていますが、このコードを変更するのに問題があります。

while($sqlrow = mysql_fetch_array($sqlresult)) 
{ 
     $room = $sqlrow['Room']; 
     $roomHTML .= "<option value='".$room."'>" . $room . "</option>".PHP_EOL;  
} 


echo $roomHTML; 

以下のmysqliコードに変数$sqlrowがありません。行$room = $sqlrow['Room'];を以下に変更するにはどうすればよいですか?

完全なコード:

    $building = isset($_POST['building']) ? $_POST['building'] : ''; 

  $sql = "SELECT Room FROM Room WHERE Building = ?"; 

 $sqlstmt=$mysqli->prepare($sql);

 $sqlstmt->bind_param("s",$building);


     $sqlstmt->execute(); 

     $sqlstmt->bind_result($dbRoom);


    $roomHTML  = "";  

     while($sqlstmt->fetch()) { 
         $room = $sqlrow['Room']; 
         $roomHTML .= "<option value='".$room."'>" . $room . "</option>".PHP_EOL;  
    } 


    echo $roomHTML; 

     $sqlstmt->execute(); 

上記のコードは、所属する建物に一致するドロップダウンメニューにすべての部屋を表示しようとしています。

ありがとう

4

1 に答える 1

0

バインドされた結果 var を使用していません$dbRoom

// Your output value of interest is $dbRoom as you have bound here:
$sqlstmt->bind_result($dbRoom);
$roomHTML  = "";  

 while($sqlstmt->fetch()) { 
     // $dbRoom holds the value fetched from the result set, since that is what you bound above.
     // Note: added htmlentities() to encode quotes if there are any embedded in the room value.
     $roomHTML .= "<option value='". htmlentities($dbRoom, ENT_QUOTES) ."'>" . htmlspecialchars($dbRoom) . "</option>".PHP_EOL;  
} 
于 2012-10-25T16:06:26.970 に答える