Проблема возникла с выводом данных из базы данных mysql.
Есть два метода в ClassModel (MVC) . Первый выводит все категории полностью второй по категориям. Не работает второй метод (selectByName($parametr)) . Подскажите ошыбку. Заранее спасибо.
Вот код
Модель
class ClassModel
{
static public function selectAll()
{
$image = array();
$sql = "SELECT * FROM `pageimage`";
$result = DataBase::connectDB()->query($sql);
$i = 0;
while($row = $result->fetch_assoc())
{
$image[$i]["image"] = $row["image"];
$image[$i]["keywords"] = $row["keywords"];
$i++;
}
return $image;
}
static public function selectByName($parametr)
{
$parametr = is_string($parametr);
if ($parametr)
{
$prepare = DataBase::connectDB()->prepare("SELECT keywords FROM pageimage WHERE keywords= ?");
$prepare->bind_param("s" , $parametr);
$prepare->execute();
$prepare->bind_result($image);
$prepare->fetch();
return $image;
}
}
}
Контроллр
class PageController
{
function __construct()
{
$image = array();
$image = ClassModel::selectAll();
require_once("view/index.php");
}
public function actionCategory($parametr = false)
{
$parametr = ClassModel::selectByName($parametr);
}
}
Вид
<div class="category-navigation">
<?php foreach($image as $keywords){ ?>
<a href="/freetemplate/<?php print "category/" .$keywords["keywords"]; ?>" class="cat"><?php print $keywords["keywords"]; ?></a>
<?php } ?>
</div>
<div class="row category-item">
<div class="category-wrapping">
<?php foreach($image as $key){ ?>
<div class="category-container">
<img src="/template/images/<?php print $key["image"]; ?>">
</div>
<?php } ?>
<?php if($parametr){ ?>
<div class="category-container">
<img src="/template/images/<?php print $parametr; ?>">
</div>
<?php } ?>
</div>
</div>
selectByNameклассаClassModelприходит$parametr, но строчкой ниже вы его переопределяете как булево значение. Вероятнее всего должно быть не так$parametr = is_string($parametr);, а так хотя бы вот так$parametr = (string) $parametr;– Apr 26 '19 at 12:57