2012-04-16 4 views
1

私はこのコードで何をしようとしていることを教えようとします。PHP、while中に

私は最初の列に、現在の月の日数(列の各日)が続くユーザーの名前を持つテーブルを作成しています。 これで、値を選択するために各行/列に選択オプションを作成しようとしています。

は、ここに私のコードです:

<table width="100%" cellspacing="0" cellpadding="0" class="addtable"> 
<tr> 
<td class="tabletitle">Personeelslid</td> 
<?php 
do{ 
    echo "<td class=\"tabletitle\">".$i."</td>"; 
    $i++; 
} while ($i<=$dagen); 
?> 
</tr> 
<?php 
while($row_pers = $mysql->fetch_array($result_pers)) 
{ 
    $j=1; 
    if ($color == _COLOR_WHITE){ 
     $color = _COLOR_GREY; 
    } else { 
     $color = _COLOR_WHITE; 
    } 
    echo "<tr class=\"trborder\">"; 
    echo "<td bgcolor=\"".$color."\">".$row_pers['pers_naam']."</td>"; 
    while ($j<=$dagen){ 
     echo "<td bgcolor=\"".$color."\">"; 
     ?> 
     <select name="naam_id" id="naam_id"> 
     <option value="test">test</option> 
     <?php 
     while($row_shiften = $mysql->fetch_array($result_shiften)) 
     { 
     echo "<option value=\"".$row_shiften['shift_code']."\">".$row_shiften['shift_code']."</option>"; 
     } 
     ?> 
     </select> 
     <?php 
     echo "</td>"; 
     $j++; 
    } 
    echo "</tr>"; 
} 
?> 
</table> 

現在の結果は、私が選択したオプションを除きたいすべてが1つのだけの場所上に表示されている私の与えます。それをキャッシュするか、コードを書き直して動作させることは可能ですか?我々は、おそらく例えば、より多くのコードが必要になりますadvace

答えて

0

オプションの出力を文字列の中に格納し、それを一度生成することができます。そして、出力テーブル内の行ごとに保存されたオプションを参照:あなたはユニークな接尾辞のいくつかの並べ替えを追加する必要がありますので

<?php 
while($row_shiften = $mysql->fetch_array($result_shiften)) 
{ 
    $options += "<option value=\"".$row_shiften['shift_code']."\">".$row_shiften['shift_code']."</option>"; 
} 
... 
while ($j<=$dagen){ 
    echo "<td bgcolor=\"".$color."\">"; 
    ?> 
    <select name="naam_id" id="naam_id"> 
    <option value="test">test</option> 
    // add in the options generated once 
    <?php echo $options; ?> 
    </select> 
    <?php 
    echo "</td>"; 
    $j++; 
} 

また、あなたは、すべてあなたの<select>が同じIDを持っている必要はありません。

+0

すべての返信ありがとうございます。 この問題を解決するためにソリューションを使用しました。 $ options + = $ options。= 人ID、月、日を使用してselectの一意のIDを生成しました。 –

+0

良い気分、助けてうれしいです。 – mellamokb

0

ありがとう:テーブル構造とqueties。 2つのテーブルのデータを結合しようとしているようで、JOINクエリを使用する方がはるかに一般的です。 (例:http://mysqljoin.com/、このトピック専用のサイト)

幸運を祈る!

+0

これは本当にコメントです。 – Blake

+0

すみません。このプラットフォームの習慣を知っている。 – Quant

0

あなたはあなたの$ result_shiftenを "使い切った"のでもう使用できません。あなたはどこかにあなたのスクリプトの先頭に、別のVARにコピーする必要があります。

$options = ""; 
while($row_shiften = $mysql->fetch_array($result_shiften)) 
{ 
    $options += "\m<option value=\"".$row_shiften['shift_code']."\">".$row_shiften['shift_code']."</option>"; 
} 

その後、私はあなたの要求を次てる場合だけ、私はよく分からない

<option value="test">test</option> 
<?php echo $options; ?> 
...etc 
0

の下にエコーを使用します$ options適切に表示されますが、SELECTエンティティにはより一意の名前/ IDが必要なようです。現在、同じ "名前"と "id"( "naam_id")を使用して、可変個のSELECTタグを使用しています。

結果を$row_persの結果に基づいて変数に変更します。また、$jを使用することもできますが、フォームを送信して入力を処理しようとしていると、それは役に立ちません。