Php 在mysql查询中从数组中选择位置

Php 在mysql查询中从数组中选择位置,php,mysql,arrays,Php,Mysql,Arrays,我试图从mysql查询中的数组中进行选择 result = mysql_query(" SELECT * FROM fruit_db WHERE fruit='".$url."' ") $url已由$\u GET创建并分解为一个数组。例如,它可以是“苹果”或“苹果、香蕉、橘子”。不确定是否重新内爆为字符串 我需要选择“苹果”或“香蕉”或“橙色”,而不是“苹果、香蕉、橙色” 我习惯于计算字符串中的元素,并循环遍历它们,但在mysql查询中不行,我不知道是否有简单的方法。 我试过类似的方法 /*

我试图从mysql查询中的数组中进行选择

result = mysql_query("
SELECT * FROM fruit_db
WHERE fruit='".$url."'
")
$url已由$\u GET创建并分解为一个数组。例如,它可以是“苹果”或“苹果、香蕉、橘子”。不确定是否重新内爆为字符串

我需要选择“苹果”或“香蕉”或“橙色”,而不是“苹果、香蕉、橙色”

我习惯于计算字符串中的元素,并循环遍历它们,但在mysql查询中不行,我不知道是否有简单的方法。 我试过类似的方法

/*    
    result = mysql_query("
    SELECT * FROM fruit_db
    WHERE fruit='".$url[0]."'
    OR  fruit='".$url[1]."'
    // etc
    ")
*/

但是我不知道会有多少元素

在中尝试使用
,使用数组
$url
的内爆

$sql = "SELECT * FROM fruit_db WHERE fruit IN (".implode(',',$url).")";
确保
$url
是一个数组

并尽量避免使用
mysql\u*
语句,因为整个
ext/mysql PHP
扩展提供了所有以前缀
mysql\u*
命名的函数,从
phpv5.5.0
开始正式弃用,并将在将来删除


您可以更好地使用另外两个
MySQL
扩展:
MySQLi
PDO_-MySQL
,这两个扩展都可以用来代替
ext/MySQL

中使用
,并对数组
$url
进行内爆

$sql = "SELECT * FROM fruit_db WHERE fruit IN (".implode(',',$url).")";
"SELECT * FROM fruit_db WHERE fruit IN ('".implode("','", $url)."')";
确保
$url
是一个数组

并尽量避免使用
mysql\u*
语句,因为整个
ext/mysql PHP
扩展提供了所有以前缀
mysql\u*
命名的函数,从
phpv5.5.0
开始正式弃用,并将在将来删除

您可以更好地使用另外两个
MySQL
扩展:
MySQLi
PDO_-MySQL
,这两个扩展都可以用来代替
ext/MySQL

"SELECT * FROM fruit_db WHERE fruit IN ('".implode("','", $url)."')";
假设您的
$url=array('apple','banana','orange')

那么sql将是:

SELECT * FROM fruit_db WHERE fruit IN ('apple','banana','orange')
假设您的
$url=array('apple','banana','orange')

那么sql将是:

SELECT * FROM fruit_db WHERE fruit IN ('apple','banana','orange')
你可以用

从表_name中选择列_name,其中列_name位于(“1”、“2”)

您可以使用

从表_name中选择列_name,其中列_name位于(“1”、“2”)

试试这个

$url=explode(",",$_GET['fruit']);

foreach($url as $fr){
  $result = mysql_query("
  SELECT * FROM fruit_db
  WHERE fruit='".$fr."'
  ")
}
试试这个

$url=explode(",",$_GET['fruit']);

foreach($url as $fr){
  $result = mysql_query("
  SELECT * FROM fruit_db
  WHERE fruit='".$fr."'
  ")
}

您应该在
中使用
。你不应该再使用
myqsl.*
函数了。我想说的是使用IN运算符你应该在
中使用
。而且你不应该再使用
myqsl.*
函数了。我想说的是使用IN运算符也可以。一旦一切正常,我将替换不推荐的语法,谢谢。我是否简单地用“MySQLi”或“PDO_-mysql”替换“mysql_查询”?它们是否返回相同类型的资源?是的,可能需要一些额外的配置,以便在mysqli_*中设置连接,并且您可以再次使用,您可以击败我。一旦一切正常,我将替换不推荐的语法,谢谢。我是否简单地用“MySQLi”或“PDO_-mysql”替换“mysql_查询”?他们是否返回相同类型的资源?是的,可能需要一些额外的配置,以便在mysqli_*中设置连接,您可以再次使用,您击败了我,这是我以前拥有的,谁投了反对票,谁能解释为什么它不好?这是我以前拥有的,谁投了反对票,谁能解释为什么它不好?