Ich baue eine kleine E-Commerce-Website, und ich möchte die Bewertungen anzeigen, und ich möchte Bildschirmnamen für Personen erstellen (erster Buchstabe des Vornamens auf den Nachnamen verkettet) , aber ich kann nicht herausfinden, wie ich die Informationen aus meiner Client-Tabelle bekomme. Lassen Sie mich Ihnen den Code, den ich bisher getan habe:
Erhalte Daten aus verschiedenen Tabellen basierend auf der 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;
}
Wie Sie sehen, ich bin die clientId (eine Zahl) anzeigt, das nicht das, was ich will, und das ist jetzt, wo ich Ich stecke fest. Ich habe die Beziehung zwischen den zwei Tabellen (Kunden und Bewertungen) eingerichtet, aber ich kann nicht herausfinden, wie man die Daten bekommt. Hier ist die Funktion, die ich zu schreiben versucht, aber es hat nicht funktioniert:
// 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;
}
Und ich verstehe, dass dies nicht funktioniert, weil es nichts Passieren der $clientId
Parameter an die Funktion, aber das ist auch enthalten in das $tn[]
Array, so muss es eine Möglichkeit geben, dass ich die $clientId
aus dem Array $tn[]
nehmen und die Datenbank nach dem Vor- und Nachnamen abfragen kann, aber ich kann nicht herausfinden, wie.
Können Sie 'getUsername ($ review ['clientId'])' 'nicht? – Barmar
@Barmar Ich versuchte das und PHP mochte nicht das [] innerhalb der Funktion Klammer –
Es gibt kein Problem mit Array-Zugriffen in Funktionsargumente, es ist die ganze Zeit getan. Du musst etwas falsch gemacht haben. – Barmar