需要php和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 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的床位号 我当前的代码:需要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
<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