需要php和mysql代码的帮助-从另一个表中获取数据以用于组合表

需要php和mysql代码的帮助-从另一个表中获取数据以用于组合表,mysql,Mysql,我使用联合所有组合两个表,然后使用按兰德排序()随机日期 第一张表: OPDNo. | Dep | Ward | Sex | Name | BedNo 1 abc abcmale 1 xx 5 abc abcmale 1 yy 9 abc abcmale 1 zz IPDno.|OPDNo.|副主任|病房|性别|姓名|贝德诺 1 8 abc abc电子邮件0 aa

我使用联合所有组合两个表,然后使用按兰德排序()随机日期

第一张表:

OPDNo. | Dep | Ward | Sex | Name | BedNo 1 abc abcmale 1 xx 5 abc abcmale 1 yy 9 abc abcmale 1 zz IPDno.|OPDNo.|副主任|病房|性别|姓名|贝德诺 1 8 abc abc电子邮件0 aa 2 6 abc abc电子邮件0 bb 3 1 abc abcmale 1 xx 4.7 abc abcfemale 0 cc 5 abc abcmale 1 yy 6 9 abc abcmale 1 zz 现在我的问题需要你的帮助:

我还有一张桌子和一张床

Ward | Bed No | Status abcmale 1 0 abcmale 2 0 abcmale 3 1 abcmale 4 0 abcmale 5 0 abcfemale 6 0 abcfemale 7 0 abcfemale 8 1 abcfemale 9 1 abcfemale 10 0 abcfemale 11 0 病房|床位号|状态 abcmale10 abcmale 2 0 abcmale 3 1 abcmale 4 0 abcmale 5 0 ABC女性6 0 abcfemale 7 0 abcfemale 8 1 abcfemale 9 1 abcfemale 10 0 abcfemale 11 0 在我的组合表中,我需要填充BedNo。从我的床位表中,我只能放置特定病房状态为0的床位号

我当前的代码:

                   <table  class="table table-striped table-bordered">
                  <thead>
                    <tr>
                      <th>IPD No.</th>
                      <th>OPD No.</th>                      
                      <th>Dep.</th>
                      <th>Ward</th>
                      <th>Bed</th>                      
                      <th>Sex</th>                      
                    </tr>
                  </thead>
                  <tbody>
                    <?php
    
           $qipd="SELECT MAX(IPDNo) from ipd";
            $ripd = $conn->query($qipd);
         $ipdn=mysqli_fetch_array($ripd,MYSQLI_NUM);
            $ipdn= $ipdn[0]+1;
            $i=1;

          while($opd = $result->fetch_assoc()){

        ?>
    <form action="saveBulkipd.php" method="post">
         <?php
         echo '<tr>';
         echo '<td><input type="text" readonly value="'.$ipdn.'" name="'.$i.'ipdno"/></td>';   
                                  $ipdn++;
                            
         echo '<td><input type="text" readonly value="'.$opd['OPDNo'].'" name="'.$i.'opdno"/></td>';  
         
         echo '<td><input type="text" readonly value="'.$opd['PDep'].'" name="'.$i.'pdep"/></td>'; 
         echo '<td><input type="text" readonly value="'.$opd['PWard'].'" name="'.$i.'pward"/></td>';
        ?>
        <!--Bed  No. Logic-->
<td><input type="text" readonly value="'<?php
            
            $j=0;   
$bedq="SELECT `bed` from bed where ward='$opd[PWard]' and status=0";
$rbed = $conn->query($bedq);        
$bedno=array();
while($bedn=$rbed->fetch_assoc()) {
  
$bedno[]=$bedn['bed'];
}
            echo $bedno[$j];
            $j++;
            ?>'" name=""/></td>
        
        <!--Bed  No. Logic End-->
                    <?php
        
        echo '<td><input type="text" readonly value="'.$opd['PSex'].'" name="'.$i.'psex"/></td>';        
        echo '</tr>';
        $i++;
        
                              }
    
    ?>
                    <tr>
                      <td><input type="submit" name="bulksubmit" value="Save IPD Date" class="btn btn-default"/></td>
                    </tr>
     </form>
                  </tbody>
                  
                </table>


知识产权编号。
门诊号码。
副部长。
病房
床
性
我得到的输出

我每个病房的床位都是一样的

注意:为了简单起见,我删除了许多列。我的问题是床位没有分配

我想要的结果集:

IPDno. | OPDNo. | Dep | Ward | Sex | Name | BedNo 1 8 abc abcfemale 0 aa 6 2 6 abc abcfemale 0 bb 7 3 1 abc abcmale 1 xx 1 4 7 abc abcfemale 0 cc 10 5 5 abc abcmale 1 yy 2 6 9 abc abcmale 1 zz 4 IPDno.|OPDNo.|副主任|病房|性别|姓名|贝德诺 1 8 abc abcfemale 0 aa 6 2 6 abc abc电子邮件0 bb 7 3 1 abc abcmale 1 xx 1 4 7 abc abcfemale 0 cc 10 5 abc abcmale 1 yy 2 6 9 abc abcmale 1 zz 4
如上图所示,已使用状态为0且为特定病房列的Bed table分配了Bed no。

您不需要使用PHP,请尝试下一个SQL之类的方法

SELECT * FROM (
SELECT * FROM `firsttbl` UNION ALL SELECT * FROM `secondtble` ORDER BY RAND()
) AS a
INNER JOIN `bed` ON `bed`.`BedNo` = `a`.`BedNo`
WHERE `bed`.`Status` = 1

我完全无法复制,似乎您编写的DB表有一些错误

欢迎使用StackOverflow。如果您以与表格相同的格式向我们展示所需的结果集,则最好是针对此类问题。恕我直言,很难从你的问题中猜出你的要求。此外,这是一个SQL问题,而不是php问题。因此,您可以删除整个php程序,只显示SQL。一旦你算出了SQL,你就可以将它构建到你的php中。根据你的建议,我已经编辑了我的问题。我认为这是一个综合问题,因为我只能对一个病房执行此操作,但对多个病房执行此操作时会出现问题(病房是一个列名)。谢谢您的回复,但不幸的是,我尝试了上述查询,无法解决我的问题。我已经减少了一些部分,并在不同的情况下提到了mysql查询问题。如果你能在这方面帮助我,它也会起作用。我的不同踏板连接是
                   <table  class="table table-striped table-bordered">
                  <thead>
                    <tr>
                      <th>IPD No.</th>
                      <th>OPD No.</th>                      
                      <th>Dep.</th>
                      <th>Ward</th>
                      <th>Bed</th>                      
                      <th>Sex</th>                      
                    </tr>
                  </thead>
                  <tbody>
                    <?php
    
           $qipd="SELECT MAX(IPDNo) from ipd";
            $ripd = $conn->query($qipd);
         $ipdn=mysqli_fetch_array($ripd,MYSQLI_NUM);
            $ipdn= $ipdn[0]+1;
            $i=1;

          while($opd = $result->fetch_assoc()){

        ?>
    <form action="saveBulkipd.php" method="post">
         <?php
         echo '<tr>';
         echo '<td><input type="text" readonly value="'.$ipdn.'" name="'.$i.'ipdno"/></td>';   
                                  $ipdn++;
                            
         echo '<td><input type="text" readonly value="'.$opd['OPDNo'].'" name="'.$i.'opdno"/></td>';  
         
         echo '<td><input type="text" readonly value="'.$opd['PDep'].'" name="'.$i.'pdep"/></td>'; 
         echo '<td><input type="text" readonly value="'.$opd['PWard'].'" name="'.$i.'pward"/></td>';
        ?>
        <!--Bed  No. Logic-->
<td><input type="text" readonly value="'<?php
            
            $j=0;   
$bedq="SELECT `bed` from bed where ward='$opd[PWard]' and status=0";
$rbed = $conn->query($bedq);        
$bedno=array();
while($bedn=$rbed->fetch_assoc()) {
  
$bedno[]=$bedn['bed'];
}
            echo $bedno[$j];
            $j++;
            ?>'" name=""/></td>
        
        <!--Bed  No. Logic End-->
                    <?php
        
        echo '<td><input type="text" readonly value="'.$opd['PSex'].'" name="'.$i.'psex"/></td>';        
        echo '</tr>';
        $i++;
        
                              }
    
    ?>
                    <tr>
                      <td><input type="submit" name="bulksubmit" value="Save IPD Date" class="btn btn-default"/></td>
                    </tr>
     </form>
                  </tbody>
                  
                </table>

IPDno. | OPDNo. | Dep | Ward | Sex | Name | BedNo 1 8 abc abcfemale 0 aa 6 2 6 abc abcfemale 0 bb 7 3 1 abc abcmale 1 xx 1 4 7 abc abcfemale 0 cc 10 5 5 abc abcmale 1 yy 2 6 9 abc abcmale 1 zz 4
SELECT * FROM (
SELECT * FROM `firsttbl` UNION ALL SELECT * FROM `secondtble` ORDER BY RAND()
) AS a
INNER JOIN `bed` ON `bed`.`BedNo` = `a`.`BedNo`
WHERE `bed`.`Status` = 1