donglinxi1467 2017-07-21 04:56
浏览 372
已采纳

嵌套while循环只运行一次

I'm running two while loops to display a table in html.

  • The first while loop is to display data from a selected databasetable as long as there is content in the database.
  • My second while loop displays a dropdown, where the content of another table should be displayed.

My goal is to show this dropdown each row. My problem is that the dropdown filled with data is just shown in the first tablerow. All the other rows just show an empty selectfield. Can someone help me what I did wrong?

My Code so far:

    $link=pg_connect($conn_str); 
    if (!$link) {die('Verbindung schlug fehl.');}

    $arbeitspaket = pg_query($link, "SELECT * FROM arbeitspaket WHERE id='$_SESSION[user_id]'");

    $sql = "SELECT * FROM anwender ORDER BY nachname ASC";
    $mitarbeiter = pg_query($link, $sql); ?>

<form action=mitarbeiterauswahl.php method=post>

    <table border=1>
    <tr>
        <th>Arbeitspaket-ID</th>
        <th>Arbeitspaketbezeichnung</th>
        <th>Mitarbeiterbedarf</th>
        <th>Mitarbeiterzuordnung</th>
    </tr>

    <?php while($results=pg_fetch_array($arbeitspaket)){?>          
        <tr>
        <td><?php echo $results['apid']; ?></td>
        <td><?php echo $results['arbeitspaketbezeichnung']; ?></td>
        <td><?php echo $results['mitarbeiterbedarf']; ?></td>
        <td>
            <select name="mitarbeiter">
            <?php while($row = pg_fetch_array($mitarbeiter)){
                 echo '<option value="'. $row['id'] .'">('. $row['id'] .') '. $row['vorname'] .' '. $row['nachname'] .'</option>'."
"; }?> 
            </select>
        </td>
        </tr>
    <?php } ?>
    </table>
</form>

展开全部

  • 写回答

3条回答 默认 最新

  • douweiduo7526 2017-07-21 05:05
    关注

    Why don't you try a foreach? Looks much better in this situation. Something like this:

    <table border=1>
    <tr>
        <th>Arbeitspaket-ID</th>
        <th>Arbeitspaketbezeichnung</th>
        <th>Mitarbeiterbedarf</th>
        <th>Mitarbeiterzuordnung</th>
    </tr>
    <?php $results= pg_fetch_array($arbeitspaket);
      $arbeiters = pg_fetch_array($mitarbeiter); 
        foreach($results as $result){?>          
        <tr>
        <td><?php echo $result['apid']; ?></td>
        <td><?php echo $result['arbeitspaketbezeichnung']; ?></td>
        <td><?php echo $result['mitarbeiterbedarf']; ?></td>
        <td>
            <select name="mitarbeiter">
            <?php foreach($arbeiters as $arbeiter) {
                 echo '<option value="'. $arbeiter) ['id'] .'">('. $arbeiter) ['id'] .') '. $arbeiter) ['vorname'] .' '. $arbeiter) ['nachname'] .'</option>'."
    "; }?> 
            </select>
        </td>
        </tr>
    <?php } ?>
    </table>
    

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部