Heim  >  Artikel  >  Backend-Entwicklung  >  怎么查另一个表字段中的数据

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

WBOY
WBOYOriginal
2016-06-23 14:10:331362Durchsuche

现在我有一个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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn