2014-12-19 95 views
0

的functions.php栏只选择第一行

function getfriendone($id, $field){ 
$query = mysql_query("SELECT `$field` FROM `friends` WHERE `user_one`='$id'"); 
$run = mysql_fetch_array($query); 
return $run[$field]; 
} 

function getfriendtwo($id, $field){ 
$query = mysql_query("SELECT `$field` FROM `friends` WHERE `user_two`='$id'"); 
$run = mysql_fetch_array($query); 
return $run[$field]; 
} 

的index.php

$fetch_friends = $_SESSION['user_id']; 
$two = getfriendone($fetch_friends, 'user_two'); 
$three = getfriendtwo($fetch_friends, 'user_one'); 

$result = mysql_query("SELECT * FROM posts WHERE id IN ('$two', '$three')"); 
echo $two." | ".$three; 

表(朋友)的getfriend功能

ID user_one user_two 
1  1   2 
2  1   3 
3  4   1 

表(岗位)为$结果

ID TEXT NAME 
1  Hello Bob 
1  Hello Bob 
2  Hello Mark 

我想做的事这里是所有呼应,在两个user_one和user_two中有数字1的行。在我的追逐中,只有身份证1和3会在这里回应。它挑选第一场比赛,并只回应那一场。它的工作原理,因为它应该,但只列

+0

不使用mysql_改用mysqli_或PDO – Rasel 2014-12-19 11:32:17

+0

的mysql_query功能和MySQL *功能可从当前最新的PHP版本删除了所有弃用的含义。所以你最好不要用来避免问题。你的代码也倾向于sql注入。刚说 – Mubo 2014-12-19 11:36:58

回答

1

的第一场比赛。如果我正确读取:

SELECT * 
FROM posts s 
WHERE 
EXISTS 
(SELECT 1 FROM posts s2 WHERE s.id = s2.user_one) OR 
(SELECT 1 FROM posts s2 WHERE s.id = s2.user_two) 

将提取数据,需要

SQLFiddle - >http://sqlfiddle.com/#!2/9ae070/3/0