对如何从返回一组特定值的查询中获取另一行感到困惑


confused on how to get another row from a query that's returning a specific set of values

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

在下面的代码段中,用户开始在字段中键入零件号,系统从数据库的quotePartNumber字段中返回与他们正在键入的内容相似的任何值。

$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>';
}

这非常有效...我已经玩了大约两个小时的代码,试图弄清楚如何让它也拉supplier字段,这也是在同一张表中。

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

有什么想法吗?

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

$sql = "SELECT DISTINCT quotePartNumber, supplier from allparts where quotePartNumber LIKE (:keyword) LIMIT 0,10";

然后,您可以通过更新 echo 语句来显示它。

 echo '<li onclick="set_mainPartNumber('''.str_replace("'", "''", $rs['quotePartNumber']).''')">'.$country_name.' - '.$rs['supplier'].'</li>';