나는 데이터베이스에서 데이터를 가져올 수 있지만 뭔가를 잡으려고 할 때 (이 경우 모든 사용자) 화면에 출력하여 마치 길을 따라 어딘가에 들어가서 아무것도 넣지 않은 것처럼 보이지 않습니다. 그곳에. 내가 필요하다고 생각하는 모든 파일과 수업을 포함했습니다. 미리 감사드립니다.내 PHP 스크립트가 데이터베이스에서 필요로하는 것을 얻지 못하는 이유는 무엇입니까?
//showUsers.php
// Displays a list of all users
// Input: an array of CommentData objects
<?php
function showUsers($userList, $msg) {
echo "<h1>".$msg."</h1>";
foreach ($userList as $user) {
$user->printUser();
//echo $user;
}
echo '<h3><a href="../index.php">Back to home</a>';
}
?>
//usersController.php
<?php
include_once("../views/showUsers.php");
include_once("../models/UserDB.class.php");
include_once("../models/UserData.class.php");
include_once("../models/Database.class.php");
$myUsers = UserDB::getAll();
showUsers($myUsers, "All users");
?>
//UserData.class.php
// Responsibility: Holds data for comment and performs validation
// Constructor expects an associative array with field values for initialization
<?php
class UserData {
private $userId;
private $user;
private $userFirstName;
private $userLastName;
public function __construct($formInput) {
$this->initialize($formInput);
}
public function getUser() {
return $this->user;
}
public function getUserFirstName(){
return $this->userFirstName;
}
public function getUserLastName(){
return $this->userLastName;
}
public function getUserId() {
return $this->userId;
}
public function getParameters() {
// Return data fields as an associative array
$paramArray = array("userId" => $this->userId,
"userFirstName" => $this->userFirstName,
"userLastName" => $this->userLastName
);
return $paramArray;
}
public function printUser() {
echo "<h1>SHIELD Member</h1>";
echo "User first name: $this->userFirstName<br>";
echo "User last name: $this->userLastName<br>";
}
private function initialize($formInput) {
if (isset($formInput['userId']))
$this->userId = $formInput['userId'];
else
$this->userId = 0;
if (isset($formInput['userFirstName']))
$this->userFirstName = $formInput['userFirstName'];
if (isset($formInput['userLastName']))
$this->userLastName = $formInput['userLastName'];
}
}
?>
//UserDB.class.php
// Responsibility: Handles all queries pertaining to comment
<?php
class UserDB {
public static function getAll() {
$query = "SELECT id, first_name, last_name
FROM users
GROUP BY id";
$users = array();
try {
$db = Database::getDB();
$statement = $db->prepare($query);
$statement->execute();
$users = UserDB::getUserArray($statement->fetchAll(PDO::FETCH_ASSOC));
$statement->closeCursor();
} catch (PDOException $e) { // Not permanent error handling
echo "<p>Error getting all users ".$e->getMessage()."</p>";
}
return $users;
}
public static function getUserArray($rowSets) {
$users = array();
foreach ($rowSets as $userRow) {
$user = UserDB::getUser($userRow);
array_push ($users, $user);
}
return $users;
}
public static function getUser($userRow) {
return new UserData ($userRow);
}
}
?>
'$ myUsers = USERDB ::를 getAll();','위해서 var_dump를 추가
이 시도 ($ myUsers);'. 그것은 무엇을 말하는가? – rjdown
아무 것도 페이지에 표시되지 않습니다. 빈 페이지 만 오류가 발생하지 않습니다. – user3491205
더 깊이 파고들 필요가 있습니다. 'UserDB.class.php'의 내용을 게시 할 수 있습니까? – rjdown