Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
3355 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] Problème de récupération d'une valeur en BDD

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] Problème de récupération d'une valeur en BDD

n°2256836
chrispc
Amish pour toujours
Posté le 29-04-2015 à 11:02:07  profilanswer
 

Bonjour,
 
J'ai un soucis, je souhaite afficher sur mon site ( pour la gestion des avis ) la possibilité de modifié le statut d'un commentaire que si celui-ci a un statut différent de 0.
 
Je n'arrive pas à récupérer la valeur 0 dans la BDD. A chaque fois que je fais une requête pour lui demander si la valeur est 0 ou 1, il me retourne 1 constamment.
 
Je les ai les bases de la programmation, Mr Google ne m'a pas donné la réponse attendu.
 
Ne faites pas attention aux problèmes de sécurité que pourrait rencontrer mon code. Il a pour but de créer un site pour la validation d'un diplôme. La partie sécurité je l'apprendrai en entreprise ( formation courte et donc je ne peux pas tout apprendre ).
 
 
 

Code :
  1. <?php
  2. require_once("../inc/init.inc.php" );
  3. require_once('../inc/haut_de_site.inc.php');
  4. include("../inc/menu.inc.php" );
  5. if(!utilisateurEstConnecteEtAdmin())
  6. {
  7. header("location:../connexion.php" ); //redirection pour tous les membres qui ne sont pas administrateurs (donc tous les autres connectés dont la statut est égal à 0 mais aussi les simples visiteurs !!). Seuls les membres ayant un statut == 1 ont accès à cette page. Cf. BDD
  8.   exit(); //permet de stopper l'éxécution du script
  9. }
  10. if(utilisateurEstConnecteEtAdmin() && isset($_GET['action']) && $_GET['action'] == 'deconnexion')
  11. {
  12.  session_destroy();
  13.  header("location:" . RACINE_SITE . "connexion.php" );
  14. }
  15. //ici c'est le BACKOFFICE : donc restreindre l'accès à cette partie. Uniquement visible pour l'administrateur :  
  16. if(isset($_GET['action']) && $_GET['action'] == "suppression" )
  17. {
  18. executeRequete("DELETE FROM avis WHERE id_avis = $_GET[id_avis]" );
  19. }
  20. if(isset($_GET['action']) && $_GET['action'] == "moderation" )
  21. {
  22. executeRequete("UPDATE avis SET statut=1 WHERE id_avis = $_GET[id_avis]" );
  23. }
  24. echo '<div>
  25. <h1> Liste des commentaires</h1>';
  26. $resultat = executeRequete("SELECT * FROM avis" );
  27. $reqPublication = executeRequete("SELECT statut FROM avis" );                                                                                 // Le problème se situe soit ici
  28. $publication = $reqPublication->fetch_assoc();                                                                                                      // Soit là ...
  29. echo "Nombre de commentaire(s) : " . $resultat->num_rows;
  30. $nbcol = $resultat->field_count;
  31. echo "<table style='border-color:red' border=10> <tr>";
  32. for ($i=0; $i < $nbcol; $i++)
  33. {   
  34.  $colonne = $resultat->fetch_field();
  35.  echo '<th>' . $colonne->name . '</th>';
  36. }
  37. echo "<th></th>";
  38. echo "</tr>";
  39. while ($ligne = $resultat->fetch_assoc())
  40.   { 
  41. //crée-moi autant de lignes <tr> qu'il y a de résultats dans la BDD (utilisation de fecth_assoc() qui nous ressort les informations d'array(). Donc récupération par l'intermédiaire d'une boucle foreach()
  42.  echo '<tr>';
  43.  foreach ($ligne as $indice => $information)
  44.     //on récupère les indices et à les informations. Exemple : $article['id_article'] = 1
  45.  {
  46.    echo "<td>" . $information . "</td>";
  47.  }
  48. if( $publication == 1){
  49.  echo '<td><p>Publié</p></td>';
  50. }
  51. else{
  52.  echo '<td><a href="?action=moderation&id_avis=' . $ligne['id_avis'] .'" OnClick="return(confirm(\'Voulez-vous publier ce commentaire ?\'));"><img src="'. RACINE_SITE . 'photo/check.png" alt="" title="Publier le commentaire"></a></td>';
  53. }
  54.  echo '<td><a href="?action=suppression&id_avis=' . $ligne['id_avis'] .'" OnClick="return(confirm(\'En êtes vous certain ?\'));"><img src="'. RACINE_SITE . 'photo/suppr.png" alt="" title="Supprimer ce commentaire"></a></td>';
  55.  echo '</tr>';
  56. }
  57. echo '</table>';
  58. echo "</div>";


