Я получаю эту досадную ошибку и еще не смог ее исправить.PHP: Класс не найден
<b>Fatal error: Class 'Console' not found in /home/serellyn/public_html/HEIM/php/nieuwbeheer/console_overview.php on line 45.</b>
Давайте начнем с иерархии, которая выглядит следующим образом.
индекс (главная страница) console_overview (часть страницы) включают/подключить (подключение к БД) включают в себя/console.class (класс)
страницу index.php требует connect.php и тому console.class.php и загружает console_overview.php. Вот код:
<?php
require_once('include/connect.php');
require_once('include/console.class.php');
var_dump(file_exists('include/connect.php'));
var_dump(file_exists('include/console.class.php'));
?>
<div id="mainpage" class="main-container inner">
<?php
if (isset($_GET['page'])) {
$page = $_GET['page'];
} else {
$page = "console_overview";
}
?>
</div>
<!-- end: MAIN CONTAINER -->
<script>
var page = "<?php echo $page;?>";
$("#mainpage").load(page + ".php");
</script>
Я использовал var_dumps, чтобы проверить, существуют ли оба файла (и они это делают). Консоль_overview.php загружается правильно. Теперь в console_overview.php я пытаюсь получить данные из класса Console, следующим образом:
<?php
foreach(Console::getAllConsoles() as $aConsole) {
$consoleID= $aConsole->getID();
$consoleName = $aConsole->getName();
$consoleHostname = $aConsole->getHostname();
$consoleGameID = $aConsole->getGameID();
$consolePowerState = $aConsole->getPowerState();
echo "<tr>";
echo "1";
}
?>
Ошибка я получаю вызван Еогеаспом ... но я не могу узнать, что неправильный ...
Класс консоли выглядит следующим образом (я вставляю наиболее важные части, иначе код будет слишком длинным).
<?php
class Console{
private $ID, $hostname, $mac, $ip, $roomID, $gameID, $register, $powerState, $dateUpdated;
public function Console($tID, $tHostname, $tMac, $tIp, $tRoomID, $tGameID, $tRegister, $tPowerState, $tDateUpdated) {
$this->ID = $tID;
$this->hostname = $tHostname;
$this->mac = $tMac;
$this->ip = $tIp;
$this->roomID = $tRoomID;
$this->gameID = $tGameID;
$this->register = $tRegister;
$this->powerState = $tPowerState;
$this->dateUpdated= $tDateUpdated;
}
...
public static function getAllConsoles() {
$sql = "SELECT * FROM `console` ORDER BY `hostname` ASC";
$result = mysql_query($sql);
$theResults = array();
while ($row = mysql_fetch_array($result)) {
$theResults[] = new Console($row[0],$row[1],$row[2],$row[3],$row[4],$row[5],$row[6],$row[7],$row[8],$row[9],$row[10]);
}
return $theResults;
}
}
?>
Так может ли кто-нибудь понять, в чем проблема? Благодарим вас за помощь.
Редактировать: O и да, я знаю, что MySQL устарел и изменит его, если проблема с поиском консоли не установлена =).
Вы не можете включить файл с яваскрипт и ожидать его чтобы понять, что происходит в PHP. Это два отдельных вызова PHP. Каждый раз, когда вы получаете сайт PHP с сайта (если вы не используете 'require' * внутри * PHP), он создает * новый * запрос к серверу. Вам нужно включить файлы PHP в загружаемые javascript файлы PHP. – h2ooooooo
Боковое примечание: используемые вами функции mysql_ * 'становятся устаревшими и будут удалены из будущих версий PHP. Вы не должны использовать их для написания нового кода. Вместо этого используйте mysqli_ * или PDO. –
Я понял это, и да, Джеральд, спасибо за предупреждение. Я знаю это и нахожусь в моем списке;) – Serellyn