Php 困惑于如何从返回特定值集的查询中获取另一行

Php 困惑于如何从返回特定值集的查询中获取另一行,php,mysql,pdo,Php,Mysql,Pdo,我下载了一些使用PDO的代码,我不太熟悉——我通常使用mysqli_uu语句,但我也在尝试学习如何使用PDO 在下面的代码中,用户开始在字段中键入零件号,系统将从数据库的squotePartNumberfield返回任何值,就像他们正在键入的值一样 $keyword = '%'.$_POST['keyword'].'%'; $sql = "SELECT DISTINCT quotePartNumber from allparts where quotePartNumbe

我下载了一些使用PDO的代码,我不太熟悉——我通常使用mysqli_uu语句,但我也在尝试学习如何使用PDO

在下面的代码中,用户开始在字段中键入零件号,系统将从数据库的squotePartNumberfield返回任何值,就像他们正在键入的值一样

$keyword = '%'.$_POST['keyword'].'%';
$sql              = "SELECT DISTINCT quotePartNumber from allparts where quotePartNumber LIKE (:keyword) LIMIT 0,10";

$query = $pdo->prepare($sql);
$query->bindParam(':keyword', $keyword, PDO::PARAM_STR);
$query->execute();
$list = $query->fetchAll();
foreach ($list as $rs) {
    // put in bold the written text 
  $country_name = str_replace(strtoupper($_POST['keyword']), '<b>'.$_POST['keyword'].'</b>', $rs['quotePartNumber']);

    // add new option
    echo '<li onclick="set_mainPartNumber(\''.str_replace("'", "\'", $rs['quotePartNumber']).'\')">'.$country_name.'</li>';
}
这个很好用。。。我已经花了大约两个小时来研究代码,试图弄清楚如何让它也拉fieldsupplier,它也在同一张表中

当用户开始输入零件号时,我还希望返回与该行零件号匹配的供应商。但是我不知道怎么做


有什么想法吗?

它应该像更改select语句一样简单

$sql = "SELECT DISTINCT quotePartNumber, supplier from allparts where quotePartNumber LIKE (:keyword) LIMIT 0,10";
 echo '<li onclick="set_mainPartNumber(\''.str_replace("'", "\'", $rs['quotePartNumber']).'\')">'.$country_name.' - '.$rs['supplier'].'</li>';
然后可以通过更新echo语句来显示它

$sql = "SELECT DISTINCT quotePartNumber, supplier from allparts where quotePartNumber LIKE (:keyword) LIMIT 0,10";
 echo '<li onclick="set_mainPartNumber(\''.str_replace("'", "\'", $rs['quotePartNumber']).'\')">'.$country_name.' - '.$rs['supplier'].'</li>';

删除Distinct并将supplier添加到字段列表中?您可以去掉Distinct函数,使用类似组B的功能,例如选择supplier,通过QuotePartNumberyEAH从allparts组中选择quotePartNumber-将supplier添加到字段列表部分,我不知道如何做……@Peter我对此感到困惑。。。我需要使用distinct,因为同一个零件号可能有多个实例,所以我只想将每个实例显示一次——或者当有人键入a时,他们可能会获得相同的零件号10次,而不是10个不同的零件号,这些零件号中都有a。为什么我不能从返回的“quotePartNumber”字段中获取相应的“supplier”字段?对此很抱歉,我想我的评论太快了。如下所示,您只需将必填字段添加到查询中即可。完美-这正是我所需要的。。。。我试着用一种更复杂的方式来做这件事!非常感谢你。