2016-10-16 21 views
0

この質問はかなり面白いと思う。タイトルが示すように、私は動的なselectフィールドを作成しようとしています。基本的には、時間が来ると私のWebアプリケーションは私のデータベースに接続し、私のクエリに一致する行全体をプルします。私の質問は次のとおりです。selectタグ内のINDIVIDUALオプションとして、列内の列の1つからデータを表示するにはどうすればよいですか? Cannot use object of type mysqli_result as array 修正するために、かなりまっすぐ進むべきであるが、私はちょうどこれに回避策を把握することはできません。列全体からデータを選択し、選択タグに別の選択肢として表示する方法。

<select> 
    <?php 
     $servername = "127.0.0.1"; 
     $username = "root"; 
     $password = ""; 
     $dbname = "people"; 
     $conn = new mysqli($servername, $username, $password, $dbname); 
     if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
     }else{ 
      $search_query = "SELECT * FROM people_list WHERE person_id = $_SESSION[person_id]"; 
      $result = $conn->query($search_query); 
      while($person_result_list = mysqli_fetch_assoc($result)){ 
      echo " 

      <option value='$result[person_result_list]'>'$result[person_name]', '$result[person_result_list]'</option> 

      "; 



      } 

     } 

    ?> 
    </select> 

これはエラーを返して:これは私が今しようとしていますものです。何か案は?

ありがとうございます!

答えて

0

クエリではGROUP_CONCATを使用できます。コンマで区切られたターゲット列の値の文字列だけが返されます。次に、この文字列を分割して、選択ドロップダウンに使用する配列にすることができます。

1
ので、この文のだ

Cannot use object of type mysqli_result as array

<option value='$result[person_result_list]'>'$result[person_name]', '$result[person_result_list]'</option> 
       ^^^^^^^      ^^^^^^^     ^^^^^^^ 

$resultMySQLi結果オブジェクトではなく、配列です。

My question is this: How can I present the data from ONE of the columns within the row as INDIVIDUAL options within the select tag?

単に結果セット行を取得し、このように、<option>素子内の各個々の列の値を表示するforeachループを使用:

// your code 

$search_query = "SELECT * FROM people_list WHERE person_id = $_SESSION[person_id]"; 
$result = $conn->query($search_query); 
$person_result_list = mysqli_fetch_assoc($result) 
foreach($person_result_list as $value){ 
    echo '<option value="' . $value . '">' . $value . '</option>' 
} 

// your code 
関連する問題