Php 如何选择包含名字和姓氏的所有结果?
非常具体的问题,我如何从包含名字、中间名和姓氏,仅包含名字和姓氏的Php 如何选择包含名字和姓氏的所有结果?,php,mysql,Php,Mysql,非常具体的问题,我如何从包含名字、中间名和姓氏,仅包含名字和姓氏的$\u会话中进行选择 例如: $\u会话['NET']['USER']['NAME']的输出是'Robert Pasha Biceps' $pdo = new \PDO('mysql:host=localhost;dbname=workflow_teste', 'root', ''); $pdo->setAttribute(\PDO::ATTR_ERRMODE , \PDO::ERRMODE_EXCEPTION); $s
$\u会话
中进行选择
例如:
$\u会话['NET']['USER']['NAME']
的输出是'Robert Pasha Biceps'
$pdo = new \PDO('mysql:host=localhost;dbname=workflow_teste', 'root', '');
$pdo->setAttribute(\PDO::ATTR_ERRMODE , \PDO::ERRMODE_EXCEPTION);
$string = "SELECT * FROM foo WHERE fooname LIKE '".$_SESSION['NET']['USER']['NAME']."' ";
$statement = $pdo->prepare($string);
$statement->execute();
$result = $statement->fetchAll();
$statement->closeCursor();
echo '<pre>';
var_dump($result);
die;
我真正需要的是SELECT
中包含的所有'Robert Biceps'
$pdo = new \PDO('mysql:host=localhost;dbname=workflow_teste', 'root', '');
$pdo->setAttribute(\PDO::ATTR_ERRMODE , \PDO::ERRMODE_EXCEPTION);
$string = "SELECT * FROM foo WHERE fooname LIKE '".$_SESSION['NET']['USER']['NAME']."' ";
$statement = $pdo->prepare($string);
$statement->execute();
$result = $statement->fetchAll();
$statement->closeCursor();
echo '<pre>';
var_dump($result);
die;
$pdo=new\pdo('mysql:host=localhost;dbname=workflow_teste','root','');
$pdo->setAttribute(\pdo::ATTR\u ERRMODE,\pdo::ERRMODE\u异常);
$string=“SELECT*FROM foo WHERE foodname LIKE”“。$\u SESSION['NET']['USER']['NAME'].'”;
$statement=$pdo->prepare($string);
$statement->execute();
$result=$statement->fetchAll();
$statement->closeCursor();
回声';
var_dump($结果);
死亡
var_dump
只显示包含全名的结果,但有些人只提交名字和姓氏,我还需要这些结果
有什么想法吗?您可以在SQL中使用from%:
$array = explode(' ', $_SESSION['NET']['USER']['NAME']);
$fooname = isset($array[0])?$array[0]:""." ". isset($array[2])?$array[2]:"";
使用这种方法,如果使用类型,则名称的每个部分都可以在结果中看到。您可以在SQL中使用from%:
$array = explode(' ', $_SESSION['NET']['USER']['NAME']);
$fooname = isset($array[0])?$array[0]:""." ". isset($array[2])?$array[2]:"";
使用这种方法,如果使用类型,则名称的每个部分都可以在结果中看到。您需要分解您的会话,并根据需要转换它,然后将其传递给查询
$sql = "SELECT * FROM foo WHERE fooname LIKE '%".$fooname."%' ";
并在mysql查询中使用此$fooname
。您的sql如下所示:
$name = explode(' ', $_SESSION['NET']['USER']['NAME']);
$firstname = $name[0];
$lastname = $name[count($name)-1];
$string = "
SELECT *
FROM foo
WHERE
fooname LIKE '".$firstname." % ".$lastname."' OR
fooname = '".$firstname." ".$lastname."'
";
您需要分解您的会话,并根据需要进行转换,然后将其传递给query
$sql = "SELECT * FROM foo WHERE fooname LIKE '%".$fooname."%' ";
并在mysql查询中使用此$fooname
。您的sql如下所示:
$name = explode(' ', $_SESSION['NET']['USER']['NAME']);
$firstname = $name[0];
$lastname = $name[count($name)-1];
$string = "
SELECT *
FROM foo
WHERE
fooname LIKE '".$firstname." % ".$lastname."' OR
fooname = '".$firstname." ".$lastname."'
";
您需要将名称拆分为多个部分,并且只在SQL查询中使用第一部分和最后一部分 从这些行中: 罗伯特·帕夏二头肌
罗伯特二头肌
罗伯特·米德尔name肱二头肌
罗伯特·帕夏
帕夏二头肌
罗伯特·帕夏三头肌
罗伯特其他二头肌
罗伯托·帕夏三头肌 将选择名为“Robert Pasha肱二头肌”的查询 罗伯特·帕夏二头肌
罗伯特二头肌
罗伯特·米德尔name肱二头肌
罗伯特其他二头肌
此外,您应该查找并使用准备好的语句,以防止出现“情况”。您需要将名称拆分为多个部分,并且只在SQL查询中使用第一部分和最后一部分 从这些行中: 罗伯特·帕夏二头肌
罗伯特二头肌
罗伯特·米德尔name肱二头肌
罗伯特·帕夏
帕夏二头肌
罗伯特·帕夏三头肌
罗伯特其他二头肌
罗伯托·帕夏三头肌 将选择名为“Robert Pasha肱二头肌”的查询 罗伯特·帕夏二头肌
罗伯特二头肌
罗伯特·米德尔name肱二头肌
罗伯特其他二头肌
此外,你应该查找并使用事先准备好的陈述,以防止出现“情况”。事情就是这样!但是有些名字有两个以上的位置,所以我需要在这里做一个循环,始终取第一个和最后一个位置,对吗?就是这样!但是有些名字有两个以上的位置,所以我需要在这里做一个循环,始终取第一个和最后一个位置,对吗?