Bonjour,
j'ai suivi le tutoriel sur la création d'un portfolio de A à Z, mais l'osque j'arrive sur l'affichage des catégorie j'ai des erreurs qui s'affiche ci-dessous ma page index.php
<?php $auth = 0;
include '../layout/lib/include.php';
include '../layout/lib/image.php';
$condition = '';
$category = false;
if(isset($_GET['category'])){
$slug = $db->quote($_GET['category']);
$select = $db->query("SELECT * FROM categories WHERE slug=$slug");
if(!isset($_GET['slug'])){
header("HTTP/1.1 301 moved Permanently");
Header('Location:' . WEBROOT);
die();
}
$category = $select->fetch();
$condition = "works.category_id={$category['id']}";
}
$works = $db->query("
SELECT works.name, works.id, works.slug, images.name as image_name
FROM works
LEFT JOIN images ON images.id = works.image_id
$condition
")->fetchAll();
$categories = $db->query("SELECT slug, name FROM categories")->fetchAll();
include '../layout/partials/header.php';
?>
<?php if($category):?>
<h1> Mes réalisations <?=$category['name']; ?></h1>
<?php var_dump($category);?>
<?php else: ?>
<h1>Bienvenue sur mon portfolio</h1>
<?php endif; ?>
<div class="row">
<div class="col-sm-8">
<div class="row">
<?php foreach($works as $k => $work): ?>
<div class="col-sm-3">
<a href="/newproject/portfolio/realisation/<?= $work['slug']; ?>">
<img src="/newproject/layout/img/works/<?= resizedName($work['image_name'], 150, 150); ?>" alt="">
<h2><?= $work['name']; ?></h2>
</a>
</div>
<?php endforeach ?>
</div>
</div>
<div class="col-sm-4">
<ul>
<?php foreach($categories as $category): ?>
<li>
<a href="<?= WEBROOT;?>categorie/<?=$category['slug'];?>">
<?= $category['name'];?>
</a>
</li>
<?php endforeach;?>
</ul>
</div>
</div>
</div>
<?php include '../layout/lib/debug.php';?>```
j'ai les erreurs suivantes :
``` Warning: PDO::query(): in C:\wamp\www\newproject\portfolio\index.php on line 26
Fatal error: Call to a member function fetchAll() on a non-object in C:\wamp\www\newproject\portfolio\index.php on line 26
la ligne 26 : $works = $db->query("
SELECT works.name, works.id, works.slug, images.name as image_name
FROM works
LEFT JOIN images ON images.id = works.image_id
$condition
")->fetchAll();
J'ai aussi le probleme sur la redirection lorsque je clique sur une catégorie, cela me redirige malgre que j'ai des images
Merci de votre aide
Cafreunion
Bonjour,
Je pense que l'erreur vient de
$condition = "works.category_id={$category['id']}";
Essaie de le remplacer par le code ci dessous :
$condition = " WHERE works.category_id={$category['id']}";
Bonjour,
Merci pour votre aide, cependant il me reste une problème concernant l'affichage car si je ne neutralise pas une portion du code je peux pas voir la page
$slug = $db->quote($_GET['category']);
$select = $db->query("SELECT * FROM categories WHERE slug=$slug");
if(!isset($_GET['slug'])){
header("HTTP/1.1 301 moved Permanently");
Header('Location:' . WEBROOT);
die();
}```
pourtant j'ai bien une valeur qui est passé dans le GET mais il me redirige malgrès tout
Rebonjour
essaie de remplacer $_GET['slug'] par $_GET['category']
$slug = $db->quote($_GET['category']);
$select = $db->query("SELECT * FROM categories WHERE slug=$slug");
if(!isset($_GET['category'])){
header("HTTP/1.1 301 moved Permanently");
Header('Location:' . WEBROOT);
die();
}
Le but de placer un message en "réponse utile" est que les autres utilisateurs du forum peuvent voir rapidement la solution du sujet. Si tu place ton message de remerciement à cette place, ça n'a pas d'utilité.