Я создал представление в MySQL, которое хочу перебирать и удалять строки, если выполняются определенные условия. Он использует шаблонизатор Smarty.
Код представления SQL хорош. Я неоднократно запускал его и знаю, что он работает.
Однако при попытке использовать его в PHP он возвращает пустой массив. Я не понимаю, почему.
У меня есть класс, контроллер и шаблон. Я использовал класс и контроллер на нескольких других страницах с кодом SQL без проблем. Проблема возникает только при использовании VIEW вместо обычной команды выбора.
Vardump в коде php показывает пустой массив.
--- gameview.class.php
<?php
class gameView
{
protected $Conn;
public function __construct($Conn)
{
$this->Conn = $Conn;
}
public function createGameView()
{
$drop = "DROP VIEW if EXISTS gameview;";
$stmt = $this->Conn->prepare($drop);
$stmt ->execute(array());
$query = "CREATE VIEW gameview AS SELECT id, name, image, quote FROM person;";
$stmt = $this->Conn->prepare($query);
$stmt->execute(array());
$gameView = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $gameView;
}
}
?>
--- gameView.php
<?php
$gameView = new gameView($Conn);
$finalCharacter = $gameView->createGameView();
var_dump($finalCharacter);
exit();
$smarty->assign('game_view', $finalCharacter);
?>
gameView.tpl
{extends file="layouts/main.tpl"}
{block name="body"}
<div class="text-center">
<div class="css-selector">
<h1 class="custom"> The Force is STRONG with me!!!</h1>
<h1 class="custom">The character that you selected was...</h1>
</div>
</div>
{foreach from=$game_view item=finalCharacter}
<div class="col-md-4"></div>
<div class="col-md-4">
<div class="card">
<div class="text-center">
<img class="card-img-top" src="{$finalCharacter.image}" alt="Final Character">
<div class="card-body">
<div class="card css-selector bg-dark">
<h5 class="card-title">{$finalCharacter.p_name}</h5>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4"></div>
<div class="text-center">
<p class="custom">{$finalCharacter.quote}</p>
</div>
{/foreach}
<div class="text-center">
<div class="css-selector">
<h1 class="custom">WAS I CORRECT?</h1>
</div>
</div>
<div class="row">
<div class="col-md-4"></div>
<div class="col-md-4">
<div class="text-center">
<a class="btn btn-success" href="index.php?p=success">Yes</a>
<a class="btn btn-danger" href="mailto:S199289@uos.ac.uk?subject=I chose 'character name' but the JMR predicted 'character name'!">
No</a>
<a class="btn btn-warning" href="index.php?p=characterchoose">Try Again?</a>
</div>
</div>
<div class="col-md-4"></div>
</div>
{/block}