le traitement de ma requète crée des doublons
Bonjour et meilleurs vœux à toutes et à tous,
je suis embêté, je suis néophyte et souhaite, à l'aide d'une base/table MySQL alimenter une page html.
voici la partie de mon code php (pour lequel j'ai récupéré les infos ici et là), auquel j'ai retiré les valeurs des variables : $serveur, $nom_base et $pwd, qui concerne mon problème.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
<?php
$charset = "utf8"; // Le charset "utf8"
$Table = array(); // Création et initialisation de variable : La table entière
$LignPHP = array(); // Création et initialisation de variable : 1 ligne de la table
global $TablPHP; // Création de variable globale pour la portée soit pour la page entière et non seulement pour la fonction locale
$TablPHP = array(); // Création et initialisation de variable : La table entière
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
// MA REQUETE dans la base 'adc' table 'occupations'
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
// connexion à MySQL en utilisant PDO
try // PHP essaie d'exécuter les instructions à l'intérieur du bloc try. S'il y a une erreur, il rentre dans le bloc catch et fait ce qu'on lui demande (ici, on arrête l'exécution de la page en affichant un message décrivant l'erreur).
{
$bdd = new PDO('mysql:host='.$serveur.';dbname='.$nom_base.';charset='.$charset, $login, $pwd);
}
catch (Exception $e) // S'il y a une erreur, il rentre dans le bloc catch et fait ce qu'on lui demande (ici, on arrête l'exécution de la page en affichant un message décrivant l'erreur).
{
die('Erreur : ' . $e->getMessage()); // En cas d'erreur, on affiche un message et on arrête tout
}
// Si tout va bien, on peut continuer
$Table = $bdd->query('SELECT * FROM occupations');// On récupère tout le contenu de la table occupations
// les deux boucles imbriquées 'foreach', ci-dessous, servent à créer un tableau PHP '$TablPHP' contenant la table 'occupations'
// Le premier foreach() lit chaque ligne du tableau
foreach($Table as $LignTab) // la boucle foreach : À chaque tour de boucle, la valeur de l'élément suivant, du tableau $Table, est mise dans la variable $LignTab (qui est elle même un tableau.
{
// Le deuxième foreach() lit chaque tableau de chaque ligne. On accède à ses propriétés et à ses valeurs avec les variables $cle et $valeur.
//foreach($LignTab as $cle=>$valeur) // la boucle foreach : À chaque tour de boucle, la valeur de l'élément suivant, du tableau $LignTab, est mise dans la variable $element.
foreach($LignTab as $valeur) // la boucle foreach : À chaque tour de boucle, la valeur de l'élément suivant, du tableau $LignTab, est mise dans la variable $element.
{
array_push($LignPHP,$valeur); // Je rentre la valeur contenue dans '$valeur' dans '$LignPHP'
}
array_push($TablPHP,$LignPHP); // Je rentre la valeur contenue dans '$LignPHP' dans '$TablPHP'
$LignPHP = array(); // pour vider mon tableau de ligne je le redéfinis
}
$Table->closeCursor(); // Termine le traitement de la requête
?> |
mon problème est que mon tableau $TablPHP contenant, je crois, l'intégralité de ma table 'occupations' est entièrement doublé, toutes les lignes sont dupliquées alors que dans la table MySQL d'origine çà n'est pas le cas.
Je me doute bien que j'ai "pêché" quelque part, mais çà fait plusieurs jours que je trime dessus et je ne vois pas où.
quelqu'un peut-il m'expliquer ce que j'ai fait de mal ?
Je le répète, je suis néophyte, aussi, j'ai besoin d'explications vulgarisées!
merci beaucoup