簡體   English   中英

獲取多個列

[英]Fetch more than one column

當您輸入單詞部分時,我創建了一個自動完成的字段。 它使用mysql PDO進行查詢。 我的要求是以患者的姓氏為准。 它運作良好。

現在,我想在姓氏后面顯示姓氏。

我的功能如下:

function searchForKeyword($keyword) {
    $db = connect();
    $stmt = $db->prepare("SELECT lastname_patient, firstname_patient FROM `patients` WHERE lastname_patient LIKE ? ORDER BY lastname_patient");

    $keyword = $keyword . '%';
    $stmt->bindParam(1, $keyword, PDO::PARAM_STR, 100);

    $isQueryOk = $stmt->execute();

    $results = array();

    if ($isQueryOk) {
      $results =$stmt->fetchAll(PDO::FETCH_COLUMN);
    } else {
      trigger_error('Error executing statement.', E_USER_ERROR);
    }

    $db = null; 

    return $results;
}

我認為問題在於此行$results =$stmt->fetchAll(PDO::FETCH_COLUMN); 它僅獲取一列。

如何將其更改為以患者的姓氏顯示患者的名字? (按姓氏搜索)

嘗試
fetchall(PDO :: FETCH_ASSOC)而不是fetchAll(PDO :: FETCH_COLUMN)。

PDO :: FETCH_ASSOC將在一個關聯數組中為您提供所有想要的結果。

一次執行一次提取更為有效。

$results = array();
if ($isQueryOk) {
      while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        array_push($result, $row['lastname_patient'].' '.$row['firstname_patient']);
      }
} else {
      trigger_error('Error executing statement.', E_USER_ERROR);
}

在查詢中使用CONCAT:

SELECT CONCAT(lastname_patient, ', ', firstname_patient) as fullname 
FROM patients
WHERE lastname_patient LIKE ? 
ORDER BY lastname_patient

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM