IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Update depuis un tableau [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut Update depuis un tableau
    Bonjour,

    Le problème suivant donne des migraines à mon pauvre cerveau de débutant.

    Voilà la chose :
    Je récupère différent enregistrement dans un formulaire.
    Ces enregistrement possède un champ hidden dont le nom est : numeroPage[]. Donc, cela crée le tableau numeroPage[].
    Bien, jusque là personne n'a explosé.

    Maintenant, il se trouve que le but de ce tableau est d'updater la table "Page" en la décrémentant (puisque l'on supprime des enregistrements via l'admin, on décrémente le compteur...).

    Or, la valeur de ce champ hidden se trouve être la clef étrangère entre la table "page", à updater, et la table "commentaire".

    Donc, dans l'admin, cela se présente par exemple ainsi :

    - J'ai 6 nouveaux commentaires.
    - 3 commentaires font parti de la page 1.
    - 3 commentaires font partis de la page 2.

    Le formulaire me retourne donc un tableau qui se présente ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $numeroPage[0]=1
    $numeroPage[1]=1
    $numeroPage[2]=1
    $numeroPage[3]=2
    $numeroPage[4]=2
    $numeroPage[5]=2
    Donc, je dois updater 1 seule fois la page 1 en la décrémentant de 3
    et idem pour la page 2.

    J'espère avoir bien résumé le problème.
    J'ai essayé pas mal de trucs assez fantastique, dans le style Dark Vador, ou Homer Simpson, ma foi le pc n'a pas grillé.

    Le dernier truc en date est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ids = implode(",",$_POST["numeroPage"]); 
    $totalSup=sizeof($_POST["numeroPage"]);
    echo"$totalSup";
    $U="UPDATE `page` SET nbrCommentaire=nbrCommentaire-'".$totalSup."' WHERE numeroPage IN ($ids)";
    mysql_query($U);
    Résultat inadéquate.



    J'espère que vos lumières pourront éclairer ma route parce que là je suis quelque peu dans la pénombre et j'ai grand besoin de réussir ce script.

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    salut,
    bon j'ai pas trop compris car tu parles de nouveaux commentaires mais apres tu dis qu'en faites il faut les enlever ...

    sinon en me fiant a ce que tu tente de faire dans ton code, ça devrais donner ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach($_POST["numeroPage"] as $page){
        $U="UPDATE `page` SET nbrCommentaire=nbrCommentaire-1 WHERE numeroPage = ".$page;
        mysql_query($U);
    }
    je pense que c'est le plus simple

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    Merci Siddh,

    Je vais essayer ton code dès maintenant. Désolé si je n'ai pas été très clair, il était presque 8h du matin et je n'avais pas encore dormi.

    En fait, cela se passe dans l'admin, où je valide ou supprime les commentaires pour différentes pages :
    Je peux avoir 3 commentaires pour la page 5 et 4 commentaires pour la page 8.

    Admettons que je veuille supprimer 1 commentaire pour la page 5 et trois commentaires pour la page 8, donc dans la page de validation je dois supprimer 4 commentaires se trouvant dans deux tableaux différents.

    Bon je vais tester ton code, je reviens

    **edit**

    Bon alors, je viens d'essayer ton code, ça ne fonctionne pas :

    Toutes les pages voient leur champ 'nbrCommentaire' décrémentées, alors qu'ils ne faut décrémenter que les pages pour lesquel au moins un commentaire est supprimé (et d'autant de points qu'il y a de commentaires supprimé qui appartenaient à cette page).

    Le champ de formulaire 'numeroPage' est en hidden, il ne peut pas se cocher.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    Bon j'ai résolu le problème en amont, à l'aide d'une perfide requête SQL.

    Je marque résolu, mais si vous êtes milliardaire ou clochard et que vous avez du temps à perdre, n'hésitez pas à solutionner le problème, la solution m'intéresse.

    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Aide pour requete UPDATE depuis un formulaire checkbox
    Par craac dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/09/2007, 15h27
  2. Réponses: 2
    Dernier message: 06/07/2007, 12h04
  3. [C#]Obtenir un IntPtr depuis un tableau 2d
    Par Fynchi dans le forum C#
    Réponses: 2
    Dernier message: 27/11/2006, 16h49
  4. UPDATE avec 2 tableau
    Par phpaide dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/06/2006, 20h41
  5. [MySQL 4.7] update avec 2 tableau
    Par phpaide dans le forum Langage SQL
    Réponses: 6
    Dernier message: 04/05/2006, 15h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo