2014-04-21 65 views
0

約翰5555簡單的子查詢?

南希5555

喬2323

我需要一個簡單的查詢爲例做下面的,所以我可以弄清楚如何 其應用到另一個查詢。謝謝。

Search for "John" 
Returns rows John, Nancy 

Search for "Nancy" 
Returns rows John, Nancy 

Search for "Joe" 
Returns rows Joe 

這是我到目前爲止有:

$query = mysqli_query($connect," SELECT * 
FROM users 
WHERE name like '%$search%' 
    ( SELECT number 
     FROM users 
     WHERE number like number) 
ORDER BY date ASC"); 

回答

1

你可以試試這個:

假設你table

name | number 
John | 5555 
Nancy | 5555 
Joe | 2323 

而這裏的代碼:

<?php 

/* ESTABLISH CONNECTION */ 

$connection=mysqli_connect("YourHost","Username","Password","DatabaseName"); 

if(mysqli_connect_errno()){ 

echo "Error".mysqli_connect_error(); 
} 

if(isset($_POST['submitsearch'])){ /* IF FORM IS SUBMITTED */ 
    $searchname=mysqli_real_escape_string($connection,$_POST['search']); /* PREVENT SOME OF THE SQL INJECTIONS */ 
    $result=mysqli_query($con,"SELECT * FROM table WHERE name='$searchname'"); 
    while($row=mysqli_fetch_array($result)){ 
    $number=mysqli_real_escape_string($connection,$row['number']); /* GET THE RESPECTIVE NUMBER OF THE SEARCHED NAME */ 
    } 


    /* ECHO THE RESULT HERE */ 
    echo "<table>"; 
    $result2=mysqli_query($con,"SELECT * FROM table WHERE number='$number'"); 
    while($row2=mysqli_fetch_array($result)){ /* FETCH ROWS WITH THE SAME NUMBER COLUMN */ 
    echo "<tr><td>".$row2['name']."</td></tr>"; 
    } 
    echo "</table>"; 

} 

/* THIS IS YOUR HTML FORM */ 

echo "<form action='' method='POST'>"; /* SUBMIT ON THE SAME PAGE */ 
echo "search:<input type='text' name='search'>"; 
echo "<input type='text' value='search' name='submitsearch'>"; 
echo "</form>"; 

?> 
+0

太棒了。謝謝,我得到了它的工作。 – user2928884

+0

如果我的答案對您有幫助,您可以點擊我的答案上的接受按鈕:) –

0

如果我不想念你的要求,你的SQL語句應該是這樣的:

$sql ="SELECT * FROM user WHERE name LIKE '%$search%' 
OR number IN(SELECT number FROM user WHERE name LIKE '%$search%') 
ORDER BY Date ASC"; 
$query = mysqli_query($connect,$sql); 

希望這有助於你。

+0

謝謝。這也有幫助。 – user2928884