2014-12-19 96 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