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 :

Page d'étiquettes et PHP


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Par défaut Page d'étiquettes et PHP
    Bien le bonjour tout le monde.
    Ceci est mon premier post et j'espère que vos lumières eclaireront mes lacunes.

    Je vous expose mon problème.
    Je code actuellement un logiciel de commandes en php mysql.

    Je travaille dans une banque, les clients qui ont besoin d'argent (plaques de pieces) passent une commande aux comptables qui actuellement remplissent un tableau excel pas pratique du tout.

    Je m'explique, généralement une commande de client necessite plusieurs sacs. Je dois ecrire une etiquette par sac pour toutes les commandes de tous les clients.

    J'ai programme la partie commande sans aucun souci.
    Mon probleme est le suivant: je veux generer des etiquettes en fonction des commandes demandées,

    je fais donc une requete pour extraire toutes les commandes de tous les clients (jusque la pas de probleme).

    Maintenant je m'arrache les cheveux pour mettre a la suite et en forme toutes les etiquettes necessaires.

    voila ma requete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $all_commandes=mysql_query("SELECT commandes.id_commande, 
    commandes.date_commande, commandes.val_2, commandes.val_1, 
    commandes.val_05, commandes.val_02, commandes.val_01, 
    commandes.val_005, commandes.val_002, commandes.val_001, 
    commandes.id_client, commandes.nb_sacs, clients.nom_client 
    FROM commandes LEFT JOIN clients 
    	ON commandes.id_client = clients.id_client WHERE commandes.date_commande = \"$day_date\" ");
    je met les resultats dans un tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while($all_commandes2=mysql_fetch_array($all_commandes)){
    $tablo[]=$all_commandes2;
    et compte le nombre d'enregistrements

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nb= count($all_commandes2);}
    a partir de la un client peut avoir 3 ou 10 sacs. Je ne sais alors pas comment faire une etiquette par sac pour chaque client et les mettre dans un tableau aux dimensions d'une feuille d'etiquette.

    Désole pour mon roman mais ca fait bien une semaine que je cherche une solution mais en vain.

    Merci pour ceux qui auront le courage de m'aider.

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Par défaut
    Euh c'est encore moi.

    J'ai oublie de dire en fait que je fais la somme de chaque valeur pour chaque commande.
    Exemple: pour un client X j'ai une commande de 2500€ en pieces de deux.
    Une plaque fait 500 €.
    Je divise donc 2500 par 500 ce qui me donne 5 plaques et ce pour chaque valeur.

    Un sac ne peut contenir que 5 plaques.

    Une fois le total des plaques je divise le tout par 5 pour avoir le nombre de sacs et met le resultat dans une variable $nb_sacs.
    Donc je fais une boucle for

    #$nb= le nombre d'enregistrements retourné.

    #for ($i=0; $i<=$nb; $i++){
    #$client=$tablo[$i][nom_client]

    #for ($j=0; $j<=$nb_sacs; $j++{

    c'est à ce moment la que je veux mettre mes etiquettes à la suite dans un tableau de 3 colonnes mises en forme
    }
    }
    Et je ne sais comment faire

    Merci pour ceux qui m'aide.

  3. #3
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut
    peux-tu utiliser les balises de codes (l'icône # dans la zone d'écriture du post)?

    Tu peux corriger ton message en cliquant le bouton "Editer".

    Je pense que tu auras plus de réponses... Pense à lire ce post

    Merci et à tout l'heure

  4. #4
    Expert confirmé 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
    Par défaut
    Citation Envoyé par wider
    Et je ne sais comment faire

    Merci pour ceux qui m'aide.
    Si on t'aide, tu nous envoie une plaque de pièces de deux ? Ou un sac, je ne suis pas regardant... ^^
    (Qui ne tente rien n'a rien )

  5. #5
    Expert confirmé 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
    Par défaut
    Tu nous parle d'étiquettes, mais à aucun moment tu ne décrit ce qu'est concrètement une étiquette et le lien avec tes calculs. Que contient une étiquette ?

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Par défaut
    En effet je n'ai pas detaillé.
    Je veux afficher le nom du client, la valeur de la commande sous cette forme:

    Client 1
    valeur
    sac 1/10

    ainsi de suite en incrementant le numero du sac en fonction du nombre total de sacs

    Une fois les etiquettes faites, je veux passer au client 2 ainsi de suite.

    Euh pour les plaques je risque de me faire licencier et du coup plus besoin de logiciel , ca peut etre une solution héhéhéhé;

  7. #7
    Expert confirmé 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
    Par défaut
    Je n'ais pas comprise ce que tu veux faire et où est ton problème

  8. #8
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Par défaut
    en fait je veux afficher mes etiquettes comme suit:

    client 1, sac 1/2 | client 1, sac2/2 | client2, sac1/3 | client2, sac2/3 | client2 sac3/3

    Ainsi de suite pour tous les sacs de toutes les commandes.

    mon souci est de pouvoir afficher les etiquettes egales au nombre de sacs de la commande selon le client et d'enquiller sur la commande du client suivant
    ainsi de suite dans un TABLEAU AUX MESURES D'UNE FEUILLE D'ETIQUETTES.

    donc dans mon etiquette, il y a le nom du client, la valeur de la commande et le nombre varie selon la valeur et le nombre de plaques.

    Désolé si je donne les infos au compte gouttes, j'imagine que ca ne doit pas etre limpide

  9. #9
    Expert confirmé 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
    Par défaut
    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
    $etiquettes = array();
    for ($i = 0 ; $i < $nb ; $i++) {
       //ici vient le calcul propre à un client : nb_sacs, valeur, ...
       for ($j = 0 ; $j < $nb_sacs ; $j++) {
          $e = '';
          $e .= 'Client: '. $tablo[$i]['nom_client'] .'<br />';
          $e .= 'Sac: '. $j .'/'. $nb_sacs;
          $etiquettes[] = $etiquette;
       }
    }
     
    $taille_planche_etiquettes = 4;
    $etiquettes = array_chunk($etiquettes, $taille_planche_etiquettes);
    echo '<table>';
    foreach($etiquettes as $row) {
       echo '<tr>';
       foreach($row as $e) {
          echo '<td>'. $e .'</td>';
       }
       echo '</tr>';
    }
    echo '</table>';
    Un truc dans ce genre ?

  10. #10
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Par défaut
    Yop Mr N.
    Merci pour ton code, je vais le tester ce soir en rentrant du travail et je te tiens au courant quant a savoir si ca marche ou pas.

    Toujours est il je te remercie beaucoup pour ta patience ( c'était pas tres clair) et pour mù'avoir proposé un code.

    Merci encore et bonne journée!!

  11. #11
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Par défaut
    Hey Mr N

    Merci beaucoup, ton code marche a merveille.

    A moi de mettre mon tableau en forme pour qu'il corresponde au poil avec une feuille d'etiquettes.

    Encore merci !!!!!


  12. #12
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Par défaut
    Yop Yop tout le monde.
    Après la magistrale solution de Mr N à mon problème de page d'étiquettes, me voila confronté à un autre dilemme et de taille (ou plutôt de mise en page) !

    Je m'explique, ma feuille d'etiquette est bien générée, pas de problemes.

    Mon souci etant que je veux que les étiquettes d'une taille spécifique : 63.5 mm sur 38 mm.

    Une feuille d'étiquettes est composée de 21 étiquettes (3 colonnes donc 7 lignes).

    je veux donc des feuilles avec des marges de 1.5cm en haut et en bas et 0.7 cm sur les cotes.

    Quans j'imprime, je ne suis pas pile poil sur les etiquettes et ca m'embete.

    Or, pour donner des tailles exprimées en cm ou mm il me faut passer pas le css en utilisant le type de media print.

    Ce sur quoi je bloque est cette satanée mise en page tout en sachant que windows par defaut définit des marges de mises en pages. Faut il en tenir compte?

    J'ai essayé beaucoup de trucs mais je débute le css et ne connais pas les automatismes.

    Merci pour ceux qui m'aident.

  13. #13
    Expert confirmé 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
    Par défaut
    Je ne vois pas où est-ce que tu bloques
    Le bout de css suivant ne suffit-il pas ?
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    td {
        width:63.5mm;
        height:38mm;
    }

    Quant aux marges d'impression, tu ne peux les gérer car ça dépend de l'imprimante.
    Si tu veux être sur que l'impression ressemble à ce qui est affiché à l'écran, passe par le format pdf.

  14. #14
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Par défaut
    Hey salut Mr N j'espère que tout va bien pour toi!!

    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
     
    @media print {
    body
    {
    padding-top : 15 mm;
    padding-bottom : 15 mm;
    padding-right : 7 mm;
    padding-left : 7 mm;
    }
    td
    {
    font-family: arial, verdana, sans-serif ;
    font-size: 15pt ; 
    width : 63.5 mm ;
    height : 38.5 mm ;}}
    Voila mon code.

    De plus d'une page à l'autre il y a des petits décalages vu que tout est incrémenté, il n'y a pas de sauts de pages entre deux.

  15. #15
    Expert confirmé 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
    Par défaut
    pourquoi @media print ?
    Autant le faire sur tous les media non ?

  16. #16
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Par défaut
    Heu ben, car je ne veux pas la meme presentation sur ma page internet et sur les feuilles que j'imprime.

    vais essayer quand meme en passant sur tous les medias.


    Sinon comment je peux faire pour placer mon tableau directement dans le coin de la feuille?
    Merci

Discussions similaires

  1. Page d'accueil en php
    Par carotte31 dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2006, 10h49
  2. Page de login -- script PHP qui ne marche pas
    Par Alexlesilex dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 24/04/2006, 16h32
  3. Script page administration et authentification Php
    Par mastercartman dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 11/03/2006, 17h34
  4. Page d'étiquettes identiques
    Par cguedj dans le forum Access
    Réponses: 2
    Dernier message: 05/10/2005, 15h55
  5. Imprimer une autre page qui est en PHP
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/08/2005, 19h32

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