2014-04-21 69 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