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

Langage PHP Discussion :

Tableau rempli d'une table de la BD et des boutons


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 56
    Points
    56
    Par défaut Tableau rempli d'une table de la BD et des boutons
    slt,
    j'ai un tableau composé de deux colonnes la premiere est remplie par les enregistrements (des liens des annuaires) d'une table de la base de données et la seconde est remplie par des boutons.
    Je veux lorsque je clique sur un des boutons il y aura une mise a jour de la table de la BD sur l'enregistrement qui correspond à l'annuaire qui est dans la meme ligne que le bouton.
    le probleme que j'ai trouvé c que la mise a jour s'effectue apres le click sur tous les enregistrements et non seulement sur l'enregistrement voulu.
    Voici le code que j'ai utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    $req = "select url_annuaire from annuaire WHERE suprime != 's' ";
    $reponse=mysql_query($req);
     
    if (!(mysql_num_rows($reponse))) 
       {  }
    else
         { 
     
        echo "<table align = \"left\" border = \"1\" >" ;
        echo " <tr>
                 <td>Annuaires</td>
                 <td>Indesirable</td>
                 </tr>";
     
        while ($donnees = mysql_fetch_array($reponse))
    	  {
             $url_annuaire = $donnees['url_annuaire'];
          echo "
          <tr>
          <td><a href=\"javascript:OuvrirFenetre('http://".$url_annuaire."','popup2','width=1400,height=800,status=yes,directories=yes,resizable=yes,menubar=yes,location=yes,scrollbars=yes')">$url_annuaire</a></td>
          <td><form action =\"soumettre.php?url=".$url."\" method =\"POST\"><input type=\"submit\" name=\"ok\" value=\"Ok\"/></form></td>
          </tr>"; 
    	  $ok = isset($_POST['ok']) ? $_POST['ok'] : '';   
    	 if($ok)
                {
                    $req2 = "UPDATE annuaire set suprime = 's' WHERE url_annuaire = '$url_annuaire'";
                    $reponse2=mysql_query($req2); 
               }
     
    	}
      echo " </table>" ;
     
    	}

  2. #2
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 56
    Points
    56
    Par défaut
    j'ai ajouter un element caché sur mon formulaire qui contient l'url de l'annuaire qui subira la mise a jour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=\"hidden\" value=\"".$url_annuaire."\" name=\"ann2\">
    et ça marche mais le probleme c'est qu'il faut cliquer 2 fois sur le bouton pour que la mise a jour s'effectue...

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    A vue de nez, si tu dois cliquer deux fois, c'est que tu as mis ton affichage avant ton UPDATE.

  4. #4
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 56
    Points
    56
    Par défaut
    apres le 1er click la mise a jour s'effectue mais il ya aucun changement dans la page je sais pas comment faire.
    existe t-il une fonction pour actualiser la page pour l'ajouter dans la section de comme ça j'actualiserai la page apres la mise a jour.
    Ou existe t-il une autre solution.

  5. #5
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 56
    Points
    56
    Par défaut
    bon, j'ai bcp cherché mais j'ai pas trouvé de solutions.
    j'ai essayé d'autres choses (travailler avec des fonctions,...)
    je trouve tjrs pas de solutions.
    svp, c urgent...
    tjrs la meme chose je dois cliquer 2 fois pour voir la mise a jour s'effectue(et elle s'effectue 2 fois), et aussi si je clique 1 fois et je fais actualiser ou F5 la requete sql s'execute autant de fois que le nombre de clic sur actualiser ou F5, je vois pas ou est ce qu'il est le probleme...
    Y a t-il une solution?

  6. #6
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = "select url_annuaire from annuaire WHERE suprime != 's' ";
    par chez moi un différent en sql ce fait par <> et non != j'avoue ne pas avoir testé si ça marche ou pas à ta manière.

    Ensuite, dans ton code tu nous met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $req2 = "UPDATE annuaire set suprime = 's' WHERE url_annuaire = '$url_annuaire'";
    alors que ton $url_annuaire provient de ta requête de sélection précédente perso je trouve pas ça terrible il faut tester avec un isset($_POST[""]) etc et récupérer ta valeur par rapport à ton $_POST[""] plutot que par la dernière valeur affiché.

    Egalement,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    action =\"soumettre.php?url=".$url."\"
    ça dans un formulaire tu peux t'accrocher ça marche pas, les url composée ne fonctionne pas il faut passer par des variable hidden d'où encore une fois la nécessité par la suite de tester avec un $_POST[""] surtout en lisant ton second post puisque tu utilise "ann2" mais tu récupère la valeur nul part.

    Enfin, j'utiliserais la vérification en début de page et non en plein milieu de mon code d'affichage cela éviterais pas mal de soucis.

  7. #7
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 180
    Points : 182
    Points
    182
    Par défaut
    Si tu connais l'ajax je pense que ce serait beaucoup mieux. Tu créer un <input type="button" id="[idchampbdd]" et onclick="update(this.id)" />
    Dans ton fichier javascript (si tu en a un) tu crées une fonction qui va appeler un fichier php qui fera la mise à jour. C'est beaucoup plus optimisé.
    SI tu as besoin n'hésite pas

  8. #8
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 56
    Points
    56
    Par défaut
    pour un different <> et != font la meme chose.
    pour la $req2 j'ai deja changé WHERE url_annuaire = '$url_annuaire' par WHERE url_annuaire = '$annuaire' $annuaire je l'ai recuperé a partir du champ hidden avec $_POST["ann2"].
    et tjrs le meme probleme.
    mais j'ai pas compris ce que tu veux dire par cette phrase "la vérification en début de page et non en plein milieu de mon code d'affichage".
    pour la remarque de Mr yann0807 dommage je connais pas ajax. et je veux une solution coté php si c possible...
    merci bcp pour vos reponses

  9. #9
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 180
    Points : 182
    Points
    182
    Par défaut
    Est-ce que tu ne devrais pas plutôt te baser sur un ID que ton champ url.
    Tu crées à chaque résultat un formulaire (en l'occurrence <form action="soumettre.php?$id"> (j'abrège pour la syntaxe) qui contient un champ caché avec l'id et un bouton submit qui envoie vers cette page.
    Ensuite dans ta page soumettre tu récupère via un get l'id et hop tu fais ton update.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/05/2009, 09h38
  2. [MySQL] Tableau rempli avec une requête
    Par jolonghorn dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 02/01/2007, 19h39
  3. Insérer des données d'un tableau php dans une table mysql
    Par tom43 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 02/08/2006, 09h38
  4. [MySQL] Tableau rempli par une BDD
    Par xender dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/05/2006, 11h58
  5. tableau dynamique via une table sous sql server
    Par bibi2607 dans le forum ASP
    Réponses: 5
    Dernier message: 21/02/2005, 15h45

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