2012-10-19 159 views
1

我目前正在爲我的網站開發一個非常簡單的搜索功能。用戶鍵入他們的搜索查詢,然後他們被帶到顯示結果的頁面。就我而言,用戶正在搜索其他用戶。我的問題是,我如何將一個字符串分成兩個變量?用PHP分隔字符串

實例查詢:

馬特·莫里斯

我想我的PHP到空間發生串分開。我怎樣才能做到這一點?

<html> 
    <form method="get" action="results.php"> 
     <input type="text" name="search"/> 
    </form> 

</html> 

<?php 

    // code to explode the string into $fname and $lname 
     if there is a space present 

$fname= Matt 
$lname= Morris 

if (isset($fname) && isset($lname)) { 
$search_query= "SELECT * FROM users WHERE fname LIKE %'".$fname."'% AND lname LIKE 
%'".$lname."'%"; 
// code to run the query and display results 
} 
else if (isset($fname)) { 
$search_query= "SELECT * FROM users WHERE fname LIKE %'".$fname."'%"; 
// code to run the query and display results 
} 
else if (isset($lname)) { 
$search_query= "SELECT * FROM users WHERE lname LIKE %'".$lname."'%"; 
// code to run the query and display results 
} 

?> 

感謝

+0

你必須警惕爆炸的字符串,並期望獲得fname/lname,有些人的姓氏中有空格(有時是第一個)。 – Brian

+1

作爲一個瞭解你沒有清理任何東西的精明用戶,我只需輸入'Matt%Moris'作爲搜索詞。 – mario

+0

輸入是做什麼的?我用mysql_real_escape_string()是好還是過時? – user1759682

回答

6

你可以做這樣的:

list($first, $last) = explode($name, ' ', 2); 
2

$array = explode(' ', $string);

3

您可以使用PHP函數爆炸 http://php.net/manual/en/function.explode.php

// Example 1 
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6"; 
$pieces = explode(" ", $pizza); 
echo $pieces[0]; // piece1 
echo $pieces[1]; // piece2