2012-04-16 2 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 여야합니다. = person ID, 월 및 일을 사용하여 select에 대한 고유 ID를 생성했습니다. –

+0

도움이되어 기쁩니다. – mellamokb

0

감사 : 테이블 구조와 queties. 두 테이블의 데이터를 결합하려는 경우처럼 보이며 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

아래 에코 $ 옵션을 사용하여 제대로 표시되지만 SELECT 엔터티에 대해보다 고유 한 이름/ID가 필요해 보입니다. 지금은 같은 "이름"과 "id"("naam_id")를 사용하는 다양한 SELECT 태그가 있습니다.

$row_pers 결과의 결과를 기반으로 변수를 변수로 변경하십시오. 또는 $j을 사용할 수 있지만 양식을 제출하고 입력을 처리하려는 경우 도움이되지 않을 수 있습니다.