我正在構建一個小型電子商務網站,我想顯示評論,並且想要爲人員創建屏幕名稱(名字的第一個字母連接到姓氏上) ,但我無法弄清楚如何從我的客戶表中獲取信息。讓我告訴你,我這樣做的遠代碼:
根據Id從不同表格獲取數據
$invId = filter_input(INPUT_GET, 'invId', FILTER_SANITIZE_NUMBER_INT); // this is taken from a name value pair from the view
// Gets the raw data from the database
function getProRev($invId){
$db = acmeConnect();
$sql = "SELECT * FROM reviews WHERE invId = :invId ORDER BY reviewId DESC";
$stmt = $db->prepare($sql);
$stmt->bindValue(':invId', $invId, PDO::PARAM_STR);
$stmt->execute();
$tn = $stmt->fetchAll();
$stmt->closeCursor();
return $tn;
}
// Builds the simple review display
function buildReviewDisplay($reviews){
$rd = "<div id='reviewView'>";
foreach ($reviews as $review){
$rd .= "<h2>$review[clientId]</h2>";
$rd .= "<h3>$review[reviewDate]</h3>";
$rd .= "<p>$review[reviewText]</p>";
$rd .= "<hr>";
}
$rd .= "</div>";
return $rd;
}
正如你所看到的,我顯示的clientId(數字),這是不是我想要的,現在這就是我米卡住了。我建立了兩個表格(客戶端和評論)之間的關係,但我無法弄清楚如何獲取數據。下面是我試着寫的功能,但它沒有工作:
// Trying to get the dang client info
function getUsername($clientId){
$db = acmeConnect();
$sql = "SELECT * FROM clients WHERE clientId = :clientId";
$stmt = $db->prepare($sql);
$stmt->bindValue(':clientId', $clientId, PDO::PARAM_STR);
$stmt->execute();
$cd = $stmt->fetchAll();
$stmt->closeCursor();
$fletter = substr($cd['clientFirstname'], 0, 1);
$scrnam = $fletter . $cd['clientLastname'];
return $scrnam;
}
,我明白,這並沒有工作,因爲沒有什麼傳遞$clientId
參數的功能,而是包含在$tn[]
數組,因此必須有一種方法可以從$tn[]
數組中取出$clientId
並查詢數據庫中的姓和名,但我無法弄清楚。
難道你不能'getUsername($ review ['clientId'])'? – Barmar
@Barmar我試過了,PHP不喜歡函數括號裏面的[] –
函數參數中的數組訪問沒有問題,它一直在做。你一定做錯了什麼。 – Barmar