2016-04-13 7 views
0

私はphpの複数のフィールドを検索することはできません。 ANDとORの条件は3つの分野では機能していません。複数のフィールド(SQL、PHP)で検索するには?

例:

$string_query = mysql_query ("SELECT * FROM Rock WHERE author ="."'".htmlspecialchars($_POST['search'])."' AND name ="."'".htmlspecialchars($_POST['name'])."' OR god="."'".htmlspecialchars($_POST['god'])."' "); 

あなただけ$_POST['search']$_POST['name']を記入した場合は、検索が成功したが、$_POST['search']$_POST['name']$_POST['god']場合は動作しません。どのようになる?

+0

を求めることができた場合、次のコードがお手伝いしますあなたのSQLにCONCATENATEの概念を使用することができますが、もう少し問題を説明してもらえます。 ? –

+1

inputとresultを持つデータのテーブルなど、 "not working"の例を挙げてください。 HTMLではなくSQLを構築しているので、 'htmlspecialchars'を使わないでください。 ['mysqli_real_escape_string'](http://php.net/manual/en/mysqli.real-escape-string.php)を使用してください。 (古い 'mysql'拡張を使用しないでください; PHPから既に削除されているので廃止予定です。) – Sheepy

+0

あなたの発言をありがとう! –

答えて

2

ねえ、あなたは、任意のクエリは、あなたが

$var=''; 
$_POST['search']='adas'; 
$_POST['name']="ram"; 
$_POST['god']="shankar"; 
$m=2; 
$n=5; 
$c=4; 
if ($m==2) { 
$var.= "author=htmlspecialchars($_POST[search])" ; 
} 
if ($n==5) { 
$var.=" AND name ="."'".htmlspecialchars($_POST['name'])."' " ; 
} 
if ($c==4) { 
$var.=" OR god="."'".htmlspecialchars($_POST['god'])."' " ; 
} 

echo "SELECT * FROM Rock WHERE $var "; 
関連する問題