Bonjour à tous et à toutes,
Voila je rencontre un petit problème avec mon code.
Je souhaite afficher un cours que se trouve dans ma base de donné,
voici toutes les photos la concernant :
https://drive.google.com/file/d/0B33fxm0r0DabWEpCVEViQ3NSUU0/view?usp=sharing
https://drive.google.com/file/d/0B33fxm0r0DabdmpUYmRWSXFIRWM/view?usp=sharing
https://drive.google.com/file/d/0B33fxm0r0DabNDR3Z0U2QUZmN2M/view?usp=sharing
Et voici mon code j'ai réparti de la façon suivante mon code : j'ai un dossier contenant mon site avec un dossier page et fonction contenant respetivement les pages courses.php,course.php et dans l'autre la page course.func.php, une image : https://drive.google.com/file/d/0B33fxm0r0DabR1N3Nk9yS09DS3c/view?usp=sharing
Dans la page courses.php on voit toutes les cours mais pas le détail et course.php on doit voir le cours en entier c'est à dire toutes les informations
Voici le code de courses.php
<!-- En dessous se trouve le code pour la description-->
<h5>Nos cours</h5>
<hr>
<div class="row">
<?php
require "functions/course.func.php";
$courses = get_courses();
foreach($courses as $course) {
?>
<div class="col l4 m4 s4">
<div class="card activator">
<div class="card-image waves-effect waves-block waves-light activator">
<h5 class="grey-text text-darken-2 ">
<?=$course->title?> <a href="index.php?page=course&id=<?=$course->id?>"> <i class="material-icons right">zoom_in</i></a
</h5>
<img src="img/posts/post.png" class="activator" alt="post"/>
</div>
<div class="card-reveal">
<span class="card-title grey-text text-darken-4">Cours <i
class="material-icons right">close</i></span>
<p>
<?=substr(nl2br($course->content),0,1000);?>...
</p>
</div>
</div>
</div>
<?php
}
?>
</div>
Voici le code de course.php
<?php
$course = get_course();
if($course == false){
header("Location:index.php?page=error");
}else{
?>
</div>
<div class="parallax-container">
<div class="parallax">
<img src="img/posts/<?= $course->image ?>" alt="<?= $course->title ?>"/>
</div>
</div>
<div class="container">
<h2><?= $course->title ?></h2>
<h6>Par <?= $course->name ?> le <?= date("d/m/Y à H:i", strtotime($course->date)) ?></h6>
<p><?= nl2br($course->content); ?></p>
<?php
}
?>
Voici le code de course.func.php
<?php
function get_courses(){
global $db;
$req = $db->query("
SELECT course.id,
course.title,
course.image,
course.date,
course.content,
admins.name
FROM course
JOIN admins
ON course.writer=admins.email
WHERE posted='1'
ORDER BY date DESC
");
$results = array();
while($rows = $req->fetchObject()){
$results[] = $rows;
}
return $results;
}
function get_course(){
global $db;
$req = $db->query("
SELECT course.id,
course.title,
course.image,
course.date,
course.content,
admins.name
FROM course
JOIN admins
ON course.writer=admins.email
WHERE course.id='{$_GET['id']}'
AND course.posted = '1'
ORDER BY date DESC
");
$results = array();
while($rows = $req->fetchObject()){
$results[] = $rows;
}
return $results;
}
J'aimerais que le code fonctionne, cela fait une semaine que je cherche et/ou que je retarde le problème mais je ne comprends pas mon erreur.
L'erreur que j'obiens est la suivante :
https://drive.google.com/file/d/0B33fxm0r0DabaU1pQ2VsR0kwdk0/view?usp=sharing
https://drive.google.com/file/d/0B33fxm0r0DabdkxmbnExUnlaODg/view?usp=sharing
https://drive.google.com/file/d/0B33fxm0r0DabUWZkbU9hdEhPMUE/view?usp=sharing
Merci d'avance si vous avez des questions n'hésitez pas :)
Bonjour.
C'est normal que tu aies ces erreurs, étant donné que tu modifies l'objet en array avant de le retourner et que tu cherches à utiliser un objet sur un array.
Je ne comprends d'ailleurs pas pourquoi tu fais un while
dans chacune des deux fonctions avant de retourner les enregistrements.
Fais tout simplement par exemple :
function get_courses(){
global $db;
$req = $db->query("
SELECT course.id,
course.title,
course.image,
course.date,
course.content,
admins.name
FROM course
JOIN admins
ON course.writer=admins.email
WHERE posted='1'
ORDER BY date DESC
");
return $req->fetchObject();
}