php - 选择两个mysql表中的所有数据

标签 php mysql html-table

我这段代码用于连接数据库中的两个表。当尝试使用 while 循环回显它时,它没有显示任何错误消息,但它也没有显示任何内容。有人可以帮我吗?

$sql = "SELECT * FROM usr_details, paymnt_details WHERE usr_details.Trnsnubr = paymnt_details.Trnsnubr";

$sql = 
"SELECT *
FROM usr_details 
JOIN paymnt_details ON usr_details.Trnsnubr = paymnt_details.Trnsnubr";  

这是我用于回显的 html 和 PHP 代码:

$rs_result = mysql_query ($sql) or die(mysql_error()); 
<table width="100%" height="109" border="1" cellpadding="2px" >
  <tr>
    <td colspan="5" class="mainheader">Registerd Persons</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td colspan="16"></td>
  </tr>
 <tr>
    <td class="tableheader" width="68">Payment</td>
    <td class="tableheader" width="64">Amount</td>
    <td class="tableheader" width="58">Date</td>
    <td class="tableheader" width="74">Trnsnubr</td>
    <td class="tableheader" width="97"> Paymenttyp </td>
    <td class="tableheader" width="59">Room Type</td>
    <td class="tableheader" width="96"> Packgname </td>
    <td class="tableheader" width="142">Full name</td>
    <td class="tableheader" width="1"> Email </td>
    <td class="tableheader" width="1">Mobile </td>
    <td class="tableheader" width="1">Address</td>
    <td class="tableheader" width="1">Country</td>
    <td class="tableheader" width="40">Mem_num</td>
    <td class="tableheader" width="40">Chptr</td>
    <td class="tableheader" width="40">Ral</td>
    <td class="tableheader" width="40">ex-mem-1-name</td>
    <td class="tableheader" width="40">ex-mem-2-name</td>
    <td class="tableheader" width="40">Faly-mem-1-name</td>
    <td class="tableheader" width="40">Faly-mem-2-name</td>
    </tr>
<?php 
while ($row = mysql_fetch_assoc($rs_result)) { 
$amount=$row["amount"];
$successness=$row["successness"];
$Timestamp=$row["Timestamp"];
$fname=$row["fname"];
$lname=$row["lname"];
$memnumbr=$row["memnumbr"];
$chptrpostion=$row["chptrpostion"];
$ralpositin=$row["ralpositin"];
$adrs1=$row["adrs1"];
$adrs2=$row["adrs2"];
$city=$row["city"];
$cntry=$row["cntry"];
$MTelNo=$row["MTelNo"];
$email=$row["email"];
$Trnsnubr=$row["Trnsnubr"];
$packgname=$row["packgname"];
$rtype=$row["rtype"];
$paymenttyp=$row["paymenttyp"];
$exmem1name=$row["exmem1name"];
$exmem2name=$row["exmem2name"];
$familymem1name=$row["familymem1name"];
$familymem2name=$row["familymem2name"];


        ?> 
<tr>
<td>  dfgdfgfdgdfgdg<?php echo $successness;?></td>
<td> <?php echo $amount;?></td>
<td> <?php echo $Timestamp;?></td>
<td> <?php echo $Trnsnubr;?></td>
<td> <?php echo $paymenttyp;?></td>
<td> <?php echo $rtype;?></td>
<td> <?php echo $packgname;?></td>
<td> <?php echo $fname." ".$lname;?></td>
<td> <?php echo $email;?></td>
<td> <?php echo $MTelNo;?></td>
<td> <?php echo $adrs1." ".$adrs2." ".$city;?></td>
<td> <?php echo $cntry;?></td>
<td> <?php echo $memnumbr;?></td>
<td> <?php echo $chptrpostion;?></td>
<td> <?php echo $ralpositin;?></td>
<td> <?php echo $exmem1name;?></td>
<td> <?php echo $exmem2name;?></td>
<td> <?php echo $familymem1name;?></td>
<td> <?php echo $familymem2name;?></td>
</tr>
<?php 
}; 
?> 
</table>

这是我的整个编码文件:

<?php session_start();
$user_name = $_SESSION['username'];
$user_pass = $_SESSION['password'];
if ( $user_name == '' ) {
header('location:login.php');
exit();
 }
