2016-04-13 19 views
0

Birden çok alanı php'de arayamıyorum. AND ve OR koşulları üç alanda çalışmıyor.Birden çok alanda (SQL, PHP) nasıl arama yapılır?

Örnek:

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

sadece $_POST['search'] ve $_POST['name'] doldurmak, arama başarılı olur, ancak $_POST['search'], $_POST['name'] ve $_POST['god'] eğer çalışmıyor. Nasıl Olmalı?

+0

sorarsan Aşağıdaki kod size yardımcı olacaktır sql concatenate yöntemi kullanabilirsiniz. ? –

+1

Girdi ve sonuç içeren bir veri tablosu gibi "çalışmayan" hakkında bir örnek verin. HTML değil, HTML oluşturuyorsunuz, bu yüzden 'htmlspecialchars' kullanmayın. ['Mysqli_real_escape_string'] kullanın (http://php.net/manual/en/mysqli.real-escape-string.php). (Eski 'mysql' uzantısını kullanmayın; PHP'den zaten kaldırılmış olduğu için çok kullanımdan kaldırılmıştır.) – Sheepy

+0

Yorumunuz için teşekkür ederiz! –

cevap

2

hey herhangi bir sorgu sen sorunu biraz daha açıklayabilir misiniz

$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 "; 
İlgili konular