首頁  >  文章  >  後端開發  >  怎么查另一个表字段中的数据

怎么查另一个表字段中的数据

WBOY
WBOY原創
2016-06-23 14:10:331362瀏覽

现在我有一个tb_activity表和一个tb_participate表
表tb_participate中的p_activity字段与表tb_activity中的a_num值相同
通过

<?php$sql8="select * from tb_participate where p_voluteer = '$fnum'";$result8=mysql_query($sql8)or die ('数据库查询失败!');while($row=mysql_fetch_array($result8)){	 echo $row['p_activity'].'<br/>';}?>

我可以输出表tb_participate中p_activity字段的所有值(也就是表tb_activity中a_num的值)
但我想同时输出表tb_activity中a_name字段的值
请问应该怎么改写代码?


回复讨论(解决方案)

$sql8="select * from tb_participate a  inner join tb_activity b on a.p_activity=b.a_num where a.p_voluteer = '$fnum'";
$result8=mysql_query($sql8)or die ('数据库查询失败!');
while($row=mysql_fetch_array($result8)){
     echo $row['p_activity'] .' '.$row['a_name'].'
';
}

$sql8="select * from tb_participate, tb_activity where tb_participate.p_activity=tb_activity.a_num  and tb_participate.p_voluteer = '$fnum'";

$sql8="select * from tb_participate, tb_activity where tb_participate.p_activity=tb_activity.a_num  and tb_participate.p_voluteer = '$fnum'";

$sql8="select * from tb_participate, tb_activity where tb_participate.p_activity=tb_activity.a_num  and tb_participate.p_voluteer = '$fnum'";
$result8=mysql_query($sql8)or die ('数据库查询失败!');
while($row=mysql_fetch_array($result8)){
   echo $row['tb_participate.p_activity'] .' '.$row['tb_activity.a_name'].'
';
}
?>
这样改完 就什么也打印不出来了

echo $row['tb_participate.p_activity'] .' '.$row['tb_activity.a_name'].'
'
怎么写成这样了?我没让你这么写吧?

echo $row['p_activity'] .' '.$row['a_name'].'
'

$sql8="select * from tb_participate a  inner join tb_activity b on a.p_activity=b.a_num where a.p_voluteer = '$fnum'";
$result8=mysql_query($sql8)or die ('数据库查询失败!');
while($row=mysql_fetch_array($result8)){
     echo $row['p_activity'] .' '.$row['a_name'].'
';
}
$sql8="select * from tb_participate a  inner join tb_activity b on a.p_activity=b.a_num where a.p_voluteer = '$fnum'";
$result8=mysql_query($sql8)or die ('数据库查询失败!');
while($row=mysql_fetch_array($result8)){
     echo $row['p_activity'] .' '.$row['a_name'].'
';
}
?>

我原来的代码可以打印出
HD090515
HD090517
两行 可是修改后什么也打印不出来了

echo $row['tb_participate.p_activity'] .' '.$row['tb_activity.a_name'].'
'
怎么写成这样了?我没让你这么写吧?

echo $row['p_activity'] .' '.$row['a_name'].'
'
$sql8="select * from tb_participate, tb_activity where tb_participate.p_activity=tb_activity.a_num  and tb_participate.p_voluteer = '$fnum'";
$result8=mysql_query($sql8)or die ('数据库查询失败!');
while($row=mysql_fetch_array($result8)){
    echo $row['p_activity'] .' '.$row['a_name'].'
';
}
?>
还是没有反应……什么也打印不出来

建议贴下你的表结构

建议贴下你的表结构

我的QQ号:273041720
能不能加一下啊
大神jordan102&&版主大人xuzuning

表数据呢,怀疑没有满足条件的数据。可以把sql贴到phpmyadmin 里面执行一下就知道了。

表数据呢,怀疑没有满足条件的数据。可以把sql贴到phpmyadmin 里面执行一下就知道了。
-- phpMyAdmin SQL Dump
-- version 2.11.6
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2013 年 05 月 17 日 08:35
-- 服务器版本: 5.0.51
-- PHP 版本: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- 数据库: `db_voluteer`
--

-- --------------------------------------------------------

--
-- 表的结构 `tb_activity`
--

CREATE TABLE `tb_activity` (
  `a_num` varchar(8) NOT NULL,
  `a_name` varchar(20) default NULL,
  `a_date` date default NULL,
  `a_place` varchar(20) default NULL,
  `a_number` int(3) default NULL,
  `a_department` varchar(20) default NULL,
  `a_principal` varchar(20) default NULL,
  `a_telephone` varchar(20) default NULL,
  `a_sponsor` varchar(20) default NULL,
  `a_remark` text,
  PRIMARY KEY  (`a_num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- 导出表中的数据 `tb_activity`
--

INSERT INTO `tb_activity` (`a_num`, `a_name`, `a_date`, `a_place`, `a_number`, `a_department`, `a_principal`, `a_telephone`, `a_sponsor`, `a_remark`) VALUES
('HD130512', '体能测试', '2013-05-12', '理学院4楼', 0, 'IEC工作部', '', '2147483647', '', ''),
('HD130515', 'SAD', '0000-00-00', 'SD', 0, '', '', '', '', ' '),
('HD130517', 'TEST', '2013-05-17', 'D', NULL, 'IEC工作部', NULL, '18646665427', NULL, NULL),
('HD130525', '五月天《明日重生》演唱会', '0000-00-00', '哈尔滨国际会展中心', 0, '电信工作部', '', '15114590656', 'WX', '');

-- --------------------------------------------------------

--
-- 表的结构 `tb_department`
--

CREATE TABLE `tb_department` (
  `d_num` int(2) NOT NULL,
  `d_name` varchar(20) default NULL,
  `d_minister` varchar(10) default NULL,
  PRIMARY KEY  (`d_num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- 导出表中的数据 `tb_department`
--

INSERT INTO `tb_department` (`d_num`, `d_name`, `d_minister`) VALUES
(1, '资环工作部', '申琪'),
(2, '电信工作部', '蒲伟'),
(9, 'IEC工作部', '王洵');

-- --------------------------------------------------------

--
-- 表的结构 `tb_finance`
--

CREATE TABLE `tb_finance` (
  `f_num` varchar(8) NOT NULL,
  `f_type` varchar(10) default NULL,
  `f_date` date default NULL,
  `f_money` int(10) default NULL,
  `f_activity` varchar(20) default NULL,
  `f_users` varchar(20) default NULL,
  `f_telephone` varchar(11) default NULL,
  `f_remark` text,
  PRIMARY KEY  (`f_num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- 导出表中的数据 `tb_finance`
--

INSERT INTO `tb_finance` (`f_num`, `f_type`, `f_date`, `f_money`, `f_activity`, `f_users`, `f_telephone`, `f_remark`) VALUES
('ZC090515', '收入', '0000-00-00', 250, '', 'SAD', '12412421', ' AD'),
('ZC090516', '支出', '0000-00-00', 100, '', '', '', ' ');

-- --------------------------------------------------------

--
-- 表的结构 `tb_goods`
--

CREATE TABLE `tb_goods` (
  `g_num` varchar(8) NOT NULL,
  `g_name` varchar(20) default NULL,
  `g_type` varchar(10) default NULL,
  `g_count` int(10) default NULL,
  `g_date` date default NULL,
  `g_user` varchar(20) default NULL,
  `g_activity` varchar(20) default NULL,
  `g_telephone` varchar(20) default NULL,
  `g_place` varchar(20) default NULL,
  `g_remark` text,
  PRIMARY KEY  (`g_num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- 导出表中的数据 `tb_goods`
--

INSERT INTO `tb_goods` (`g_num`, `g_name`, `g_type`, `g_count`, `g_date`, `g_user`, `g_activity`, `g_telephone`, `g_place`, `g_remark`) VALUES
('CK090515', 'MX', '出库', 0, '0000-00-00', '', '', '', '', ' '),
('RK090516', 'MX2', '入库', 5, '0000-00-00', '', 'test', '', '', '                                                                              ');

-- --------------------------------------------------------

--
-- 表的结构 `tb_organization`
--

CREATE TABLE `tb_organization` (
  `o_num` int(8) NOT NULL auto_increment,
  `o_department` varchar(8) default NULL,
  `o_activity` varchar(8) default NULL,
  PRIMARY KEY  (`o_num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

--
-- 导出表中的数据 `tb_organization`
--


-- --------------------------------------------------------

--
-- 表的结构 `tb_participate`
--

CREATE TABLE `tb_participate` (
  `p_num` int(8) NOT NULL auto_increment,
  `p_voluteer` varchar(8) default NULL,
  `p_activity` varchar(8) default NULL,
  PRIMARY KEY  (`p_num`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

--
-- 导出表中的数据 `tb_participate`
--

INSERT INTO `tb_participate` (`p_num`, `p_voluteer`, `p_activity`) VALUES
(1, '90901', 'HD090515'),
(2, '90902', 'HD090515'),
(3, '100901', 'HD130525'),
(4, '100902', 'HD130525'),
(5, '90901', 'HD090517');

-- --------------------------------------------------------

--
-- 表的结构 `tb_users`
--

CREATE TABLE `tb_users` (
  `u_username` varchar(10) NOT NULL,
  `u_password` varchar(10) NOT NULL,
  `u_role` varchar(10) NOT NULL,
  PRIMARY KEY  (`u_username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- 导出表中的数据 `tb_users`
--

INSERT INTO `tb_users` (`u_username`, `u_password`, `u_role`) VALUES
('wangxun', '900727', '管理员');

-- --------------------------------------------------------

--
-- 表的结构 `tb_voluteer`
--

CREATE TABLE `tb_voluteer` (
  `v_num` int(6) NOT NULL,
  `v_name` varchar(20) default NULL,
  `v_stunum` int(10) default NULL,
  `v_sex` varchar(2) default NULL,
  `v_id` varchar(18) default NULL,
  `v_birth` date default NULL,
  `v_place` varchar(10) default NULL,
  `v_nation` varchar(10) default NULL,
  `v_politics` varchar(10) default NULL,
  `v_department` varchar(20) default NULL,
  `v_position` varchar(10) default NULL,
  `v_cellphone` varchar(11) default NULL,
  `v_qq` varchar(20) default NULL,
  `v_email` varchar(20) default NULL,
  `v_enterdate` date default NULL,
  `v_college` varchar(20) default NULL,
  `v_major` varchar(20) default NULL,
  `v_dormitory` varchar(20) default NULL,
  PRIMARY KEY  (`v_num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- 导出表中的数据 `tb_voluteer`
--

INSERT INTO `tb_voluteer` (`v_num`, `v_name`, `v_stunum`, `v_sex`, `v_id`, `v_birth`, `v_place`, `v_nation`, `v_politics`, `v_department`, `v_position`, `v_cellphone`, `v_qq`, `v_email`, `v_enterdate`, `v_college`, `v_major`, `v_dormitory`) VALUES
(90101, '申', 0, '男', '0', '0000-00-00', '', '', '党员', '资环工作部', '部长', '0', '0', '', '0000-00-00', '', '', ''),
(90201, '蒲', 2009020000, '', '2147483647', '0000-00-00', '', '', '团员', '电信工作部', '部长', '0', '0', '', '0000-00-00', '', '', ''),
(90202, '闵敏', 2009020001, '女', '230606199007200850', '0000-00-00', '', '', '党员', '电信工作部', '部长', '', '99999999999', '', '0000-00-00', '', '', ''),
(90301, '李', 2009020003, '女', '230606199007270999', '0000-00-00', '', '', '党员', '机械工作部', '部长', '15114590685', '', '', '0000-00-00', '机械工程学院', '', ''),
(90401, '孙鹏', 2009025837, '男', '', '0000-00-00', '', '', '党员', '建工工作部', '部长', '', '', '', '0000-00-00', '建筑工程学院', '', ''),
(90402, '曾', 2009020006, '女', '', '0000-00-00', '', '', '群众', '计算机工作部', '部长', '', '', '', '0000-00-00', '建筑工程学院', '', ''),
(90501, '赵鹿', 2009020007, '女', '230606199007270891', '0000-00-00', '', '', '团员', '总会宣传工作部', '部长', '', '', '', '0000-00-00', '经济管理学院', '', ''),
(90901, '王', 2009025838, '男', '0', '0000-00-00', '上海市', '', '', 'IEC工作部', '部长', '21474836478', '273041720', 'wxsyd966@gmail.com', '0000-00-00', '国际教育学院', '赴加计算机09-1', '16#604'),
(91101, '宋韬', 2009025836, '男', '', '0113-05-10', '', '', '团员', '安全工作部', '部长', '', '', '', '0000-00-00', '安全工程学院', '', ''),
(100901, '茹', 0, '女', '0', '0000-00-00', '', '', '群众', 'IEC工作部', '干事', '0', '0', '', '0000-00-00', '', '', ''),
(100902, '沂', 2010020666, '女', '230606199007270002', '0000-00-00', '', '', '群众', 'IEC工作部', '干事', '', '', '', '0000-00-00', '', '', '');

你的 $fnum 是多少,echo $sql8; 看看。
把sql放到phpmyadmin执行一下看有不有结果

你的 $fnum 是多少,echo $sql8; 看看。
把sql放到phpmyadmin执行一下看有不有结果
$fnum=90901
echo $sql8; 如果用我的代码是 打印出select * from tb_participate where p_voluteer = '90901'select * from tb_participate where p_voluteer = '90901'
echo $sql8; 大神和版主的 没有任何显示
我一直把sql一直在phpmyadmin里面呢 这个是我的毕业设计
请大神加我QQ,273041720,可以远程

p_voluteer = '90901 时没有 tb_participate.p_activity=tb_activity.a_num 的数据,因此就没有任何显示了。

p_voluteer = '90901 时没有 tb_participate.p_activity=tb_activity.a_num 的数据,因此就没有任何显示了。
我去!!!!!!!!!!
FXXX,跪谢大神!!!!!!!!!!!!
大神威武!!!!!!!!!!!!
乔丹还有两个BUG http://bbs.csdn.net/topics/390460423

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn