gpt4 book ai didi

php - preg_将姓名和标题与数据库中的信息进行匹配

转载 作者:行者123 更新时间:2023-11-29 12:38:36 27 4
gpt4 key购买 nike

我正在尝试制作一个脚本来获取有关 DJ 的信息。我想要做的是将 DJ 标题与表中的 DJ 名称相匹配。如果 dj 名称存在,那么我想选择该行并使用该信息。

我首先要做的是在数组中创建一个 DJ 列表,然后我想将其与标题匹配,如果有匹配,我想获取信息。

我现在的脚本是:

$ps = $this->db->prepare("SELECT djname FROM `djcrew`");
$ps->setFetchMode(PDO::FETCH_ASSOC);
$ps->execute();
$selectit = $ps->fetchALL();
$result01 = preg_match('/'.$selectit.'/', $servertitle, $matches);
$ps01 = $this->db->prepare('SELECT * FROM `djcrew` WHERE `djname` = :djname');
$ps01->bindParam(':djname', $matches[0], PDO::PARAM_STR);
$ps01->setFetchMode(PDO::FETCH_ASSOC);
$ps01->execute();
$data01 = $ps01->fetchAll();

问题是我现在遇到的问题是我得到了数组到字符串转换的错误selectit 的输出是:

Array
(
[0] => Array
(
[djname] => test04
)

[1] => Array
(
[djname] => test03
)

[2] => Array
(
[djname] => test02
)

[3] => Array
(
[djname] => Test01
)

)

我已经尝试了很多东西,但我无法让它工作。

[编辑]添加mysql表。

mysql表转储

CREATE TABLE IF NOT EXISTS `djcrew` (
`id` int(11) NOT NULL,
`djname` varchar(48) NOT NULL DEFAULT '',
`name` varchar(48) NOT NULL DEFAULT '',
`hobbies` varchar(48) NOT NULL DEFAULT '',
`other` text NOT NULL,
`facebook` varchar(48) NOT NULL DEFAULT '',
`twitter` varchar(48) NOT NULL DEFAULT '',
`request` varchar(2) NOT NULL DEFAULT '1',
`picname` varchar(32) NOT NULL DEFAULT '',
`active` varchar(32) NOT NULL DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

INSERT INTO `djcrew` (`id`, `djname`, `name`, `hobbies`, `other`, `facebook`, `twitter`, `request`, `picname`, `active`) VALUES
(1, 'Test01', 'Test - DJ', '', '', '', '', '1', 'test01', '0'),
(2, 'Test02', 'Testing - DJ', '', '', '', '', '1', 'test02', '1'),

我想要得到的是 djname = .. name = .. picname = ..

$arr = array('djname' => $data01['djname'], 'name' => $data01['username'], 'picname' => $data01['picname']);

最佳答案

如果这仍然是相同的问题,我想我已经找到了您最初问题的答案

$ps = $this->db->prepare("SELECT djname FROM `djcrew`");
$ps->execute();
$selectit = $ps->fetchALL(PDO::FETCH_ASSOC);

$djs= array();

foreach($selectit as $row) {
$djs[] = $row['djname'];
}

if(in_array($servertitle, $djs) {
$sql = 'SELECT * FROM djcrew WHERE djname IN ("' . implode('", "', $djs) . '")';

$stmt = $db->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll();
}

或者如果$servertitle是一个数组

if(array_intersect($servertitle), $djs)) {
$sql = 'SELECT * FROM djcrew WHERE djname IN ("' . implode('", "', $djs) . '")';

$stmt = $db->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll();
}

关于php - preg_将姓名和标题与数据库中的信息进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26424886/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com