2011-08-25 58 views
2
 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 

现在,我可以很容易地通过名称名称“SAM”表一组一搜索,添加。它显示我像结果,结果显示问题

SAM CA
SAM JK

我使用PHP和MySQL。我想这样做在这一些额外的任务: -
- > TOTALCOUNT为rows..Like
SAM CA 2
SAM JK 1
(我不服用的p_id这里...只专注于名称,添加)

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

+1

您还没有给出任何关于你的php如何与mysql交谈的代码示例。你使用的是什么数据库适配器库? –

回答

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'; 

//重复以前的声明

1

- > TOTALCOUNT为rows..Like

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

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

要选择所有匹配的出现次数,同时寻找一个名字:

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 

相匹配的测试表我在当地的环境的确

+0

假设如果我点击2,那么它应该显示表C中的两个值。现在如何获取这两个链接...我应该使用一个临时表,(在1个查询中获取所有数据并将链接部分保存在临时表)。或别的东西......我很困惑。顺便说一句,谢谢你的总数。 – Gagan

+0

@Gagan np。如果我的回答很有帮助,请考虑向上投票(通过按答案分数上方的向上箭头)。至于你的问题,我不太明白,当你点击2时,你想从表'C'中取得两个匹配的结果? –

+1

老兄我不能upvote你的答案...它需要15(最低)声誉,看看我的分数:P好吧只是离开点击部分..你可以告诉我如何从表中取得最终结果(asdxa和decgf) C,如果输入名称'sam'。 – Gagan