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

Langage PHP Discussion :

Insérer un tableau HTML en base de données


Sujet :

Langage PHP

  1. #1
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    583
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 583
    Points : 265
    Points
    265
    Par défaut Insérer un tableau HTML en base de données
    Bonjour,

    J'ai un petit dilemme que mes minces compétence en PHP ont du mal à résoudre
    J'ai un tableau HTML déclarer et remplis avec des données chopé dans une base mysql:
    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
     
    printf ("<form name=\"modAST\" method=\"post\" action=\"Astreinte.php?action=sav&mois=$mois\"><table border=\"1\" cellspacing=\"0\" align=\"center\" border=\"1\" cellspacing=\"0\" bgcolor=\"white\">
            <tr><td><font color=\"black\" size=\"2\"><b><center>Date</center></b></font></td><td><font color=\"black\" size=\"2\"><b><center>Semaine</center></b></font></td><td><font color=\"black\" size=\"2\"><center><b>NB d'hr jour/semaine</b><br>tx horaire $taux[1]</center></font></td><td><font color=\"black\" size=\"2\"><center><b>NB d'hr nuit/semaine</b><br>tx horaire $taux[2]</center></font></td>
    <td><font color=\"black\" size=\"2\"><center><b>NB d'hr jour WE ou ferie</b><br>tx horaire $taux[3]</center></font></td><td><font color=\"black\" size=\"2\"><center><b>NB d'hr nuit WE ou ferie</b><br>tx horaire $taux[4]</center></font></td><td><font color=\"black\" size=\"2\"><center><b>Prime dispo</b></center></font></td>
    <td><font color=\"black\" size=\"2\"><center><b>Montant a payer</b></center></font></td></tr>");
     
           while ($row = mysql_fetch_row($result))
           {
             $Montant=($row[4]*$taux[1])+($row[5]*$taux[2])+($row[6]*$taux[3])+($row[7]*$taux[4])+$row[8];
     
             $Montant_Total=$Montant_Total+$Montant;
     
             printf ("<tr><td><font color=\"black\" size=\"2\"><center><input type=\"text\" name=\"date\" size=\"14\" value=\"$row[2]\"></center></td><td><font color=\"black\" size=\"2\"><center><input type=\"text\" name=\"num_sem\" size=\"4\" value=\"$row[3]\"></center></td><td><font color=\"black\" size=\"2\"><center><input type=\"text\" name=\"nb_js\" size=\"14\" value=\"$row[4]\"></center></td><td><font color=\"black\" size=\"2\"><center><input type=\"text\" name=\"nb_ns\" size=\"14\" value=\"$row[5]\"></center></td><td><font color=\"black\" size=\"2\"><center><input type=\"text\" name=\"nb_jwf\" size=\"14\" value=\"$row[6]\"></center></td><td><font color=\"black\" size=\"2\"><center><input type=\"text\" name=\"nb_nwf\" size=\"14\" value=\"$row[7]\"></center></td><td><font color=\"black\" size=\"2\"><center><input type=\"text\" name=\"dispo\" size=\"8\" value=\"$row[8]\"></center></td><td><font color=\"black\" size=\"2\"><center><b>$Montant €</b></center></td></tr>");
     
           }
    Je me retrouve donc avec autant de lignes dans le tableau que de lignes d'enregistrement dans la base de donnée et des input ayant le même nom. Ce pose alors le problème que je ne voit pas comment faire, comment récupéré la valeur de ces champs ayant le même nom pour les sauvegarder en base?

    Si il faut que je revois tous (ce que je pense) dites moi comment vous feriez.

    Merci.

  2. #2
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Personnellement
    - j'utiliserais echo et des guillemets me permettant de ne pas avoir des echappements partout
    - je n'ecrirais pas mon code sur une seule ligne parce qu'on ne voit rien
    - j'utiliserais du CSS
    - j'utiliserais un nom de champ en tableau avec l'id comme reference :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
             echo '<tr>
                           <td><input name="date['.$row['id'].']" size="14">
                           <td><input name="num_sem['.$row['id'].']" size="4">
                           <td><center><b>' . $Montant  . ' €</b></center></td>
                   </tr>';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 191
    Points : 275
    Points
    275
    Par défaut
    pour compléter la réponse de sabotage une string entre simple quote n'est pas interprétée, ce qui peut générer un gain de temps d'exécution de code.

  4. #4
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    583
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 583
    Points : 265
    Points
    265
    Par défaut
    Ok, merci pour ces réponses, je vais refaire et optimiser tous ca

  5. #5
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    583
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 583
    Points : 265
    Points
    265
    Par défaut
    Encore une question par rapport à l'astuce de sabotage. Comment vous récupérer ces variables envoyer par POST?

    J'ai essayer comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $jour=$_POST[jour['.$id[0].'] ];
    Et diverses façon, mais j'ai pas trouver la bonne.

    Merci.

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut parcourir le tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($_POST['date'] as $id=>$value) {
       echo 'date : ' . $value;
       echo 'num_sem : ' . $_POST['num_sem'][$id];
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [php5]tableau HTML + enregistrement base de données
    Par fanette dans le forum Langage
    Réponses: 20
    Dernier message: 06/06/2007, 16h12
  2. insérer des élément dans une base de donné
    Par wiss20000 dans le forum JDBC
    Réponses: 5
    Dernier message: 01/03/2007, 14h49
  3. [MySQL] refaire le tableau de la base de données
    Par jarbi62 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 12/11/2006, 10h57
  4. Réponses: 1
    Dernier message: 24/08/2006, 17h17
  5. [Conception] HTML et Bases de données
    Par Jukien dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 08/04/2006, 14h52

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