Passage variable (pas formulaire)

pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   -  
pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   -
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. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    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)'
    0
  2. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   2
     
    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>");
    }
    }
    }
    0
  3. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   2
     
    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>");
    }
    0
  4. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   2
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    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'.
    0
  7. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   2
     
    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
    0
  8. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    à tout hasard :
    $requete2=
    "SELECT DISTINCT sous-unite_id, sous-unite_nom
    FROM sous-unite
    WHERE protein_id=".$row[' proteine_id']; 
    0
  9. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   2
     
    Non cela ne change rien
    0
  10. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   2
     
    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')";

    }
    }
    0