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 :

récupérer plusieurs tuples depuis un array [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    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
    Points : 472
    Points
    472
    Par défaut récupérer plusieurs tuples depuis un array
    Bonjour,
    J'ai le problème suivant:
    Je veux récupérer tous les champs dont l'id est contenu dans un tableau.

    Dans la page du formulaire je crée le tableau ainsi (je vous passe le reste de la requête)[/:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="supprimer[]" value="$R[id]"> supprimer
    Dans la page de réception, j'ai essayé cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $affiche="SELECT idCom FROM sousCommentaire WHERE id = '".($_POST["supprimer"])."'  ";
    $resultat = mysql_query("$affiche");
    while ($R = mysql_fetch_array($resultat)) {
    echo" 
    $R[idCom]<br>
     "
      ;
    };
    Mais ça ne renvoit rien. Qu'ai-je raté ? l'algorithme ou la syntaxe de la requête ?

    Merci d'avance pour vos lumières.

  2. #2
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 125
    Points : 125
    Points
    125
    Par défaut
    Hum, je comprends pas tres bien ton script la :
    Deja $_POST["supprimer"] est un tableau (en supposant qu'au moins un des checkbox soit coche sinon t'auras une variable non definie et donc une erreur.
    Donc si c'est un tableau, ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $affiche="SELECT idCom FROM sousCommentaire WHERE id = '".($_POST["supprimer"])."'  ";
    ca va jamais marcher...
    Au contraire, je pense qu'il serait plus judicieux de faire un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $affiche="SELECT idCom FROM sousCommentaire WHERE id IN (".implode(',', $_POST["supprimer"]).")  ";
    Bon evidemment faut que tu verifies que ton tableau soit reelement un tableau

    Sinon si ca renvoit rien, verifie les logs et la config de php, car tu dois avoir les erreurs desactivees.

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $affiche="SELECT idCom FROM sousCommentaire WHERE id IN (".join(",",$_POST["supprimer"]).") ";
    EDIT
    grilled

  4. #4
    Membre confirmé
    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
    Points : 472
    Points
    472
    Par défaut
    merci pour vos réponses


    Bon alors, j'ai essayé une autre technique pour décrémenter le champ compteur d'un tuple (ce qui est le but initial).
    Mais cela ne fonctionne pas, il faudrait faire une boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (is_array($_POST["supprimer"]) AND is_array($_POST["decrementer"]) )
    { 
    $ids = implode(",",$_POST["decrementer"]); 
    $update="UPDATE  `commentaire` SET nbrSousCommentaire=nbrSousCommentaire-1  WHERE id IN ($ids)"; 
    mysql_query($update); 
    }
    Le problème est que si j'ai deux (ou plus) tuples à supprimer, le champs nbrSousCommentaire ne se décrémente que de 1.

    Donc il faut une boucle, mais pour ce qui est de la syntaxe de celle-ci...

  5. #5
    Membre confirmé
    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
    Points : 472
    Points
    472
    Par défaut
    Bon à priori j'ai réussi ce que je veux en faisant cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // on récupère tous les nouveaux commentaires 
    $affiche="SELECT idCom FROM sousCommentaire WHERE id IN (".implode(',', $_POST["supprimer"]).")  ";
    $resultat = mysql_query("$affiche");
    while ($R = mysql_fetch_array($resultat)) {
    $valider="UPDATE  `commentaire` SET nbrSousCommentaire=nbrSousCommentaire-1 WHERE id ='".$R[idCom]."'"; 
    mysql_query($valider); 
     
     
     
    };
    mysql_free_result($resultat);
    Je vais faire quelque tests pour voir si ça fonctionne bien comme je le veux.

    Quelqu'un pourrait-il m'expliquer ce script que j'ai réussi à faire ?

    Si si la question à du sens.

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

Discussions similaires

  1. [Utilisation] Récupérer les modifications depuis une date donnée
    Par Sapience dans le forum CVS
    Réponses: 1
    Dernier message: 15/02/2006, 12h08
  2. Récupérer le MCD depuis la base
    Par cladsam dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/11/2005, 16h01
  3. [Eclipse] [VSS plugin] Récupérer un projet depuis le server?
    Par Bobsinglar dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/05/2005, 17h12
  4. Réponses: 2
    Dernier message: 10/05/2005, 18h15
  5. [Crystal Report] problème de plusieurs tuples à imprimer
    Par Jé_48 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 19/06/2003, 14h40

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