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 :

[Conception] tableau de taille variable


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut [Conception] tableau de taille variable
    Bonjour,
    j'ai un formulaire qui affiche le code d'un article donné,ce formulaire contient aussi 2 zone de texte l'une pour saisir la date d'entrée de l'article en stock,et l'autre pour saisir la quantité entrée en stock,une fois cette dernière zone est saisié,un tableau se gère automatiqument et l'utilisateur doit remplir ce tableau,ce tableau est de 3 colonnes et le nombre de ligne est exactement la quantité saisie dans la zone de texte(par exemple si l'utilisateur saisie 4 comme quantité entrée en stock le tableau est de 4 lignes),les trois colonnes du tableau sont(N°serie,N°inventaire,N°caractérisation),mon pb est que je veux inserer dans la table "caractérisation" les données suivantes ,le code de l'article qui est affiché dans le formulaire,et tous les N°serie ,N°inventaire,N°caracterisation,
    pour plus de détail les champs de la table "caractérisation" sont(N°caractérisation,code_article,N°serie,N°inventaire),donc à chaque fois on va inserer le mëme code de l'article mais avec des N°serie,N°inventaire,N°caractérisation déffirentes jusqu à la fin du tableau automatique,
    j'espère que j'ai bien expliqué mon problème
    s'il vous plait aide moi,j'arrive pas à trouver un code correct,je trouve ça difficile,pacque je suis ébutante en PHP

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Désolé, mais la description de ton problème est... comment dire... pas très aérée, du coup j'ai du mal à tout lire et tout comprendre...


    EDIT: Bon, après 10 lectures je crois que j'ai cerné le problème. Est-ce que tu as du code qui marche ?

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut tableau de taille variable
    bonjour,
    j'ai pas compris de quel code vous parlez,est ce le code de mon formulaire?

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Du code relatif à ton problème, pas celui de mon voisin de bureau

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut tableau de taille variable
    bonjour,
    j'ai seulement,le code correspondant à mon formulaire,mais si vous n'avez pas compris qlqchlose dans mon PB dis moi,je vais essayer de vous expliquer mieux
    voici le code de mon 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
     
    <?php
    require("../conn/conn.php");
    $p=mysql_query("select * from article");
    $str="select * from article where id_article=".$_GET['id'];
    $r=mysql_query($str);
    $ar=mysql_fetch_array($r);
     
     
    ?>
    <div align="center">
      <form id="form1" name="form1" method="post" action="inserermateriel.php">
        <p>&nbsp;</p>
        <table width="740" border="1">
               <tr>
            <th width="730" bgcolor="#CC9966" scope="col"><div align="left">
              <table width="427">
                <tr>
                  <th width="114" scope="col"><div align="center">Code</div></th>
                  <th width="115" scope="col"><div align="left">Reference</div></th>
                  <th width="120" scope="col"><div align="left">designation</div></th>
                  <th width="58" scope="col">Stock</th>
                </tr>
                <tr>
                  <th scope="row"><label1><?=$ar['ID_ARTICLE']?></label1>&nbsp;</th>
                  <td><label2><?=$ar['REFERENCE_ART']?></label2>&nbsp;</td>
                  <td><label><?=$ar['DESIGNATION_ART']?></label>&nbsp;</td>
                  <td><label4></label4>
                  &nbsp;
                  <?=$ar['QTE_STOCKEE']?></td>
    			  <input type="hidden" name="id" value="<?php echo $ar['ID_ARTICLE'];?>" />
                </tr>
              </table>
            </div></th>
          </tr>
        </table>
        <table width="741" border="1">
          <tr>
            <th width="163" bgcolor="#CC9966" scope="col"><div align="left">Date de livraison </div></th>
            <th width="562" bgcolor="#CC9966" scope="col"><div align="left">
              <input name="textfield2" type="text" size="32" />
            </div></th>
          </tr>
          <tr>
            <th bgcolor="#CC9966" scope="row"><div align="left">Quantit&eacute; livr&eacute;e </div></th>
            <td bgcolor="#CC9966"><div align="left">
              <input name="txtquantite" type="text" id="txtquantite" size="32" />
            </div></td>
          </tr>
          <tr>
            <th bgcolor="#CC9966" scope="row"><div align="left">N&deg;bon de commande</div></th>
            <td bgcolor="#CC9966"><div align="left">
    		<?php
    		$str="select num_cmd from article_commmande where id_article=".$_GET['id'];
    		$r1=mysql_query($str);
    		?>
            <select name="N_cmd" id="N_cmd">
              <?php
    		  while($bon=mysql_fetch_array($r1))
    		  {
                 echo "<option>".$bon['num_cmd']."</option>";
                } 
    			?>
            </select>
            </div></td>
          </tr>
        </table>
        <div id="searchresults"></div>
        <script language="JavaScript">
     
    // from js_util.js by scottandrew.com/junkyard/js/
    function addEvent(elm, evType, fn, useCapture)
     
    {
    if (elm.addEventListener){
    elm.addEventListener(evType, fn, useCapture);
    return true;
    } else if (elm.attachEvent){
    var r = elm.attachEvent("on"+evType, fn);
    return r;
    } else {
    alert("Handler could not be removed");
    }
    }
    // end from scottandrew.com/junkyard/js/
     
    var valquantite = document.getElementById("txtquantite");
     
     
    var displayBox = document.getElementById("searchresults");
    addEvent(valquantite, 'keyup', doTest, false);
     
     
    var keyPressDelay = '';
     
    var xmlhttp=false;
    try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
    xmlhttp = false;
    }
    }
     
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
    }
     
    function doTest() {
    if (keyPressDelay) {
    window.clearTimeout(keyPressDelay);
    }
     
    if(valquantite.value != '' ) {
    keyPressDelay = window.setTimeout('doSearch()',800);
    }
     
     
    }
     
    function doSearch() {
    displayBox.innerHTML = "Searching ...";
    xmlhttp.open("GET","tableauquantite.php?valquantite="+valquantite.value,true);
    xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4) {
    displayBox.innerHTML = xmlhttp.responseText;
    }
    }
    xmlhttp.send(null);
    displayBox.innerHTML = "";
     
    }
          </script>
        <table width="279" border="0">
          <tr>
            <th width="74" height="45" scope="col"><p>
                <input type="submit" name="Submit" value="Valider" />
            </p></th>
            <th width="105" scope="col"><input type="reset" name="Submit2" value="Annuler" /></th>
            <th width="86" scope="col">&nbsp;</th>
          </tr>
        </table>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
      </form>
    </div>
    la page tableauquantite.php contient le code suivant
    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
     
    <?php
     
    $quantite = $_REQUEST['valquantite'];
     
     
    ?>
     
        <table width="315">
          <tr>
            <th bgcolor="#CCCC66"><div align="left">N&deg;inventaire</div></th>
            <th bgcolor="#CCCC66"><div align="left">N&deg;serie</div></th>
            <th bgcolor="#CCCC66"><div align="left">N&deg;caracterisation</div></th>
          </tr>
     
    <?php 
     
    $i=1;
    while ($i<=$quantite){
    echo "<tr height=20 bgcolor=#EEEEEE><td width=30><input type=text></td><td width=30><input type=text></td><td width=30><input type=text></td></tr>";
    $i++;
    };
     
    ?>
        </table>
    et merci d'avance pour votre aide

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Qu'est ce qui marche sur ce code ? Est ce que le tableau s'affiche bien avec le bon nombre de ligne quand on modifie le champ correspondant ?

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut tableau de taille variable
    bonjour,
    oui le tableau s'affiche bien avec le nombre de lignes désirés,mon PB c'est au nieau de l'enregistrement,je vous comme j'ai déjà dit enregistrés le code de l'article et les contenu des cellules du tableau dans la table "caractérisation"
    et merci d'avance,j'ai vraiment besoin de votre aide

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Il faut que tu mettes un nom à tes champs. Je te suggère de remplacer ton while dans tableauquantite.php par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for ($i = 0 ; $i < $quantite ; $i++) {
       echo '<tr height=20 bgcolor=#EEEEEE>';
       echo '<td width=30><input type="text" name="caracterisation['. $i .'][inventaire]" /></td>';
       echo '<td width=30><input type="text" name="caracterisation['. $i .'][serie]" /></td>';
       echo '<td width=30><input type="text" name="caracterisation['. $i .'][caracterisation]" /></td>';
       echo '</tr>';
    };
    Ensuite tu récupère un tableau de caractérisation dans $_REQUEST['caracterisation']. Pour vérifier le contenu =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump('<pre>', $_REQUEST['caracterisation'], '</pre>');

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut tableau de taille variable
    Bonjours,
    désolée j'ai pas compris votre solution
    s'il vous plait est ce vous pouvez m'expliquer plus
    merci beacoup d'avance

  10. #10
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Qu'est ce que tu n'as pas compris ?

  11. #11
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut tableau de taille variable
    salut,
    j'ai pas compris où est le code qui va me permettre d'inserer les champs(code-artile,N°serie,N°inventaire,...)dans mla table caractérisation,
    désolée pour cette question,mais vraiment je suis débutante en PHP,et c'est mon première application en PHP
    merci d'avance

  12. #12
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Arf.

    Il parait que si quelqu'un à faim, il vaut mieux lui apprendre à pecher que de lui donner un poisson.
    Sur cette bonne parole, je te suggère de t'attarder sur http://php.developpez.com/cours/

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    Il est méchant Mr.N, mais il a raison

    Donc je ne vais pas faire le code à ta place, car tu n'apprendras rien, et ce n'est pas le but de ce forum

    Mais pour expliquer un peu plus, quelques remarques :
    le code que t'a donné Mr.N, c'est pour que ton tableau dynamique soit un formulaire qui fonctionne
    mais pour insérer les champs dans la table de ta base de données, il faut faire des requêtes mysql avec des intructions tel que INSERT, REPLACE, etc. Et autant que j'ai vu (vite fait) il n'y a rien de tel dans ton code. C'est là que Mr.N te suggère de lire les cours, et je précise ceux concernant mysql, par exemple http://cyberzoide.developpez.com/php4/mysql/

  14. #14
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut tableau de taille variable
    bonjour,
    oui c'est vrai Mr N. a raison,car c'est pas bien pour moi de me donner la solution ,il faut que je fasse un effort comme même,
    bon,avant d'attaquer la requête d'insertion,ce que j'ai pas compris dans le code de Mr N. est l'instruction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td width=30><input type="text" name="caracterisation['. $i .'][inventaire]" /></td>';
    à quoi sert cet instruction?
    et aussi j'ai pas compris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump('<pre>', $_REQUEST['caracterisation'], '</pre>');
    pourquoi récupèrer un tableau de caractérisation ?
    et merci beaucoup d'avance

  15. #15
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par salirose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td width=30><input type="text" name="caracterisation['. $i .'][inventaire]" /></td>';
    à quoi sert cet instruction?
    C'est exactement la même que la tienne sauf que j'ai rajouté un nom à tes champs.

    Citation Envoyé par salirose
    pourquoi récupèrer un tableau de caractérisation ?
    Ben c'est pas ce que tu demandes ? C'est vrai que j'aurais du mettre caracterisation au pluriel, mais tu affiche un tableau de n lignes permettant de saisir des caractérisations(n° inventaire, n° série, n° caractérisation). Donc il faut bien que tu reçoivent en retour un tableau... Ou alors j'ai mal compris...

  16. #16
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut tableau de taille variable
    bonjour,
    non ,vous avez bien compris,ma question maintenant est pourquoi je dois mettre un nom à mes champs?
    si j'ai bien compris aprés la récupération de du tableau je dois maintenant inserer le dans ma table caractérisation,
    merci beacoup pour votre aide

  17. #17
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Re-Arf

    C'est quand même la base ^^
    Si tu ne nommes pas un champ comme veux-tu récupérer sa valeur ?

Discussions similaires

  1. Créer un tableau de taille variable (php5)
    Par SkyPunisher dans le forum Langage
    Réponses: 14
    Dernier message: 16/06/2008, 12h16
  2. sommes des cases d'un tableau de taille variable
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/04/2008, 00h18
  3. Sélectionner tableau a taille variable
    Par Iloon dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/02/2008, 16h20
  4. Réponses: 1
    Dernier message: 14/09/2006, 10h53
  5. [TP] Tableau de taille variable
    Par Ripley dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 30/01/2006, 15h36

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