?>
<?php require_once('connection.php'); ?>
<?php require_once('function.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="css/main.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/users.css" rel="stylesheet" type="text/css" media="all" />
<link href="../dojo/dojo/resources/dojo.css" type="text/css" media="all" />
<link href="../dojo/dijit/themes/nihilo/nihilo.css" type="text/css" media="all" />
<script type="text/javascript" src="../dojo/dojo/dojo.js" ></script>
<script src="js/navigation.js" type="text/javascript"></script>
<script type="text/javascript">

</script>
<style type="text/css">
.tableheader {
    font-size: 18px;
    font-weight: bold;
    color: #96C;
}
.mainheader {
    font-size: 24px;
    font-weight: bolder;
    color: #09F;
}
</style></head>

<body class="nihilo">
<span class="tableheader"></span>
<div id="wrap">
<!-- Enable when Ajax is loading -->
<div id="loading_wrap"></div>
<div id="loading"><img src="images/loading.gif" width="32" height="32" alt="loading" /><br />Loading...</div>
<!-- End loading  -->
  <div id="head">
    <div id="subHead"></div>
  </div>
  <div id="main">
<?php 
if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; }; 
$limit= 5;
$start_from = ($page-1) * $limit; 
//$sql = "SELECT * FROM usr_details ORDER BY Trnsnubr ASC LIMIT $start_from, $limit "; 
//$sql = "SELECT * FROM usr_details, paymnt_details WHERE usr_details.Trnsnubr = paymnt_details.Trnsnubr";
/*$sql = 
"SELECT *
FROM usr_details 
JOIN paymnt_details ON usr_details.Trnsnubr = paymnt_details.Trnsnubr";*/
$sql = "SELECT usr_details.*, paymnt_details.amount, paymnt_details.successness
FROM usr_details 
JOIN paymnt_details ON usr_details.Trnsnubr = paymnt_details.Trnsnubr";
$rs_result = mysql_query ($sql) or die(mysql_error()); 
?> 
<table width="100%" height="109" border="1" cellpadding="2px" >
  <tr>
    <td colspan="5" class="mainheader">Registerd Persons</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td colspan="16"></td>
  </tr>
 <tr>
    <td class="tableheader" width="68">Payment</td>
    <td class="tableheader" width="64">Amount</td>
    <td class="tableheader" width="58">Date</td>
    <td class="tableheader" width="74">Trnsnubr</td>
    <td class="tableheader" width="97"> Paymenttyp </td>
    <td class="tableheader" width="59">Room Type</td>
    <td class="tableheader" width="96"> Packgname </td>
    <td class="tableheader" width="142">Full name</td>
    <td class="tableheader" width="1"> Email </td>
    <td class="tableheader" width="1">Mobile </td>
    <td class="tableheader" width="1">Address</td>
    <td class="tableheader" width="1">Country</td>
    <td class="tableheader" width="40">Mem_num</td>
    <td class="tableheader" width="40">Chptr</td>
    <td class="tableheader" width="40">Ral</td>
    <td class="tableheader" width="40">ex-mem-1-name</td>
    <td class="tableheader" width="40">ex-mem-2-name</td>
    <td class="tableheader" width="40">Faly-mem-1-name</td>
    <td class="tableheader" width="40">Faly-mem-2-name</td>
    </tr>
<?php 
while ($row = mysql_fetch_assoc($rs_result)) { 
$amount=$row["amount"];
$successness=$row["successness"];
$Timestamp=$row["Timestamp"];
$fname=$row["fname"];
$lname=$row["lname"];
$memnumbr=$row["memnumbr"];
$chptrpostion=$row["chptrpostion"];
$ralpositin=$row["ralpositin"];
$adrs1=$row["adrs1"];
$adrs2=$row["adrs2"];
$city=$row["city"];
$cntry=$row["cntry"];
$MTelNo=$row["MTelNo"];
$email=$row["email"];
$Trnsnubr=$row["Trnsnubr"];
$packgname=$row["packgname"];
$rtype=$row["rtype"];
$paymenttyp=$row["paymenttyp"];
$exmem1name=$row["exmem1name"];
$exmem2name=$row["exmem2name"];
$familymem1name=$row["familymem1name"];
$familymem2name=$row["familymem2name"];
?> 
<tr>
<td> <?php echo $successness;?></td>
<td> <?php echo $amount;?></td>
<td> <?php echo $Timestamp;?></td>
<td> <?php echo $Trnsnubr;?></td>
<td> <?php echo $paymenttyp;?></td>
<td> <?php echo $rtype;?></td>
<td> <?php echo $packgname;?></td>
<td> <?php echo $fname." ".$lname;?></td>
<td> <?php echo $email;?></td>
<td> <?php echo $MTelNo;?></td>
<td> <?php echo $adrs1." ".$adrs2." ".$city;?></td>
<td> <?php echo $cntry;?></td>
<td> <?php echo $memnumbr;?></td>
<td> <?php echo $chptrpostion;?></td>
<td> <?php echo $ralpositin;?></td>
<td> <?php echo $exmem1name;?></td>
<td> <?php echo $exmem2name;?></td>
<td> <?php echo $familymem1name;?></td>
<td> <?php echo $familymem2name;?></td>
</tr>
<?php 
}; 
?> 
</table>

</div>
 <div id="footer">
<?php include("footer.php"); ?>
 </div>
</div> 
</body>
</html>

最佳答案

如果这些表具有相同名称的列,则此请求将导致错误。发生这种情况是因为您尝试按列名称获取所有值。在困难的查询中尽量不要使用 *。

尝试这样做:

SELECT usr_details.*, paymnt_details.field1, paymnt_details.field2
FROM usr_details 
JOIN paymnt_details ON usr_details.Trnsnubr = paymnt_details.Trnsnubr

1

<?
$res = mysql_query("SELECT * FROM usr_details LIMIT 1");
var_dump(  mysql_fetch_assoc($res) );
$res = mysql_query("SELECT * FROM paymnt_details LIMIT 1");
var_dump(  mysql_fetch_assoc($res) );
$sql = "SELECT usr_details.* FROM usr_details LEFT JOIN paymnt_details ON usr_details.Trnsnubr = paymnt_details.Trnsnubr";
$res = mysql_query($sql);
var_dump($res);
while($row=mysql_fetch_assoc($res)) {
    var_dump($row);
}
var_dump( mysql_error() );
?>

关于php - 选择两个mysql表中的所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10739915/

相关文章:

php - 纯 PHP 中的 OpenPGP 加密

php - DOM 错误 - ID 'someAnchor' 已在实体中定义,第 X 行

mysql - 按日期对表中的值求和

javascript - 如何在使用重复 Angular Material 时根据屏幕尺寸隐藏一些表格列

html - 对 HTML 表格使用固定列宽还是百分比列宽更好?

php - 使用 PHP SQL 在数据库中查找特定值

mysql - 使用mysql中的match against以查询结束

mysql - 如何合并两个具有相同数据但具有不同 PK 且没有重复字段的数据库?

html - 为什么 TD 没有按预期扩展?

php - 将所有子数组合并为一个