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 une valeur


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    ingé sys
    Inscrit en
    Avril 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingé sys

    Informations forums :
    Inscription : Avril 2004
    Messages : 156
    Par défaut récupérer une valeur
    salut, désolé j'ai encore besoin d'aide pour le site que je réalise.
    J'ai besoin de modifier les intervenants d'un stage si besoin.
    Donc dans le formulaire 2 je récupère le nombre d'intervenants et je fais les liste déroulantes :
    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
    $query2="SELECT * FROM activite_has_intervenant WHERE ACTIVITE_idAct=\"$num\"";
      $send2=mysql_query($query2);
      $nb2=mysql_num_rows($send2);$_SESSION['nb2']=$nb2;
      $r2=mysql_fetch_array($send2);
      echo'<form name="form2" method="post" action="update3.php">
       <table width="50%" border="1" align="center" cellspacing="0"';
     
      for($j=1;$j<$nb2+1;$j++)
      {
     
       $query3="SELECT * FROM intervenant";
       $send3=mysql_query($query3);   
       echo"<tr><td>Intervenant $j</td>";
       echo"<td><select name\"interv[$j]\">";
       while($r3=mysql_fetch_array($send3))
       {
         echo"<option value=".$r3[0].">".$r3[1]."</option>";
             }
       echo"</select></td></tr>";
      }
    dans le formulaire 3 je voudrais donc récupérer les intervenants choisis et mettre à jour la table mais ça passe pas.
    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
     
    <?php
    include("../../lib/definitions.inc.php");
     $serveur = mysql_connect(SERVEUR, NOM, PASSE); 
     $select_base = mysql_select_db(BASE);
     
    $ok=0;
    for($j=1;$j<$nb+1;$j++) 
    { 
      //$salle=$_POST['salle'];
      $interv=$_POST['interv'][$j];
     
    $query="UPDATE activite_has_intervenant SET  INTERVENANT_idInterv ='$interv' WHERE ACTIVITE_idAct=\"$num\"";
    $send=mysql_query($query);
    $ok=$ok+1;
    }
    Le problème est qu'il me sort l'erreur
    Notice: Undefined index: interv in d:\program files\easyphp1-8\www\admin\stages\update3.php on line 46
    Je comprends pas pourquoi il me dis ça. Mon select dans le form2 est bien noté.

    comment dois-je faire svp ?

    merci d'avance

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Euh, je sèche...
    Cela dit, j'ai un conseil : si tu utilises une donnée siasie par un utilisateur dans une requête, pense à toujours vérifier le contenu. Par exemple, applique intval() si tu sais que cette valeur devrait être un entier et addslashes() dans les autres cas.
    La raison est expliquée ici :
    http://thierrylhomme.developpez.com/php/php_secure/#bdd

    Pour ton souci, essaie de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';

  3. #3
    Membre confirmé
    Profil pro
    ingé sys
    Inscrit en
    Avril 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingé sys

    Informations forums :
    Inscription : Avril 2004
    Messages : 156
    Par défaut
    merci du conseil, je l'applique deja.

  4. #4
    Membre chevronné Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Par défaut
    Bonjour,
    Dans ton formulaire 2, tu as oublié un =
    echo"<td><select name\"interv[$j]\">";

    devient :
    echo"<td><select name=\"interv[$j]\">";
    ou plus simple :
    echo"<td><select name='interv[$j]'>";
    Je n'ai pas regardé tout le code, je te donnes juste ce qui m'a sauté aux yeux !
    Sohnic

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Par défaut
    Je dirai que la colonne interv n'existe pas dans la requête. quelles sont les colonnes retounées par la requête (les noms de celles ci) ?

  6. #6
    Membre confirmé
    Profil pro
    ingé sys
    Inscrit en
    Avril 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingé sys

    Informations forums :
    Inscription : Avril 2004
    Messages : 156
    Par défaut
    maintenant c'est bon ! j'avais bien oublié le = comme un idiot !!

    j'ai maintenant une erreur lors de la MAJ

    Erreur 1062 : Duplicata du champ '4-2' pour la clef 1


    Erreur 1062 : Duplicata du champ '4-3' pour la clef 1

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Par défaut
    Là c'est que tu insères une valeur qui existe déja dans une colonne avec une contrainte unique ou une clé primaire.

  8. #8
    Membre confirmé
    Profil pro
    ingé sys
    Inscrit en
    Avril 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingé sys

    Informations forums :
    Inscription : Avril 2004
    Messages : 156
    Par défaut
    la table que je veux modifier est constituée ainsi (c'est la table activité_has_intervenant):
    idAtelier qui est la clé primaire de la table activité
    IdInterv qui est la clé primaire de la table intervenant.

    Jve juste modifier l'idInterv si celui est changé. Je garde l'id Atelier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for($j=1;$j<$nb+1;$j++) 
    { 
        $interv=$_POST['interv'][$j]; 
     
    $query="UPDATE activite_has_intervenant SET  INTERVENANT_idInterv ='$interv' WHERE ACTIVITE_idAct=\"$num\""; 
    $send=mysql_query($query); 
    $ok=$ok+1; 
    }
    $num est l'idAtelier
    Coment je dois faire pour la modifier sans qu'il n'y ait de soucis ?

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    J'espère que tu n'as pas cette erreur suite à ton UPDATE car ce ne serait pas normal...

  10. #10
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Par défaut
    tu as un doublon dans tes clés, c'est un problème de modélisation de ta base de données.

    regarde si les entrées que retourne que retourne PHP existe déja dans la table (ou si celle que tu essaies de mettre à jour n'existe pas déja).

  11. #11
    Membre confirmé
    Profil pro
    ingé sys
    Inscrit en
    Avril 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingé sys

    Informations forums :
    Inscription : Avril 2004
    Messages : 156
    Par défaut
    dans ma table, jai 2 enregistrements

    4-1 (4 est le num de l'activité et 1 le num de l'interv)
    4-2 (4 est le num de l'activité et 2 le num de l'interv)

    plusieurs intervenants peuvent animer un stage mais je sais ce que je vais faire, jvais metre un champ id qui sera unique et ce sera bon.

  12. #12
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Par défaut


    n'oublie pas d'éventuelles clés étrangères

Discussions similaires

  1. [XSL]récupérer une valeur de plusieurs fichiers XML
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 05/02/2006, 00h32
  2. Réponses: 5
    Dernier message: 09/09/2005, 17h51
  3. problème pour récupérer une valeur dans ma bd (débutante)
    Par auryn111 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/08/2005, 17h49
  4. Réponses: 2
    Dernier message: 17/06/2005, 13h38
  5. Réponses: 2
    Dernier message: 11/12/2004, 21h20

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