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 :

probleme de mise en forme des données


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Par défaut probleme de mise en forme des données
    bonjour à tous,
    Je suis en train de réaliser un logiciel actuellement, et je rencontre un petit probleme...

    Alors en fait j'ai crée un formulaire dans lequel, l'utilisateur saisie :
    -un materiel
    -une quantite
    -un prix
    une fois remplis les données sont stockées dans une table mysql sous la forme :
    materiel1-quantite1-prix1-materiel2-quantite2-prix2-...ect
    Et ce que je voudrais faire c'est grace à une boucle de type while (je pense), c'est afficher ces données dans un tableau comme celui ci :
    -------------------------
    materiel1|quantite1|prix1|
    -------------------------
    materiel2|quantite2|prix2|
    -------------------------
    de plusle nombre de couple (materiel, quantite, prix) peu varier mais ne depassera jamais 20

    est ce que quelqu'un aurait une idée s'il vous plait

    Merci d'avance

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour

    Je suppose que ta table est une table matériel (nom_materiel, quantite, prix). Si c'est bien le cas tu peux récupérer le contenu de ta table avec une requête du genre
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from materiel
    et faire un affichage dans une boucle while en utilisant les tableaux html avec quelque chose du genre :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $rq = "select * from materiel";
    $sql= mysql_query($rq) or die("requete $rq : ".mysql_error());
     
    while($data =mysql_fetch_array($sql)){
      echo "<tr>";
        echo "<td> $data['nom_materiel'] </td>";
        echo "<td> $data['quantite'] </td>";
        echo "<td> $data['prix'] </td>";
      echo "</tr>
    }
    plus d'infos sur les tableaux html
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Par défaut
    Salut Celira deja merci pour avoir repondu ^^
    Et non justement le probleme c'est que ces données sont stockées dans un seul champs materiel sous la forme materiel1-quantite1-prix1-materiel2-quantite2-prix2-...ect
    Donc pour le moment je recupere les données avec :
    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
    // on recupere le materiel utilisé //
    $a="1";
    $cout_materiel_total=0;
    $mat="";
    while($a<=20)
    {
    if ($_POST['materiel'.$a]!="aucun")
    {
    // on stocke les variables dans un tableau //
    $tab[$a][]=$_POST['materiel'.$a];
    $tab[$a][]=$_POST['nombre'.$a];
    $tab[$a][]=$_POST['coef_maj'.$a]*$_POST['prix_unit'.$a];
    $tab[$a][]=($_POST['coef_maj'.$a]*$_POST['prix_unit'.$a])*$_POST['nombre'.$a];
    $tab[$a][]=strtr($_POST['prix_unit'.$a],".,", ".");
    $tab[$a][]=$_POST['coef_maj'.$a];
     
    // calcul du cout des materiels //
    $cout_materiel_total=$tab[$a][3]+$cout_materiel_total;
    }
    // on recupere les données du select concernant les affectations //
     
    if (isset($tab[$a]) and isset($tab[$a][1]) and $tab[$a][1]!=0)
    {
      for ($i=0;$i<=3;$i++)
      {
        $mat=$tab[$a][$i]."-".$mat;
      }
    }
    $a++;
    }
    met je n'obtiens le resultat que j'aimerais obtenir (celui que j'explique dans mon opremier post)
    Est ce que tu vois comment parvenir a ce que je voudrais???

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bon si j'ai bien compris le fonctionnement du bout de code que tu as donné, tu récupèeres les champs materiel, quantite, prix de ton formulaire et tu les concatènes ensembles dans une variable $mat.
    Donc question : que fais-tu de la variable $mat ensuite ?
    Si tu veux faire l'affichage à ce moment, tu peux rajouter l'équivalent du code que je t'ai donné au niveau de la concaténation.
    Code php : 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
    // on recupere le materiel utilisé //
     
    $cout_materiel_total=0;
    $mat="";
    //while($a<=20) mieux vaut utiliser un for au lieu du while
    for ($a=1;$a<=20;a++)
    {
    if ($_POST['materiel'.$a]!="aucun")
    {
    // on stocke les variables dans un tableau //
    $tab[$a][]=$_POST['materiel'.$a];
    $tab[$a][]=$_POST['nombre'.$a];
    $tab[$a][]=$_POST['coef_maj'.$a]*$_POST['prix_unit'.$a];
    $tab[$a][]=($_POST['coef_maj'.$a]*$_POST['prix_unit'.$a])*$_POST['nombre'.$a];
    $tab[$a][]=strtr($_POST['prix_unit'.$a],".,", ".");
    $tab[$a][]=$_POST['coef_maj'.$a];
     
    // calcul du cout des materiels //
    $cout_materiel_total=$tab[$a][3]+$cout_materiel_total;
    }
    // on recupere les données du select concernant les affectations //
     
    if (isset($tab[$a]) and isset($tab[$a][1]) and $tab[$a][1]!=0)
    {
      echo "<tr>";
      for ($i=0;$i<=3;$i++)
      {
        $mat=$tab[$a][$i]."-".$mat;
        echo "<td> $tab[$a][$i] </td>";
      }
      echo "</tr>";
    }
     
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Par défaut
    excuse moi je me suis trompé de code

    en fait il s'agit de celui ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $tab=explode('-', $materiel);
    for ($i=1;$i<=(sizeof($tab)-1)/4;$i++)
    { 
      $tab2[$i][0]=$tab[$i];
      $tab2[$i][1]=$tab[$i+1];
      $tab2[$i][2]=$tab[$i+2];
      $tab2[$i][3]=$tab[$i+3];
     
    echo $tab2[$i][0];
    echo $tab2[$i][1];
    echo $tab2[$i][2];
    echo $tab2[$i][3];
    }
    Mais avec ce code j'ai mes données les unes à la suites des autres... et je n'arrive pas à les isolées : mettre les materiels ensemble dans une variable puis les quentite dans une autres et enfin les prix dans une derniere, car je pense que si j'arrivais à faire ça je pourrais ensuite obtenir l'affichage souhaité grace à une boucle while qu'en penses tu??
    et encore mille excuse pour tavoir donnée le mauvais code ^^

  6. #6
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    Ben la je comprends mieux moi aussi ;-)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $tab=explode('-', $materiel);
    foreach($tab as $key=>$value)
    { 
      $tab2[(int)$key/4][$key%4]=$value;
    }
    C'est un peu au feeling, mais cela ne devrait pas etre loin.

    (int)$key/4 prend la partie entiere de la division donc avance de 1 tous les 4
    $key%4 est le modulo donc revient a zero tous les 4.

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    C'est sûr que si tu ne donnes pas le bon code, on ne va pas avancer

    Ce que je ne comprends pas, c'est que tu avais parlé de table mysql. Alors pourquoi ne pas mettre tes variables dans une table comme celle dont je parlais au début au lieu de les concaténer à la réception du formulaire.

    Bon, juste en ce qui concerne l'affichage :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    echo '<table border>'; //début du tableau
    for ($i=1;$i<=(sizeof($tab)-1)/4;$i++)
    { 
    // tu décomposes tes variables 
    //et ensuite tu les affiches dans un tableau
     echo '<tr>'; //début de la ligne
      echo "<td> $tab2[$i][0] </td>"; //une case
      echo "<td> $tab2[$i][1] </td>"; // une autre case
      echo "<td> $tab2[$i][2] </td>"; // encore une case
      echo "<td> $tab2[$i][3] </td>"; // encore une case
     echo '</tr>';//fin de la ligne
    }
    echo '</table>'; //fin du tableau
    En évitant de faire ce que je fais toujours : oublier les balises <table> </table>
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    Petite correction, $i doit commencer a 0 sinon tout va etre decale dans le premier traitement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $tab=explode('-', $materiel);
    for ($i=0;$i<=(sizeof($tab)-1)/4;$i++)
    { 
      $tab2[$i][0]=$tab[$i];
      $tab2[$i][1]=$tab[$i+1];
      $tab2[$i][2]=$tab[$i+2];
      $tab2[$i][3]=$tab[$i+3];
     
    echo $tab2[$i][0];
    echo $tab2[$i][1];
    echo $tab2[$i][2];
    echo $tab2[$i][3];
    }
    Pour le reste Celira a tout dit.

  9. #9
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Par défaut
    Merci à vous deux c'est exactement ce que je veux, il ne me reste plus qu'à arranger un dernier petit truc et sa sera bon (j'ai des array[] qui apparaissent dans mes cases à la place des données)

    En tout cas vraiment merci c'est vraiment agreable de pouvoir compter sur une entre aide serieuse merci à vous

Discussions similaires

  1. [XL-MAC 2008] Export .csv Sélection et mise en forme des données
    Par julie13or dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2011, 12h33
  2. Mise en forme des données sous Excel
    Par mhamedbj dans le forum Cognos
    Réponses: 2
    Dernier message: 27/08/2011, 16h00
  3. [2008] Mise en forme des données
    Par Valochette dans le forum SSRS
    Réponses: 2
    Dernier message: 12/05/2011, 09h34
  4. [MySQL] Mise en forme des données
    Par Silborn dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/12/2006, 18h00
  5. Réponses: 6
    Dernier message: 16/06/2006, 14h20

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