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 multiple dans un formulaire [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut Update multiple dans un formulaire
    Salut à tous,
    j'ai un petit probleme pour un update multiple d'un formulaire.
    Je pense que cela ne doit pas etre bien compliqué, mais je ne trouva pas la solution.

    mon code Formulaire:
    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
    <form name="formu" action="?rub=scmaj1" method="post" enctype="multipart/form-data"><br />
    <strong>Sous-Catégorie :</strong><br /><br />
    <? $req1 = mysql_query("SELECT * FROM souscat GROUP BY nom ORDER BY cat") or die("Erreur SQL1 !"); 
    while($data1 = mysql_fetch_array($req1)) {
    $nom1=$data1['nom'];
    $ordre1=$data1['ordre'];
    $cat1=$data1['cat'];
    $id1=$data1['id'];
    echo''.$cat1.'<br /><input type="text" name="nom" size="30" value='.$nom1.' />
    <input type="text" name="ordre" size="5" value='.$ordre1.' /><br /><br />
    <input type="hidden" name="id" value='.$id1.' />
    <input type="hidden" name="cat" value='.$cat1.' />';
    }
    ?>
    <br /><br />
    <input class="centrage" type="submit" value="Envoyer" /><br />
    Mon code update :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "UPDATE souscat SET id='id',ordre='$ordre',cat='$cat',nom='$nom' WHERE id='$id' "; 
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    je n'ai pas d'affichage d'erreur mais quand je modifie un donnée dans le formulaire que ce soit $nom1 ou $ordre1 ce n'est pas pris en compte.

    un petit coup de main serait le bienvenu
    Merci
    @+

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    Je ne vois pas l'affectation des variables récupérés du formulaire comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $cat = $_POST['cat'];
    Aussi, l'id de votre table est peut-être un nombre en auto-incrémentation et non une chaine de caractères. Pour finir êtes-vous sûr de vouloir mettre à jour l'id de l'enregistrement en cours d'édition ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql = "UPDATE souscat SET ordre='".$ordre."',cat='".$cat."',nom='".$nom."' WHERE id=".$id; 
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

  3. #3
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    Bonjour,

    Je ne vois pas l'affectation des variables récupérés du formulaire comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Code :
     
    $cat = $_POST['cat'];
    les variables sont déja dans le formulaire avec les champs name ?
    car si je fait un echo $nomdelavariable elle s'affiche dans la page update,
    ou alors il y a un truc que j'ai pas compris.

    j'ai essayé avec votre code mais cela ne met toujours pas à jours ma bdd.

  4. #4
    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
    Par défaut
    Dans ton php.ini tu dois mettre sur off register_globals et utiliser la syntaxe de ThomasR qui est la seule vraie bonne pour recuperer les valeurs d'un formulaire.

    Sinon pour ton probleme, fais un echo $sql, et regarde ce que donne vraiment cette requête.
    Il te manque un $ : SET id='id'
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    Effectivement la syntaxe est bonne,

    Le probleme doit etre dans le formulaire car cela n'affiche pas qu'une seule ligne mais toutes la table, ligne par ligne dans le formulaire.

    car il y a une requete avec un boucle while dans mon formulaire donc cela liste toute la base de donnée donc plusieurs lignes.

    Et le update ne fonctionne que pour la derniere ligne alors que je veux qu'il fonctionne pour toutes les lignes.

    exemple de table :

    ID ORDRE CAT NOM
    1 2 Alimentation Fruits
    2 1 Alimentation Legumes
    3 0 Decoration Cuisine
    4 1 Meuble Salon


    Je sais pas si vous voyez ce que je veux dire ?

  6. #6
    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
    Par défaut
    il faut utiliser des noms de champ en tableau alors : name="id[]"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Le problème avec cette technique c'est que ca va t'obliger a repasser en boucle sur toutes tes entrées du formulaire et mettre à jour les enregistrements de la base un par un.

  8. #8
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    Oui mais ce n'est pas grave
    car la table contient peu d'enregistrement.

    par contre j'ai pas compris le type de champs a utiliser.

    Merci

  9. #9
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    Ok jai compris
    pour les champs de formulaire ca fonctionne nikel
    @+

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

Discussions similaires

  1. [MySQL] Saisie multiple dans un formulaire
    Par white_tiger dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/07/2007, 16h02
  2. [Javascript] pré remplir un select multiple dans un formulaire
    Par chipster45 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/04/2007, 13h52
  3. Selection multiple dans un formulaire
    Par farios dans le forum Access
    Réponses: 1
    Dernier message: 17/10/2006, 15h38
  4. Choix multiple dans un formulaire
    Par jeandormesson dans le forum Langage
    Réponses: 2
    Dernier message: 28/08/2006, 22h53
  5. update multiple dans une meme colonne
    Par debdev dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/01/2006, 21h46

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