Passage variable (pas formulaire)

Bonjour,

page1.php
j'ai effectué une requête sur ma base de donnéee tà partir de celle-ci, je récupère la variable:$row['proteine_number']
et j'affiche un bouton radio.

for($i=1; $i<=$row['proteine_number']; $i++)
{
print("<u>element".$i."</u><br>");
print("<input type=\"radio\" name=\"species$i\" value=\"Human\">Human<br>");
print("<input type=\"radio\" name=\"species$i\" value=\"E.Coli\">E.Coli<br>");
}

page2.php
j'aimerais récupérér la valeur de cette variable ($row['proteine_number']) pour pouvoir récupérer la valeur de mon bouton radio.
MAIS JE N'Y ARRIVE PAS. MA VARIBLE $row['proteine_number'] EST VIDE

$number=$_POST['$row[\'proteine_number\']'];
print("$number<br>");

for($i=1; $i<=$number; $i++)
{
if(!empty($_POST['species'])
{
$species=$_POST['species'.$i];
//blablabla
}

}

Je ne pense pas que je puisse récupérer la variable par les sessions car ma variable fait suite à une requête!
Configuration: Windows XP
Firefox 2.0.0.8

9 réponses

  1. Bonjour,

    J'essaye de passer autrement pour arriver a mon objectif.

    page1.php
    en fesant différentes requête sur ma base de donné, (le complexe HREF est constitué de 2 sous-unité :HREFA et HREFB) j'obtiens un affichage du type:

    sous-unité:HREFA
    commentaires: -----
    sequence: ----

    sous-unité:HREFB
    commentaires: -----
    sequence: ----

    Pour chaque sous-unité, on doit remplir les champs commentaire et sequence.

    Mais comment récupérer en page2.php, les données saisies? Je n'arrive qu'à récupérer les dernières données saisies càd celle de HREFB.
    Je comprend bien qu'il faut que je mette une boucle (incrémentant comments et seq) pour pouvoir récupérer les commentaires et sequence pour chaque sous-unité (de façon a avoir quelque chose (print("<textarea name='comments$i' cols=60 rows=2></textarea><br><br>"); )mais le problème est que je suis dans une boucle while (pour permettre d'avoir chaque sous-unité )...

    Voivi mon script page1.php

    // connexion a la DB
    $requete=
    "SELECT protein_id,proteine_nom, proteine_sous_unite_number
    FROM protein
    WHERE protein_id=$protein_id";

    $execution = mysql_query($requete) or die("erreur au niveau de la requête");
    $num_rows = mysql_num_rows($execution);

    if($num_rows==0)
    {
    print("PBE");
    exit;
    }
    else
    {
    $rows = mysql_fetch_assoc($execution);
    $requete2=
    "SELECT sous-unite_id, sous-unite_nom
    FROM sous-unite
    WHERE protein_id=".$row[' proteine_id'];

    $execution2 = mysql_query($requete2) or die("erreur au niveau de la requête2");

    $num_rows2 = mysql_num_rows($execution2);

    if($num_rows2==0)
    {
    print("PBE");
    exit;
    }
    while($ligne=mysql_fetch_assoc($execution2))
    {
    print("protein_id:".$ligne[' sous-unite_id']."<br>");

    print("commentaires:<br>");
    print("<textarea name='comments' cols=60 rows=2></textarea><br><br>");
    print("sequence:<br>");
    print("<textarea name='seq' cols=60 rows=2></textarea><br><br>");

    }
    }

    page2.php

    $comments=$_POST['comments'];
    $seq=$_POST['seq'];

    if($comments=="" || $seq =="")
    {
    print("remplir les champs");
    exit;
    }
    if(!empty($comments) && !empty($seq))
    {
    // connexion a la DB
    $requete=
    "SELECT protein_id,proteine_nom, proteine_sous_unite_number
    FROM protein
    WHERE protein_id=$protein_id";

    $execution = mysql_query($requete) or die("erreur au niveau de la requête");
    $num_rows = mysql_num_rows($execution);

    if($num_rows==0)
    {
    print("PBE");
    exit;
    }
    else
    {
    $rows = mysql_fetch_assoc($execution);
    $requete2=
    "SELECT sous-unite_id, sous-unite_nom
    FROM sous-unite
    WHERE protein_id=".$row[' proteine_id'];

    $execution2 = mysql_query($requete2) or die("erreur au niveau de la requête2");

    $num_rows2 = mysql_num_rows($execution2);

    if($num_rows2==0)
    {
    print("PBE");
    exit;
    }
    while($ligne=mysql_fetch_assoc($execution2))
    {
    //insertion des données dans la table sous-unite_sequence

    $requete=
    INSERT INTO sous-unite_sequence sous-unite_sequence_id, proteine_id, sous-unite_id, subunit_sequence_comments, subunit_sequence
    VALUES('','".$row[' proteine_id']."', '".$ligne['sous-unite_id']."', $comments, '$seq')";

    }
    }
    1. Contributeur
      à tout hasard :
      $requete2=
      "SELECT DISTINCT sous-unite_id, sous-unite_nom
      FROM sous-unite
      WHERE protein_id=".$row[' proteine_id']; 
      1. Excuse mou mais je ne vois pas ce que tu veux dire par:
        "je ne vois pas d'où sortent '$comments' et '$seq' mais si ils contiennent les bonnes données, je m'attendrais à trouver l'id dans '$sous-unite_id'. "

        en page 2 je remplis un formulaire.
        Donc pour chaque sous-unité , je dois entrer sa séquence (via un champ textarea) et remplir un champ pour le commentaire.

        sous-unité1:
        comments: full length
        seq: atgaaataa

        sous-unité2:
        comments: mutated
        seq: atgaaagcagggggggggggggggggggggtaa

        en page 3 je récupère donc
        $comments et $seq

        voiçi ce que j'obtiens avec mon script:

        proteine_id:89
        sous-unite_id:178
        subunit_sequence_comments:full length
        seq:atgaaataa

        proteine_id:89
        sous-unite_id:177 //
        subunit_sequence_comments:full length
        seq:atgaaataa

        proteine_id:89
        sous-unite_id:178 //
        subunit_sequence_comments:mutated
        seq:atgaaagcagggggggggggggggggggggtaa

        proteine_id:89
        sous-unite_id:177 //
        subunit_sequence_comments:mutated
        seq:atgaaagcagggggggggggggggggggggtaa

        pour une même sous-unité, j'ai les deux séquences et commentaires qui lui sont attribué alors que je veux:
        proteine_id:89
        sous-unite_id:178
        subunit_sequence_comments:full length
        seq:atgaaataa

        proteine_id:89
        sous-unite_id:177 //
        subunit_sequence_comments:mutated
        seq:atgaaagcagggggggggggggggggggggtaa
        1. Contributeur
          salut,

          donc "subunit_sequence_comments" & "seq" sont ok ?
          si oui dans :
          while($ligne=mysql_fetch_assoc($execution2))
          {
          print("protein_id:".$row[' proteine_id']."<br>");
          print("subunit_id:".$ligne[' sous-unite_id']."<br>");
          print("subunit_sequence_comments:$comments<br>");
          print("seq:$seq<br>");
          //insertion dans la base de données des séquences et commentaires
          } 

          je ne vois pas d'où sortent '$comments' et '$seq' mais si ils contiennent les bonnes données, je m'attendrais à trouver l'id dans '$sous-unite_id'.
          1. Bo njour,

            Je suis toujours bloqué, peut-on me donner des pistes de réflexions.

            Je m'explique par un exemple concret.
            Soit la proteine HREF (caractérisé par un protein_id=89) constitué de 2 sous-unité:
            HREFA(sous-unite_id=178) et
            HREFB (sous-unite_id=177)

            Pour chaque sous-unité via un formulaire, j'indique sa séquence et un commentaire et j'aimerais faire correspondre à chaque sous-unité son commentaires et sa sous-unité et ensuite j'aimerais entrés ces dernières données dans ma base de donnée.

            Mais voilà pour une protéine correspond plusieurs sous-unités et je n'arrive pas a faire correspondre chaque sous-unité a ses données

            for($i=1; $i<=$nb; $i++)
            {

            //recup des valeurs postées
            $seq=$_POST['seq'.$i ];
            $comments=$_POST['comments '.$i ];

            //récup de la protein_id

            //différentes requêtes sur la base de donnée
            $requete=
            "SELECT protein_id,proteine_nom, proteine_sous_unite_number
            FROM protein
            WHERE protein_id=$protein_id";

            $execution = mysql_query($requete) or die("erreur au niveau de la requête");
            $num_rows = mysql_num_rows($execution);

            if($num_rows==0)
            {
            print("PBE");
            exit;
            }
            else
            {
            $rows = mysql_fetch_assoc($execution);
            $requete2=
            "SELECT sous-unite_id, sous-unite_nom
            FROM sous-unite
            WHERE protein_id=".$row[' proteine_id'];

            $execution2 = mysql_query($requete2) or die("erreur au niveau de la requête2");

            $num_rows2 = mysql_num_rows($execution2);

            if($num_rows2==0)
            {
            print("PBE");
            exit;
            }
            while($ligne=mysql_fetch_assoc($execution2))
            {
            print("protein_id:".$row[' proteine_id']."<br>");
            print("subunit_id:".$ligne[' sous-unite_id']."<br>");
            print("subunit_sequence_comments:$comments<br>");
            print("seq:$seq<br>");

            //insertion dans la base de données des séquences et commentaires
            }
            }
            }

            Si au lieu de while($ligne=mysql_fetch_assoc($execution2)) j'utilise $ligne=mysql_fetch_assoc($execution2);
            Pour une même sous-unité j'ai des infos différentes et je n'ai plus accès a la sous-unité_id=177.

            proteine_id:89
            sous-unite_id:178
            subunit_sequence_comments:full length
            seq:atgaaataa

            proteine_id:89
            sous-unite_id:178 //
            subunit_sequence_comments:mutated
            seq:atgaaagcagggggggggggggggggggggtaa
            1. J'ai fait quelques oublis et erreurs

              while($ligne=mysql_fetch_assoc($execution2))
              {
              print("protein_id:".$row[' proteine_id']."<br>");
              print("subunit_id:".$ligne[' sous-unite_id']."<br>");
              print("subunit_sequence_comments:$comments<br>");
              print("seq:$seq<br>");
              }
              1. Bonjour,

                Via un formulaire j'ai rempli les données concernant la protéine et la sous-unité dans ma base de données (ceci dans deux tables différentes). La proteine peut être étudié selon différentes méthodes.(méthode A, B, C..)
                Pour chaque méthode j'ai :
                des séquences de la sous-unité (ce sont les séquences des sous-unités qui composent la protéine ; chaque sous-unité a une séquence bien définie)

                Voiçi le schéma de mes tables :
                proteine (proteine_id, proteine_nom, proteine_sous_unite_number)
                sous-unite (sous-unite_id, proteine_id, sous-unite_nom)
                method (method_id , proteine_id, method_name)
                sous-unite_sequence (sous-unite_sequence_id, proteine_id, sous-unite_id, method_id, subunit_sequence_comments, subunit_sequence )

                page1.php
                pour une protéine donnée, via des boutons radio, je séléctionne une méthode.
                page2.php
                en fonction du nombre de sous-unité que contient cette protéine (requête mysql; ma variable est $row['proteine_sous_unite_number'] ), pour chaque sous-unité :
                je selectionne une espèce, je met un commentaire et j'indique la séquence.

                Exemple
                sous-unité1:
                full length
                atgaaataa

                sous-unité2:
                mutated
                atgaaagcagggggggggggggggggggggtaa

                page3.php
                j'ai récupérer la valeur de la varaible $row['proteine_number'] via les sessions
                maintenant j'aimerais entrer ces informations dans ma base de donnée.

                VOICI CE QUE J'AIMERAIS OBTENIR:
                proteine_id:89
                sous-unite_id:178
                subunit_sequence_comments:full length
                seq:atgaaataa

                proteine_id:89
                sous-unite_id:177 //
                subunit_sequence_comments:mutated
                seq:atgaaagcagggggggggggggggggggggtaa

                MON SOUCI EST QUE VOICI CE QUE J'OBTIENS: (pour une sous-unité donnée d'un complexe (sous-unite_id), j'ai 2 informations différentes
                proteine_id:89
                sous-unite_id:178
                subunit_sequence_comments:full length
                seq:atgaaataa

                proteine_id:89
                sous-unite_id:177 //
                subunit_sequence_comments:full length
                seq:atgaaataa

                proteine_id:89
                sous-unite_id:178 //
                subunit_sequence_comments:mutated
                seq:atgaaagcagggggggggggggggggggggtaa

                proteine_id:89
                sous-unite_id:177 //
                subunit_sequence_comments:mutated
                seq:atgaaagcagggggggggggggggggggggtaa

                jje pense que cela vient de ma boucle while mais je ne sais pas comment m'en sortir:
                for($i=1; $i<=$nb; $i++)
                {

                //recup des valeurs postées
                $seq=$_POST['seq'.$i ];
                $comments=$_POST['comments '.$i ];

                //récup de la protein_id

                //différentes requêtes sur la base de donnée
                $requete=
                "SELECT protein_id,proteine_nom, proteine_sous_unite_number
                FROM protein
                WHERE protein_id=$protein_id";

                $execution = mysql_query($requete) or die("erreur au niveau de la requête");
                $num_rows = mysql_num_rows($execution);

                if($num_rows==0)
                {
                print("PBE");
                exit;
                }
                else
                {
                $rows = mysql_fetch_assoc($execution);
                $requete2=
                "SELECT sous-unite_id, sous-unite_nom
                FROM sous-unite
                WHERE protein_id=".$row[' proteine_id'];

                $execution2 = mysql_query($requete2) or die("erreur au niveau de la requête2");

                $num_rows2 = mysql_num_rows($execution2);

                if($num_rows2==0)
                {
                print("PBE");
                exit;
                }
                while($ligne=mysql_fetch_assoc($execution2))
                {
                print("protein_id:".."<br>");
                print("subunit_id:".."<br>");
                print("subunit_sequence_comments:"$comments."<br>");
                print("seq:".$seq."<br>");
                }
                }
                }
                1. Contributeur
                  salut,

                  pour passer la variable :
                  • si tu connais la valeur et que tu veux la passer par le formulaire tu peux utiliser un '<input type="hidden">' ;
                  • ou tu peux la stocker dans la session juste après ta requête et la récupérer ensuite.

                  j'essaie de me souvenir de ton site…
                  mais je ne vois pas clairement ce que tu veux faire !
                  (ô_O)'