Php 使用来自不同查询的数据合并2个表?
我目前有两个表,如下所示:Php 使用来自不同查询的数据合并2个表?,php,merge,html-table,Php,Merge,Html Table,我目前有两个表,如下所示: <table width="600" border="1"> <tr> <th width="91"> <div align="center">Mail_ID </div></th> <th width="91"> <div align="center">Status </div></th> <th widt
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">Mail_ID </div></th>
<th width="91"> <div align="center">Status </div></th>
<th width="91"> <div align="center">Datum </div></th>
</tr>
<?php
$j = 0;
while($objResult2 = mysql_fetch_array($objQuery2))
{
$j++;
?>
<tr>
<td><div align="center"><?=$objResult2["Mail_ID"];?> </div></td>
<td><div align="center"><?=$objResult2["Status"];?> </div></td>
<td><div align="center"><?=$objResult2["Datum"];?> </div></td>
</tr>
<?php
}
?>
</table>
<br/>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">ID </div></th>
<th width="91"> <div align="center">Titel </div></th>
<th width="91"> <div align="center">Subscribe </div></th>
<th width="91"> <div align="center">Unsubscribe </div></th>
</tr>
<?php for ($i = 0; $objResult1 = mysql_fetch_array($objQuery1); $i++) : ?>
<tr>
<td><div align="center"><?=$objResult1["ID"];?><input type="hidden" name="mailid[]" value="<?=$objResult1["ID"];?>"> </div></td>
<td><div align="center"><?=$objResult1["Titel"];?> </div></td>
<td><div align="center"><input type="radio" name="sub[<?php echo $i; ?>]" value="10"> </div></td>
<td><div align="center"><input type="radio" name="sub[<?php echo $i; ?>]" value="90"> </div></td>
</tr>
<?php endfor; ?>
</table>
$strSQL1 = "SELECT ID, Titel FROM Mail";
$strSQL2 = "SELECT * FROM Subscriptions,
(SELECT MAX(ID) as ids, Mail_ID FROM Subscriptions
WHERE Klant_ID = '".$_GET["ID"]."' GROUP BY Mail_ID) table2
WHERE ID=table2.ids";
$objQuery1 = mysql_query($strSQL1);
$objQuery2 = mysql_query($strSQL2);
这两个表的代码如下所示:
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">Mail_ID </div></th>
<th width="91"> <div align="center">Status </div></th>
<th width="91"> <div align="center">Datum </div></th>
</tr>
<?php
$j = 0;
while($objResult2 = mysql_fetch_array($objQuery2))
{
$j++;
?>
<tr>
<td><div align="center"><?=$objResult2["Mail_ID"];?> </div></td>
<td><div align="center"><?=$objResult2["Status"];?> </div></td>
<td><div align="center"><?=$objResult2["Datum"];?> </div></td>
</tr>
<?php
}
?>
</table>
<br/>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">ID </div></th>
<th width="91"> <div align="center">Titel </div></th>
<th width="91"> <div align="center">Subscribe </div></th>
<th width="91"> <div align="center">Unsubscribe </div></th>
</tr>
<?php for ($i = 0; $objResult1 = mysql_fetch_array($objQuery1); $i++) : ?>
<tr>
<td><div align="center"><?=$objResult1["ID"];?><input type="hidden" name="mailid[]" value="<?=$objResult1["ID"];?>"> </div></td>
<td><div align="center"><?=$objResult1["Titel"];?> </div></td>
<td><div align="center"><input type="radio" name="sub[<?php echo $i; ?>]" value="10"> </div></td>
<td><div align="center"><input type="radio" name="sub[<?php echo $i; ?>]" value="90"> </div></td>
</tr>
<?php endfor; ?>
</table>
$strSQL1 = "SELECT ID, Titel FROM Mail";
$strSQL2 = "SELECT * FROM Subscriptions,
(SELECT MAX(ID) as ids, Mail_ID FROM Subscriptions
WHERE Klant_ID = '".$_GET["ID"]."' GROUP BY Mail_ID) table2
WHERE ID=table2.ids";
$objQuery1 = mysql_query($strSQL1);
$objQuery2 = mysql_query($strSQL2);
现在我想合并这两个表,如下所示:
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">Mail_ID </div></th>
<th width="91"> <div align="center">Status </div></th>
<th width="91"> <div align="center">Datum </div></th>
</tr>
<?php
$j = 0;
while($objResult2 = mysql_fetch_array($objQuery2))
{
$j++;
?>
<tr>
<td><div align="center"><?=$objResult2["Mail_ID"];?> </div></td>
<td><div align="center"><?=$objResult2["Status"];?> </div></td>
<td><div align="center"><?=$objResult2["Datum"];?> </div></td>
</tr>
<?php
}
?>
</table>
<br/>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">ID </div></th>
<th width="91"> <div align="center">Titel </div></th>
<th width="91"> <div align="center">Subscribe </div></th>
<th width="91"> <div align="center">Unsubscribe </div></th>
</tr>
<?php for ($i = 0; $objResult1 = mysql_fetch_array($objQuery1); $i++) : ?>
<tr>
<td><div align="center"><?=$objResult1["ID"];?><input type="hidden" name="mailid[]" value="<?=$objResult1["ID"];?>"> </div></td>
<td><div align="center"><?=$objResult1["Titel"];?> </div></td>
<td><div align="center"><input type="radio" name="sub[<?php echo $i; ?>]" value="10"> </div></td>
<td><div align="center"><input type="radio" name="sub[<?php echo $i; ?>]" value="90"> </div></td>
</tr>
<?php endfor; ?>
</table>
$strSQL1 = "SELECT ID, Titel FROM Mail";
$strSQL2 = "SELECT * FROM Subscriptions,
(SELECT MAX(ID) as ids, Mail_ID FROM Subscriptions
WHERE Klant_ID = '".$_GET["ID"]."' GROUP BY Mail_ID) table2
WHERE ID=table2.ids";
$objQuery1 = mysql_query($strSQL1);
$objQuery2 = mysql_query($strSQL2);
我无法让它工作,因为我尝试的每件事都会因为里面的两个循环而混淆。我希望你们能理解我的问题,我添加了尽可能多的信息和图片,让一切都清楚了^^如果你们还有问题,请以评论的形式询问他们。欢迎任何帮助 我不确定这对您来说是否是一个完整的解决方案,但这应该是一个开始:
SELECT Mail.ID Mail_ID, Mail.Titel, Subscriptions.status, Subscriptions.Datum, Subscriptions.Subscribe, Subscriptions.Unsubscribe
FROM Mail left join Subscriptions on Mail.ID = Subscriptions.Mail_ID
使用SQL联接形成一个返回所有数据的SQL查询。然后只使用一个循环 SQL可能类似于:
SELECT ID, Titel, Subscriptions.* FROM Mail INNER JOIN Subscriptions ON Subscriptions.ID = Mail.ID ...
你应该像其他人说的那样使用连接。通过连接两个或多个表,您不需要使用多个while循环,这样代码会更干净
SELECT
Mail.ID Mail_ID,
Mail.Titel,
Subscriptions.status,
Subscriptions.Datum,
Subscriptions.Subscribe,
Subscriptions.Unsubscribe
FROM
Mail
LEFT JOIN Subscriptions
ON (Subscriptions.Mail_ID = Mail.ID)
其中一种联接类型应该适合您:左联接或内联接
HTML应该如下所示:
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">Mail_ID </div></th>
<th width="91"> <div align="center">Status </div></th>
<th width="91"> <div align="center">Datum </div></th>
<th width="91"> <div align="center">Titel </div></th>
<th width="91"> <div align="center">Subscribe </div></th>
<th width="91"> <div align="center">Unsubscribe </div></th>
</tr>
<?php
while ($objResult2 = mysql_fetch_array($objQuery2))
{
?>
<tr>
<td><div align="center"><?=$objResult2["Mail_ID"];?> </div></td>
<td><div align="center"><?=$objResult2["Status"];?> </div></td>
<td><div align="center"><?=$objResult2["Datum"];?> </div></td>
<td><div align="center"><?=$objResult1["Mail_ID"];?><input type="hidden" name="mailid[]" value="<?=$objResult1["Mail_ID"];?>"> </div></td>
<td><div align="center"><?=$objResult1["Titel"];?> </div></td>
<td><div align="center"><input type="radio" name="sub[<?=$objResult1["Subscriptions_ID"];?>]" value="10"> </div></td>
<td><div align="center"><input type="radio" name="sub[<?=$objResult1["Subscriptions_ID"];?>]" value="90"> </div></td>
</tr>
<?php
}
?>
</table>
邮件ID
地位
资料
滴度
订阅
退订
调查请参见中的示例