louislepro62
Messages postés1Date d'inscriptionmercredi 23 juillet 2014StatutMembreDernière intervention23 juillet 2014
-
Modifié par louislepro62 le 23/07/2014 à 21:32
Utilisateur anonyme -
24 juil. 2014 à 00:18
Bonjour,
je suis débutant en PHP et j'ai voulu essayer de créer un site WEB ou je pourrais poster mes photos depuis une base de données SQL (en indiquant le lien de la photo dans une entrée.)
mon (début de) site est réalisé selon l'architecture MVC (du moins j'essaye ^^) j'ai créé une base de donnée avec PHP My Admin avec le nom "bdd_1" et elle contient une table appelée "posts"
voici mon code :
/ fichier "connexion_sql.php" du répertoire modèle
<?php
try
{
$bdd = new PDO('mysql:host=localhost; dbname=bdd_1', 'root', '');
}
catch(Exeption $e)
{
die ('Erreur : ' . $e->getMessage());
}
print_r($bdd);
//fin
//fichier "get_posts.php" contenant la fonction get_posts dans le répertoire modèle
<?php
function get_posts($offset, $limit)
{
global $bdd;
$offset = (int) $offset;
$limit = (int) $limit;
$req = $bdd->prepare('SELECT id, titre, lien, commentaires,
proprietaire, vote_pos, vote_neg, description,
DATE_FORMAT(date_creation, \'%d/%m/%Y à %Hh %imin %ss\')
AS date_creation_fr FROM posts
ORDER BY date_creation DESC LIMIT :offset, :limit');
$req -> bindParam(':offset', $offset, PDO::PARAM_INT);
$req -> bindParam(':limit', $limit, PDO::PARAM_INT);
$req -> execute();
$posts = $req -> fetchALL();
return $posts;
}
//fin
//fichier "index.php" du répertoire contrôleur
<?php
//req posts
$offset = 0;
$limit = 5;
include_once('modele/get_posts.php');
$posts = get_posts($offset, $limit);
//traitement posts
foreach($posts as $cle => $post)
{
$posts[$cle]['titre'] = htmlspecialchars($post['titre']);
$posts[$cle]['lien'] = htmlspecialchars($post['lien']);
$posts[$cle]['description'] = nl2br(htmlspecialchars($post['description']));
$posts[$cle]['commentaires'] = nl2br(htmlspecialchars($post['commentaires']));
}
print_r($posts); echo $posts;
include_once('vue/vue_index.php');
//fin
//fichier "vue_index.php" du répertoire vue (seulement une partie)
<section>
<h1>Mes dernières photos : </h1>
<article id="new_photos_block">
<!--Photos au centre de la page : -->
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
foreach($posts as $post)
{
?>
<div class=new_photo>
<h3>
<span class="titre_photo"><?php echo $post['titre']; ?> </span>
<em>le <?php echo $post['date_creation_fr'] ?></em>
</h3>
<img title="cliquer pour agrandir l'image" alt=<?php echo '\"' . $post['titre'] . '\"'; ?>
src=<?php echo '\"' . $post['lien'] . '\"'; ?> />
</div><br> </article><br></section>
//fin
//fichier "index.php" à la racine pour accéder au site
<?php
include_once('modele/connexion_sql.php');
if(! isset($_GET['section']) OR $_GET['section'] = 'index')
{
include_once('controleur/index.php');
}
//fin
Merci énormément d'avance si vous pouvez m'aider a comprendre se qui ne va pas, car la page n'affiche pas d'erreurs
mais elle n'affiche aucun éléments provenant de la table, j'ai essayé de le débugger par moi même en affichant le contenu des variable qui contiennent les données de la table ( avec print_r($posts['titre] par exemple') ) mais la page m'affiche "Array ( )"
J'ai l'impression que le code ne trouve pas la table mais cela me renverrai normalement un erreur, non ?
Donc voilà, je ne sais pas quoi faire, j'ai déjà vérifié le contenu de la table sur PHP My Admin plusieurs fois.
Je sais que c'est mon problème et que c'est normalement a moi de le résoudre mais je suis perdu, pouvez-vous m'aider ?
J'aurais un conseil pour t'aider à déboguer. Teste ta requete SQL en l'exécutant dans phpmyadmin (onglet SQL je crois) si ça te retourne rien, tu as trouvé ton problème. sinon dis moi je jetterai un oeil plus poussé à ton code.