Message édité par chrispc le 06-05-2015 à 15:51:04
mood
Publicité
Posté le 29-04-2015 à 11:02:07  profilanswer
 

n°2256851
rufo
Pas me confondre avec Lycos!
Posté le 29-04-2015 à 14:17:09  profilanswer
 

$resultat = executeRequete("SELECT * FROM avis" );
$reqPublication = executeRequete("SELECT statut FROM avis" );
 
-> c'est n'importe quoi :pfff: Déjà parce qu'il ne faut jamais mettre * dans un select, et parce que la première requête ramenant tous les champs de la table AVIS, tu ramènes de fait le champ statut.
 
if( $publication == 1)
-> j'ai de gros doutes que ça marche vu que $publication = $reqPublication->fetch_assoc(); fait que $publication est un array et non un entier. :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2256868
chrispc
Amish pour toujours
Posté le 29-04-2015 à 15:42:18  profilanswer
 

Pour sélectionner tous les champs de la BDD pour en faire un tableau c'est le plus simple plutôt que tout réécrire.  
Du moins on nous a apprit comme ça et j'ai jamais eu de soucis pour le moment.
 
Après pour ce qui est de la suite, je cherche juste à afficher le publié si le statut =1 et le l'icone de validation si le statut = 0.
 
Je dois faire comment pour qu'il me le prenne pour un entier et pas un array ?


---------------
Topic écologie : https://tinyurl.com/y6s6ysx3 | Topic habitats de demain : https://tinyurl.com/y5h2mjx7
n°2256873
mechkurt
Posté le 29-04-2015 à 16:19:36  profilanswer
 

Faire 2 requête consécutive dans la base de donnée ça a un coup en terme de performance et ça ne sert à rien puicqu'avec * tu as déjà récupérer ta colonne statut.
 
Avec fetch_assoc tu récupères un tableau indexe clé => valeur donc ton statut est dans $publication['statut'].
 
Je t'encourages à relire ton cour et/ou des tutos ainsi que la doc php quitte à regarder chaque fonction (ce qu'elle prennent en paramètre, ce qu'elle renvoie comme valeur), car tu as l'air un peu perdu, mais c'est normal, on a tous commencé un jour... ^^


---------------
D3
n°2256875
chrispc
Amish pour toujours
Posté le 29-04-2015 à 16:29:36  profilanswer
 

A vrai dire si je suis perdu c'est que je dois faire 2 sites e-commerce en 4 mois, avec seulement 2 semaines de cours PHP :D !


---------------
Topic écologie : https://tinyurl.com/y6s6ysx3 | Topic habitats de demain : https://tinyurl.com/y5h2mjx7
n°2256876
mechkurt
Posté le 29-04-2015 à 16:35:29  profilanswer
 

Honnêtement, vu ton niveau actuel tourne toit vers des solutions toutes faites (Magento, Prestashop, CMS + plugin) car la tache est énorme est un site d'e-commerce se  doit d'être solide au niveau de la sécurité (injection SQL, paiement CB, etc.).
Je ne voudrais pas te décourager mais ce n'est pas approprié de commencer par là...


---------------
D3
n°2256880
chrispc
Amish pour toujours
Posté le 29-04-2015 à 17:00:41  profilanswer
 

Ah bah je peux pas, on est 20 dans la même galère et on a interdiction d'utiliser des CMS.
 
A vrai dire ma formation c'est 4 mois de cours intensif où on voit JS, PHP, MySQL, HTML / CSS, XML, CMS Wordpress, Drupal et 4 mois de stage.
 
