+ -
当前位置:首页 → 问答吧 → 两个表对比并输出值怎么写?没人帮我

两个表对比并输出值怎么写?没人帮我

时间:2009-12-27

来源:互联网

我现在有两个表member和recharge
member表有username字段和num字段
recharge只有recharge_num字段

想输出recharge表的时候,当recharge_num等于member表的num字段的时候输出username 技术上可能吗?
有没有高手帮我解答一下?
小弟万分感谢

作者: tn2   发布时间: 2009-12-27

SELECT *
FROM `member ` AS n
JOIN `recharge ` AS r
ON n.num = r.recharge_num;

作者: xiaokai   发布时间: 2009-12-28


试试

SELECT username FROM member,recharge WHERE recharge.recharge_num=member.num

作者: 陈仔   发布时间: 2009-12-28

顶下!

作者: zx68555   发布时间: 2009-12-28

谢谢两位,还有那位顶贴的朋友。你们告诉我的是MYSQL语句,而我想用PHP来对比。
麻烦各位可以的朋友帮我一下。以下是代码

<?php
include_once ('admin_global.php');
$r=$db->Get_user_shell_check($uid, $shell);
 $query=$db->findall("goods");
    while ($row=$db->fetch_array($query)) {
     $news_class_arr[$row[goods_id]]=$row[goods_name];
 }
if(isset($_GET[del])){
 mysql_query("DELETE FROM `recharge` WHERE `recharge_id` = '$_GET[del]' LIMIT 1;");
 $db->Get_admin_msg("admin_recharge_list.php","添加成功");
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>后台管理</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META content=Alan name=Author>
<LINK rev=MADE href="[url=mailto:[email protected]]mailto:[email protected][/url]">
<META content="MSHTML 6.00.6000.16890" name=GENERATOR></HEAD>
<BODY>
<table width="915" border=0 align=center cellspacing=1 class=form>
 <tr>
  <th width='53'>id</th>
  <th width='86'>用户名</th>
  <th width='108'>充值种类</th>
  <th width='123'>剩余金额</th>
  <th width='146'>剩余次数</th>
  <th width="205">消费种类</th>
  <th width='268'>操作</th>
 </tr>
 <tr>
 <?php
    $result = mysql_query("select recharge_id from recharge");
    $total = mysql_num_rows($result);
    pageft($total, 20);
    if ($firstcount < 0) $firstcount = 0;
   $query = $db->findall("recharge limit  $firstcount, $displaypg");
   while ($row = $db->fetch_array($query)) {
   ?>
  <td><?php echo $row[recharge_id]?></td>
  <td>当$row[recharge_id]等于username.num值时 此处调用members表中的username</td>
  <td><?php echo $news_class_arr[$row[recharge_type]]?></td>
   <td><?php echo $row[recharge_money]?></td>
   <td><?php echo $row[recharge_once]?></td>
  <td><?php echo $row[recharge_type]?>
  <td><a href='?del=<?php echo $row[recharge_id]?>'>删除</a> / <a href='admin_goods_edit.php?id=<?php echo $row[recharge_id]?>'>修改</a></td>
 </tr>
 <?php
}
?>
 <tr>
  <th colspan="11"><?php echo $pagenav;?></th>
 </tr>
</table></BODY></HTML>

作者: tn2   发布时间: 2009-12-28

把2个表的结果封装到2个数组里面,数组1的键对应num,值对应username。数组2的键对应recharge_num,值随意。
然后再写个函数,把2个数组做参数传进去,进行键与键的比较,相同则将数组1的值,放入一个新数组里面,最后返回这个新数组。。。。

不过SQL语句能办到,用PHP不是多次一举吗。。

作者: zztnamed   发布时间: 2009-12-28

要全部循环显示出来可以:
$all=mysql_query("SELECT username FROM member,recharge WHERE recharge.recharge_num=member.num");

while($num_fetch=mysql_fetch_array($all)){

echo  $num_fetch[username];

}

*****************************************************************************************************

如果要每获得一个recharge_num就比对一次num,可以:

$a=//你得到的recharge_num

$all=mysql_query("SELECT username FROM member WHERE num=$a");

$num_fetch=mysql_fetch_array($all))

echo  $num_fetch[username];



作者: 陈仔   发布时间: 2009-12-28

谢谢,陈仔还有zztnamed。我这里有个东西要做。我晚上晚些时候坐下,哈哈。不管怎样先谢谢你们了。

作者: tn2   发布时间: 2009-12-28

我第二段代码忘了几个结束的分号,你自己加上去,哈哈,不然报错

作者: 陈仔   发布时间: 2009-12-28

提示错误!,哎。不知道哪里错了。帮我看看别。嘻嘻
<?php
$b=$row[recharge_num];//你得到的recharge_num
$all=mysql_query("SELECT 'username' FROM 'member' WHERE 'num'='$b'");
$num_fetch=mysql_fetch_array($all)){
echo $num_fetch[username];
}
?>
Parse error: syntax error, unexpected ')' in D:\wamp\www\system\admin_recharge_list.php on line 51

作者: tn2   发布时间: 2009-12-28

<?php
$a=$row[recharge_num];//你得到的recharge_num
$all=mysql_query("SELECT username FROM members WHERE num=$a");
while($num_fetch=mysql_fetch_array($all)){
echo $num_fetch[username];
}
?>

正确答案出来了,万分感谢才陈仔       
我有点兴奋过头了,哈哈哈哈。真的超级感谢,我有问题再来问你昂

作者: tn2   发布时间: 2009-12-28