2013-11-28 300 views
0

我是新来的,所以请耐心等待,如果我没有正确的短语的一切。 ;-)PHPMySQL查询数据库与字符串/数组结果问题

我'试图查询数据库。我有一个字符串,可以有1-3固定值,它来自复选框输入窗体的内爆$ _Post [“array”]。价值观是财产以后这样的:

$string   // values (Berlin, New York, Rome) or (Berlin, Rome) ect. 

现在我想要查询每一行(项目)有相同的值的1-3列(场)的数据库。

item1 (New York, Rome) 
item2 (Berlin, New York, Rome) 
item3 (Rome) 

我试着查询这样的:

SELECT * FROM 'table' WHERE 'destination' LIKE '%$string%' 
or 
SELECT * FROM 'table' WHERE 'destination' IN '$string' 

虽然两者在理论上的工作,他们没有让我我想要的结果。这是我想什么从查询有:

如果$字符串有所有3个值,我想显示所有3项(不仅ITEM2)。

如果$字符串有值(罗马),我想显示物品1ITEM2项目3

如果$字符串有值(纽约,柏林)我想显示物品1ITEM2

任何想法如何实现这一目标?

THX很多 勒布

回答

0

好吧!这是我最后做的。 Thx寻求帮助

$query = "select * from table "; 

$query .= "WHERE 
      example1 like '$example1' 
      AND example2 like '%$example2%' AND ("; 
foreach($array as $Filtervalues) 
{ 
    $query .= " example3 like '%".$Filtervalues."%' OR"; 

} 

$query = trim($query, " OR"); 
$query .= ")"; 

$query .= " ORDER BY 
      name 
      "; 
echo $query; 
0

假设你的意思是你的表的列名是目的地,$字符串是从形式的岗位价值,你可以尝试FIND_IN_SET

SELECT * FROM `table` WHERE FIND_IN_SET($string, `destination`); 
0

在这个例子中,我table的列

ID  destination 
1  New York, Rome 
2  Berlin, New York, Rome 
3  Rome 

,并从HTML表单一些输入 - 阵列。 这个作品:

<?php 
$cities=array("Rome", "New York", "Berlin"); // simulation of form input 

foreach($cities as $value): // each city 
    $result=mysql_query("SELECT * FROM `table` WHERE `destination` LIKE '%$value%'"); // find all match records for the city 
    echo "<h3>For city \"$value\" I found in `table` these IDs</h3>"; 
    while($value=mysql_fetch_array($result, MYSQL_NUM)): // fetch SELECT into rows 
    echo "<pre>"; 
    print_r($value[0]); // prints IDs from DB corresponding with city in heading 
    echo "</pre>"; 
    endwhile; 
endforeach; 
?>