[RESOLU] Problème avec rowCount(). il m'affiche toujours '1'

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème avec rowCount(). il m'affiche toujours '1'

Re: Problème avec rowCount(). il m'affiche toujours '1'

par stephweb » 11 mai 2015, 23:27

OK merci.
du coup j'ai écouté ton conseil en incrémentant en variable.
et effectivement ça fonctionne, même pas besoin d'utiliser rowCount().

Code : Tout sélectionner

if($statut == 0) { // si déplacer dans publier $i = 0; // pour echo nb art déplacé foreach($id_articles as $id) { // parcourir table id_articles -> 1 élément à la fois $requete_UP = $db->prepare("UPDATE articles SET statut = :statut WHERE id = :id"); $requete_UP->bindValue(':statut', $statut, PDO::PARAM_INT); $requete_UP->bindValue(':id', $id, PDO::PARAM_INT); $requete_UP->execute(); $i++; $requete_UP->closeCursor(); } // END foreach $_SESSION['info'] = '<p class="article-info-depl-publ">'.$i.' Article(s) publié(s) !</p>'; header('Location: '.$_SESSION['url-article']); }
merci

Re: Problème avec rowCount(). il m'affiche toujours '1'

par tof73 » 11 mai 2015, 22:10

normal, à chaque passage dans la boucle, tu mets à jour $_SESSION['info'] avec une valeur à 1.
il faut dans la boucle incrémenter une variable, et après la boucle mettre à jour $_SESSION['info'] et header();

Re: Problème avec rowCount(). il m'affiche toujours '1'

par stephweb » 11 mai 2015, 21:46

ok merci.
j'ai essayé d'enlever le header(), ça ne change rien.
j'ai toujours le même problème.
Merci

Re: Problème avec rowCount(). il m'affiche toujours '1'

par tof73 » 11 mai 2015, 21:26

tu mets un header() dans une boucle, donc cela sort de ta boucle et cela ne mets à jour que le 1er enregistrement.

Problème avec rowCount(). il m'affiche toujours '1'

par stephweb » 11 mai 2015, 21:03

Bonjour,
je viens vous demander un peu d'aide SVP, car j'essaye d'apprendre à me servir de rowCount();, et je n'arrive pas à le faire fonctionner.
Par exemple, quand je déplace mes articles (de brouillon) jusqu'à publié, je souhaiterai que dans le message de confirmation que ça m'affiche: "nombre" Article(s) ont été déplacé(s) dans les articles publié(s) !

Mais le problème, avec mon code actuelle, ça m'affiche toujours:
"1" Article(s) ont été déplacé(s) dans les articles publié(s) !
$count m'affiche toujours 1, alors que je déplace plusieurs article...

Voici mon code;

Code : Tout sélectionner

if($statut == 0) { // si déplacer dans publier foreach($id_articles as $id) { // parcourir table id_articles -> 1 élément à la fois $requete_UP = $db->prepare("UPDATE articles SET statut = :statut WHERE id = :id"); $requete_UP->bindValue(':statut', $statut, PDO::PARAM_INT); $requete_UP->bindValue(':id', $id, PDO::PARAM_INT); if($requete_UP->execute()) { $count = $requete_UP->rowCount(); $_SESSION['info'] = '<p class="article-info-depl-publ">'.$count.' Article(s) publié(s) !</p>'; header('Location: '.$_SESSION['url_article']); } else { $_SESSION['info'] = '<p class="rouge bold">Une erreur s\'est produite.</p>'; header('Location: '.$_SESSION['url_article']); } $requete_UP->closeCursor(); } }
Y a t-il une solution SPV?

Merci