php和mysql中的结果显示问题

时间:2011-08-25 07:32:06

标签: php mysql sql

        A                   B                   C

P_id | name | add     P_id  |  t_id        t_id |  paper  
-----------------     --------------     ------------------ 
  1   sam    ca         1        1           1      asdxa  
  2   john   de         2        1           2      dgfv  
  3   sam    jk         3        2           3      decgf  
  4   sam    ca         4        3           4      ergvtr

现在,我可以轻松地按名称搜索表A组中的名称“ sam ”,添加。它显示了我的结果,

sam ca
sam jk

我正在使用php和mysql。我想在此做一些额外的任务: -     - >行的总计数。就像       sam ca 2
      sam jk 1
(我不是在这里接受P_id ......只关注名称并添加。)

- >在 2和1 (上方)上建立链接。所以,如果我点击它。它应该在表C 的另一个html页面上显示相关论文。      例如:如果我点击 2 ...那么它应该显示 asdxa和decgf

2 个答案:

答案 0 :(得分:1)

  

- >行的总计数。就像

SELECT `name`, `add`, count(`add`) FROM `A` WHERE (`name` = 'sam') GROUP BY `add`;

对于链接,您只需链接到具有该ID的页面,并让您的php脚本从C表中的给定ID获取数据。

在搜索名称时选择所有匹配的出现次数:

SELECT  `A`.`name` AS name,  `A`.`P_id` AS aid,  `C`.`t_id` AS cid,  `C`.`paper` AS paper
FROM  `A` , `C` 
WHERE (
    `A`.`name` =  'sam'
)
AND (
    `A`.`P_id` =  `C`.`t_id`
)

结果:

name    aid cid paper
sam     1   1   qwertyui
sam     3   3   zxcvbn
sam     4   4   uytrewq
sam     5   5   hfdsa

这与我在本地环境中所做的测试表相匹配

答案 1 :(得分:0)

尝试用于第一项任务

$pdo = new PDO(....);
$result = $pdo->query('SELECT name, add, count(*) from table where name='sam' group by add;')->fetchAll();
if ($result) {
    foreach($result as $row) {
         ......
    }
}
//second
$sql = 'select paper from tableA a inner join TableB b on a.P_id=b.P_id inner join Tablec  c inner join b.t_id = c.t_id where a.p_id=2';

//重复以前的陈述