Le diplome on l'aura uniquement si on code tout en dur, à la main. Les bouquins sont là, la communauté est là ( normalement ) alors ils considèrent que c'est faisable ! Seul problème durant mon stage je n'apprendrai qu'à faire du CMS et de la mise en page de newsletter.  
 
Tout le monde m'a dit que maintenant on ne code plus vraiment mais le but de la formation c'est de tout développer soi-même en utilisant des frameworks si on veut.  
 
Donc si tu as la réponse, ça m'aiderai parce que je bloque alors que je suis sur que c'est tout con en plus ...


---------------
Topic écologie : https://tinyurl.com/y6s6ysx3 | Topic habitats de demain : https://tinyurl.com/y5h2mjx7
n°2256910
rufo
Pas me confondre avec Lycos!
Posté le 29-04-2015 à 20:40:50  profilanswer
 

Epitech ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2256914
chrispc
Amish pour toujours
Posté le 29-04-2015 à 21:15:28  profilanswer
 

Ifocop.
 
Bref, je suis pas là pour raconter ma vie  ^^
 
Personne pour m'aider que je puisse avancer plus rapidement ?


---------------
Topic écologie : https://tinyurl.com/y6s6ysx3 | Topic habitats de demain : https://tinyurl.com/y5h2mjx7
n°2256948
mechkurt
Posté le 30-04-2015 à 09:19:36  profilanswer
 

Non mais là on parle de la base de la base... :- /
Si tu récupères 1 c'est que tu te contentes de vérifier le 1er enregistrement retourné, normalement il faut faire une boucle du type :

Code :
  1. while($row = mysql_fetch_assoc($res)) {
  2.    echo $row['statut'].' / ';
  3. }


Si tu as plus d'1 lignes dans ta base et que certain statut sont a zero, ben tu le verras, regarde ta boucle ligne 45 et demande toi pourquoi tu regardes si tu check publié pou pas en dehors de cette boucle...


---------------
D3
mood
Publicité
Posté le 30-04-2015 à 09:19:36  profilanswer
 

n°2256952
rufo
Pas me confondre avec Lycos!
Posté le 30-04-2015 à 10:22:03  profilanswer
 

chrispc a écrit :

Ifocop.
 
Bref, je suis pas là pour raconter ma vie  ^^
 
Personne pour m'aider que je puisse avancer plus rapidement ?


Tu relis mon premier post, tu va y trouver la cause de ton pb. Et comme conseillé, relis la doc aussi pour savoir ce que fait chaque fonction car effectivement, tu ne maîtrises pas toutes les bases du php et de l'accès à une BD.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2256954
chrispc
Amish pour toujours
Posté le 30-04-2015 à 10:43:19  profilanswer
 

Merci mechkurt, j'ai trouvé mon erreur et maintenant je saurai comment reprendre des données int dans la BDD.
 
Je relirais la doc rufo t'en fais pas, je m'aide d'elle constamment pour développer mais je n'ai pas encore le réflexe de regarder les valeurs retourner par telle ou telle fonction.
 
Et comme je disais, c'était bien un truc tout con mais que j'ai oublié ...
 
Merci à vous deux =)


Message édité par chrispc le 30-04-2015 à 12:16:30

---------------
Topic écologie : https://tinyurl.com/y6s6ysx3 | Topic habitats de demain : https://tinyurl.com/y5h2mjx7

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] Problème de récupération d'une valeur en BDD

 

Sujets relatifs
Recuperation de variable JS en PHPCompter titres dans BDD (sauf celui d'article en cours de modif.)
récupération donnée dans des paquet UDPComparer Bdd à fichier txt
Récupération paramètres d'une ancienne URL pour une nouvelle[html et JavaScript] Récupération d'informations et ré-utilisation
Débutant BDD en général / liens entre tablesRecupération de chk dynamique
Vba: problème de récupération des octets[asp] Recupération d'une Valeur in BDD ?
Plus de sujets relatifs à : [résolu] Problème de récupération d'une valeur en BDD


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR