比如:有一个表 user(name,age,sex,birthday,company,edu)
然后把 user(age,sex,birthday,company,edu) 相同的 user(name)
列出来,并把什么相同的内容也附在 user(name) 中显示出来???先取出要查询比较的 人名 比如 '张三' 的内容$sql = "select * from  user  where name='张三' ";
$rst = mysql_query($sql) ;
$row = mysql_fetch_array($rst); 然后
$user=$name=$age=$sex=$birthday=$company=$edu= Array();
while(){
$sql1 = "select * from  user  where   ";
$rst1 = mysql_query($sql1) ;
$row1 = mysql_fetch_array($rst1);
while(){
$user=Array($name,$age,$sex,$birthday,$company,$edu);
}
if(empty($user)){}else {
foreach($user $k=>$v){}
}
}表一大,取值一多,马上就乱套了.

解决方案 »

  1.   

    user(张三,22,男,1979-02-11,ibm,北大)
    user(李四,23,男,1978-02-01,aol,北大)
    user(王五,22,男,1979-05-06,ibm,北大)
    user(李六,22,男,1979-06-09,sgi,北大)
    user(赵七,22,男,1979-07-02,ibm,清华)以 张三 为例 张三 是 北大 的 ,那么 把 表中 其他 北大 的 全部列出来 array(李四,王五,李六);
    然后 是 ibm  的 ,那么 把 表中 其他 ibm  的 全部列出来 array(王五,赵七);不知道 这样 是否 清楚 了 ???
      

  2.   

    /**
     * @var username 要查詢的用戶名
     * @var cols 要查詢的欄目,類型為陣列
     * @return   查詢出的資料陣列
     */
    function getData($username, $cols = array()){
    if(!$cols) return array();
    $sql = "Select * from user where name = '$username'";
    $query = mysql_query($sql);
    if(!$userinfo = mysql_fetch_array($query)) return array();

    $result = array();
    foreach($cols as $col){
    $sql = "Select * from user where $col = '{$userinfo[$col]}'";
    $query = mysql_query($sql);
    while($value = mysql_fetch_array($query)){
    $result[$col][] = $value;
    }
    }
    return $result;
    }按例子寫的函式,是不是實現這樣的功能?
      

  3.   

    数据库问题啊 
    把这个表自结合起来查询呗  
    select * from tableX a,tableX b 
    where a.name='zhangsan' and ( 
       a.company=b.company or a.edu=b.edu
    )
      

  4.   


    不好意思,是我把问题搞混了,我想要的结果是:user(张三,22,男,1979-02-11,ibm,北大)
    user(李四,23,男,1978-02-01,aol,北大)
    user(王五,22,男,1979-05-06,ibm,北大)
    user(李六,22,男,1979-06-09,sgi,北大)
    user(赵七,22,男,1979-07-02,ibm,清华)张三 的同类者的交集内容:李四学校:北大
    王五学校:北大
    公司:ibm李六学校:北大
    公司:ibm
    赵七学校:北大$q="CREATE TABLE `user` (
      `id`     int(60)      NOT NULL auto_increment,
      `name`     varchar(100) NOT NULL  default '',
      `age`     varchar(100) NOT NULL  default '',
      `sex`      varchar(200) NOT NULL  default '',
      `birthday`    varchar(100) NOT NULL  default '',
      `company`     varchar(100) NOT NULL  default '',
      `edu`      varchar(200) NOT NULL  default '',  
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8  COLLATE=utf8_unicode_ci   ";  
    mysql_query($q) ;
    $q="insert into user values ('','张三',22,'男',1979-02-11,'ibm','北大')";
    mysql_query($q) ;
    $q="insert into user values ('','李四',23,'男',1978-02-01,'aol','北大')";
    mysql_query($q) ;
    $q="insert into user values ('','王五',22,'男',1979-05-06,'ibm','北大')";
    mysql_query($q) ;
    $q="insert into user values ('','李六',22,'男',1979-06-09,'sgi','北大')";
    mysql_query($q) ;
    $q="insert into user values ('','赵七',22,'男',1979-07-02,'ibm','清华')";
    mysql_query($q) ;
    $username='张三';
    $cols = array('company','edu');
    $result=getData($username, $cols);echo "<br /><pre>";
    print_r($result);
    echo "</pre>"; Array
    (
        [company] => Array
            (
                [0] => Array
                    (
                        [0] => 1
                        [id] => 1
                        [1] => 张三
                        [name] => 张三
                        [2] => 22
                        [age] => 22
                        [3] => 男
                        [sex] => 男
                        [4] => 1966
                        [birthday] => 1966
                        [5] => ibm
                        [company] => ibm
                        [6] => 北大
                        [edu] => 北大
                    )            [1] => Array
                    (
                        [0] => 3
                        [id] => 3
                        [1] => 王五
                        [name] => 王五
                        [2] => 22
                        [age] => 22
                        [3] => 男
                        [sex] => 男
                        [4] => 1968
                        [birthday] => 1968
                        [5] => ibm
                        [company] => ibm
                        [6] => 北大
                        [edu] => 北大
                    )            [2] => Array
                    (
                        [0] => 5
                        [id] => 5
                        [1] => 赵七
                        [name] => 赵七
                        [2] => 22
                        [age] => 22
                        [3] => 男
                        [sex] => 男
                        [4] => 1970
                        [birthday] => 1970
                        [5] => ibm
                        [company] => ibm
                        [6] => 清华
                        [edu] => 清华
                    )        )    [edu] => Array
            (
                [0] => Array
                    (
                        [0] => 1
                        [id] => 1
                        [1] => 张三
                        [name] => 张三
                        [2] => 22
                        [age] => 22
                        [3] => 男
                        [sex] => 男
                        [4] => 1966
                        [birthday] => 1966
                        [5] => ibm
                        [company] => ibm
                        [6] => 北大
                        [edu] => 北大
                    )            [1] => Array
                    (
                        [0] => 2
                        [id] => 2
                        [1] => 李四
                        [name] => 李四
                        [2] => 23
                        [age] => 23
                        [3] => 男
                        [sex] => 男
                        [4] => 1975
                        [birthday] => 1975
                        [5] => aol
                        [company] => aol
                        [6] => 北大
                        [edu] => 北大
                    )            [2] => Array
                    (
                        [0] => 3
                        [id] => 3
                        [1] => 王五
                        [name] => 王五
                        [2] => 22
                        [age] => 22
                        [3] => 男
                        [sex] => 男
                        [4] => 1968
                        [birthday] => 1968
                        [5] => ibm
                        [company] => ibm
                        [6] => 北大
                        [edu] => 北大
                    )            [3] => Array
                    (
                        [0] => 4
                        [id] => 4
                        [1] => 李六
                        [name] => 李六
                        [2] => 22
                        [age] => 22
                        [3] => 男
                        [sex] => 男
                        [4] => 1964
                        [birthday] => 1964
                        [5] => sgi
                        [company] => sgi
                        [6] => 北大
                        [edu] => 北大
                    )        ))
    $company=count($result[company]);
    $edu=count($result[edu]);
    echo "<br /><br /> 公司<br />  ";
    for($i=0;$i<$company;$i++){
    echo "<br /> ";
    echo $result[company][$i][name].$result[company][$i][company];
    }  
    echo "<br /><br /> 学校<br />  ";
    for($i=0;$i<$edu;$i++){
    echo "<br /> ";
    echo $result[edu][$i][name].$result[edu][$i][edu];
    }公司张三ibm
    王五ibm
    赵七ibm学校张三北大
    李四北大
    王五北大
    李六北大
    怎样反过来呢?  以人名为主呢?非常感谢!
      

  5.   


    不好意思,是我把问题搞混了,我想要的结果是:user(张三,22,男,1979-02-11,ibm,北大)
    user(李四,23,男,1978-02-01,aol,北大)
    user(王五,22,男,1979-05-06,ibm,北大)
    user(李六,22,男,1979-06-09,sgi,北大)
    user(赵七,22,男,1979-07-02,ibm,清华)张三 的同类者的交集内容:李四学校:北大
    王五学校:北大
    公司:ibm李六学校:北大
    公司:ibm
    赵七学校:北大
     mysql_connect("localhost", "root", "adminroot");
     mysql_select_db("test");
     mysql_query('SET NAMES \'utf8\'');  
     
    $sql = "select * from user a,user b 
    where  a.name='张三' 
    and (  
      a.company=b.company or a.edu=b.edu
    ) " ;$rst = mysql_query($sql) ;
    while($row = mysql_fetch_array($rst)){
    echo "<br /><pre>";
    print_r($row);
    echo "</pre>";
      
    }
    Array
    (
        [0] => 1
        [id] => 1
        [1] => 张三
        [name] => 张三
        [2] => 22
        [age] => 22
        [3] => 男
        [sex] => 男
        [4] => 1966
        [birthday] => 1966
        [5] => ibm
        [company] => ibm
        [6] => 北大
        [edu] => 北大
        [7] => 1
        [8] => 张三
        [9] => 22
        [10] => 男
        [11] => 1966
        [12] => ibm
        [13] => 北大
    )Array
    (
        [0] => 1
        [id] => 2
        [1] => 张三
        [name] => 李四
        [2] => 22
        [age] => 23
        [3] => 男
        [sex] => 男
        [4] => 1966
        [birthday] => 1975
        [5] => ibm
        [company] => aol
        [6] => 北大
        [edu] => 北大
        [7] => 2
        [8] => 李四
        [9] => 23
        [10] => 男
        [11] => 1975
        [12] => aol
        [13] => 北大
    )Array
    (
        [0] => 1
        [id] => 3
        [1] => 张三
        [name] => 王五
        [2] => 22
        [age] => 22
        [3] => 男
        [sex] => 男
        [4] => 1966
        [birthday] => 1968
        [5] => ibm
        [company] => ibm
        [6] => 北大
        [edu] => 北大
        [7] => 3
        [8] => 王五
        [9] => 22
        [10] => 男
        [11] => 1968
        [12] => ibm
        [13] => 北大
    )Array
    (
        [0] => 1
        [id] => 4
        [1] => 张三
        [name] => 李六
        [2] => 22
        [age] => 22
        [3] => 男
        [sex] => 男
        [4] => 1966
        [birthday] => 1964
        [5] => ibm
        [company] => sgi
        [6] => 北大
        [edu] => 北大
        [7] => 4
        [8] => 李六
        [9] => 22
        [10] => 男
        [11] => 1964
        [12] => sgi
        [13] => 北大
    )Array
    (
        [0] => 1
        [id] => 5
        [1] => 张三
        [name] => 赵七
        [2] => 22
        [age] => 22
        [3] => 男
        [sex] => 男
        [4] => 1966
        [birthday] => 1970
        [5] => ibm
        [company] => ibm
        [6] => 北大
        [edu] => 清华
        [7] => 5
        [8] => 赵七
        [9] => 22
        [10] => 男
        [11] => 1970
        [12] => ibm
        [13] => 清华
    )
    $rst = mysql_query($sql) ;
    while($row = mysql_fetch_array($rst)){
    echo "<br /> ";
    echo $row[name].$row[company].$row[edu] ;
      
    }
    张三ibm北大
    李四aol北大
    王五ibm北大
    李六sgi北大
    赵七ibm清华
    非常感谢
      

  6.   


    是没错!怎样从这些数组里取出符合要求的值呢? 
    晕乎乎的.发现上面自己的东西写错了.进一步说如何从这些数组中取出:李四 北大       //与张三 edu           相同
    王五 北大 ibm   //与张三 edu company   相同
    李六 北大       //与张三 edu           相同
    赵七 ibm        //与张三 company       相同谢谢了Array
    (
        [0] => 1
        [id] => 2
        [1] => 张三
        [name] => 李四
        [2] => 22
        [age] => 23
        [3] => 男
        [sex] => 男
        [4] => 1966
        [birthday] => 1975
        [5] => ibm
        [company] => aol
        [6] => 北大
        [edu] => 北大
        [7] => 2
        [8] => 李四
        [9] => 23
        [10] => 男
        [11] => 1975
        [12] => aol
        [13] => 北大
    )Array
    (
        [0] => 1
        [id] => 3
        [1] => 张三
        [name] => 王五
        [2] => 22
        [age] => 22
        [3] => 男
        [sex] => 男
        [4] => 1966
        [birthday] => 1968
        [5] => ibm
        [company] => ibm
        [6] => 北大
        [edu] => 北大
        [7] => 3
        [8] => 王五
        [9] => 22
        [10] => 男
        [11] => 1968
        [12] => ibm
        [13] => 北大
    )Array
    (
        [0] => 1
        [id] => 4
        [1] => 张三
        [name] => 李六
        [2] => 22
        [age] => 22
        [3] => 男
        [sex] => 男
        [4] => 1966
        [birthday] => 1964
        [5] => ibm
        [company] => sgi
        [6] => 北大
        [edu] => 北大
        [7] => 4
        [8] => 李六
        [9] => 22
        [10] => 男
        [11] => 1964
        [12] => sgi
        [13] => 北大
    )Array
    (
        [0] => 1
        [id] => 5
        [1] => 张三
        [name] => 赵七
        [2] => 22
        [age] => 22
        [3] => 男
        [sex] => 男
        [4] => 1966
        [birthday] => 1970
        [5] => ibm
        [company] => ibm
        [6] => 北大
        [edu] => 清华
        [7] => 5
        [8] => 赵七
        [9] => 22
        [10] => 男
        [11] => 1970
        [12] => ibm
        [13] => 清华
    )
      

  7.   

    select *, 
      if(a.company=b.company,'same company',''), 
      if(a.edu=b.edu,'same edu', '')
    from tableX a,tableX b
    where a.name='zhangsan' and (
    a.company=b.company or a.edu=b.edu
    )依次类推