我正在构建一个小型电子商务网站,我想显示评论,并且想要为人员创建屏幕名称(名字的第一个字母连接到姓氏上) ,但我无法弄清楚如何从我的客户表中获取信息。让我告诉你,我这样做的远代码:
根据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