Voici mon script ````<article>
<?php
//connection à la base de donnée
try
{
$bdd = new PDO('mysql:host=localhost;dbname=blog;charset=utf8','root','');
}
catch(exception $e)
{
die('Error:'.$e->getmessage());
}
?>
<?php
$nombreDeBilletsParPage = 10;
$retour = mysql_query('SELECT COUNT(*) AS nb_billets FROM article');
$data = mysql_fetch_array($retour);
$totalDesMessages = $data['nb_billets'];
$nombreDePages = ceil($totalDesMessages / $nombreDeBilletsParPage);
echo 'Page :';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="blog.php?page=' . $i . '">' . $i . '</a> ';
}
?>
<?php
if (isset($_GET['page']))
{
$page = $_GET['page'];
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeBilletsParPage;
$reponse = mysql_query('SELECT id , text,titre ,auteur,DATE_FORMAT(date,\'%d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr FROM article ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeBilletsParPage);
while ($data = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $data['auteur'] . '</strong> a écrit :<br />' . $data['text'] . '</p>';
}
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>
</article>
``
Dés l'exécution 3 erreur s'affiche !!
1.Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\PYTHOGEEK-WEBSITE\blog.php on line 48
2.Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\PYTHOGEEK-WEBSITE\blog.php on line 50
3.Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\PYTHOGEEK-WEBSITE\blog.php on line 80
Pouvez vous m'aider en corrigeant mon script . Merci!
Bonsoir,
Ce sont juste des warnings donc soit vous les ignorer soit vous passez à PDO, ce que vous avez commencer à faire.
Houlà, l'horreur (^_^).
Je vous conseil de passer à PDO et revenir nous voir si vous avez un soucis.
Comprendre PDO
Donc ça ferai ce code là $bdd = new mysql_connect('mysql:host=localhost;dbname=blog;charset=utf8','root','');
mais ça marche pas , et comment on peux passer à PDO !
J'ai réussi a supprimer toutes les erreurs maintenant ya y'a rien qui s'affiche !! voici mon nouveau code
<?php
//connection à la base de donnée
try
{
$bdd = new PDO('mysql:host=localhost;dbname=blog;charset=utf8','root','');
}
catch(exception $e)
{
die('Error:'.$e->getmessage());
}
?>
<?php
$nombreDeBilletsParPage = 10;
$retour = $bdd -> prepare('SELECT COUNT(*) AS nb_billets FROM article');
$data = $retour->fetch();
$totalDesMessages = $data['nb_billets'];
$nombreDePages = ceil($totalDesMessages / $nombreDeBilletsParPage);
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="blog.php?page=' . $i . '">' . $i . '</a> ';
}
?>
<?php
if (isset($_GET['page']))
{
$page = $_GET['page'];
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeBilletsParPage;
$reponse = $bdd -> prepare('SELECT id , text ,titre , auteur, DATE_FORMAT(date,\'%d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr FROM article ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeBilletsParPage);
while ($data = $reponse->fetch())
{
?>
<p> <?php echo $data['auteur']; ?> <?php echo $data['titre']; ?></p>
<?php
}
?>
</article>
Et bien la compréhension à été très rapide mais il manque une chose.
Vous avez oublier d’exécuter la requête après le prepare.
Après il vous faudra également penser à protéger vos requêtes des injections sql.
Ouai évidemment aprés l'execution de la requete ça a marcher , quand à les injection aprés avoir bien réussi a jouer le code je vais protéger mes requetes promis :p bon je vais voir avec ma pagination et je vous tiendrez au courant .
Plus qu'à mettre le sujet en résolu.
Pour la pagination, regarder sur le net ou sur le forum, nous en parlons régulièrement.
error_reporting(E_ALL ^ E_DEPRECATED);
Pour activé tout SAUF les E_DEPRECATED, et donc ne plus avoir les erreurs comme 1.Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead