2016-10-15 1 views
0

私は現在phpと学習に新しいですが、少しのテストをした後、whileを2回使用することはできませんが、正確にリセットする方法がわかりません。
一部のシナリオでは人々がreset($variable)を使用していますが、それは私のケースではうまくいかないようです。
重要な場合は、mysqliを使用してドロップダウンメニューを選択して返します。最初のものは機能しますが、もう1つは機能しません。PHPを2回使用しています

<?php 
        echo '<select>'; 
        while(list($stateID, $stateName) = $result->fetch_row()) 
        { 
       echo '<option value="$stateName">'; 
       echo "$stateName"; 
       echo '</option>'; 
        } 
        echo '</select>'; 
        ?> 
       <br> 
       <br> 
       To: &nbsp; &nbsp; 
      <?php 
       echo '<select>'; 
        while(list($stateID, $stateName) = $result2->fetch_row()) 
        { 
       echo '<option value="$stateName">'; 
       echo "$stateName"; 
       echo '</option>'; 
        } 
      echo '</select>'; 
        ?> 

さらに、必要な場合は、mysqlの検索結果がここにあります。

<?php 
include 'connect.php'; 
$query = "SELECT * FROM LOCATION"; 
$result = $mysqli->query($query, MYSQLI_STORE_RESULT); 
$result2 = $mysqli->query($query, MYSQLI_STORE_RESULT); 
if(!$result) { 
    echo($mysqli->error); 
    exit(); 
} 
?> 

私は結果を1と2との2つの変数を作成したところ、このメソッドは動作しますが、私は繰り返し同じコードを再利用する必要がある場合、私は、これは特にイベントで、行くための正しい方法ではない感じがありますがそしてもう一度。

答えて

0

whileステートメントで何をしているのかは、データベースから取得した行のリストを調べています。リスト上で2回繰り返すことはできません。*なので、何か違うことを試すことができます。を一度繰り返し、再利用できるように結果を保存します。私はここでやったすべての行のリストの上に反復して変数にデータを保存する

$data = []; 
while(list($stateID, $stateName) = $result->fetch_row()) 
{ 
    $data[] = [ 'stateID' => $stateID, 'stateName' => $stateName ]; 
} 

:たとえば:あなたはデータベースを照会した後

はこれを行います。

echo '<select>'; 
foreach ($data as $d) { 
    echo '<option value="'.$d['stateName'].'">"; 
    echo $d['stateName']; 
    echo '</option>'; 
} 

をし、データを配列に格納されているので、あなたが好きなようにあなたは何度でも使用することができます:今、あなたの代わりに、MySQLの結果にアクセスしようとしているの変数を使用することができます。

* MySQLの結果セットでポインタをリセットすることは可能ですが、私のアプローチは単純ですし、単純な古いPHP配列に必要なデータをコピーしているので

関連する問題