PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 29-06-2011 12:34:11

r3dzo
Membre
Inscription : 29-06-2011
Messages : 6

[projet] FACTURE - PHP/MYSQL

Bonjour à tous, je viens vous demander de l'aide car j'ai un projet pour les cours mais là je patauge sec wink

J'explique le projet: créer une facture en PHP/mySQL.

Pour celà j'ai créer 3 tables:

Facture(#id, titre, date, total...)
User(#id, nom, adresse)
Produit(#id, désignation, prix, stock)

Le but est en saisissant le code_user (#id) les champs adresse, nom apparaissent. De même pour les produits, on indique le code_produit, la quantité et le calcul du total se fait automatiquement....

J'ai essayé de faire au plus simple: afficher dans un tableau toutes les entrées et le client n'aurais qu'à choisir la quantité.
Malheureusement, le total ne s'affiche pas, et il y'a des bug du au manque de _get.

Je vous mets le bout du code en question... si quelqu'un pouvais me sauver, je perds le peux de cheveux qu'il me reste wink

<?php
  $req = $bdd->query('SELECT * FROM produit');
 
  echo ('
    <table border="1">
      <tr>
        <td>Code article</td>
        <td>Nom</td>
        <td>Qte</td>
        <td>Prix</td>
        <td>Total</td>
      </tr>
   
    '
);
 
  while ($data = $req->fetch()) {
 
 
  $id = $data['id_produit'];
 
 
    echo ('
   
    <tr>
      <td>
        '
.$id. '
      </td>
      <td>
        '
.$data['nom_produit']. '
      </td>
      <td>
      <input type="text" size="3" name="qte'
.$id. '" />
      </td>
      <td>
      <input type="text" size="3" name="pu'
.$id. '"
      value="'
.$data['prix_produit']. '" />
      </td>
      <td>
      <input type="text" size="3" name="tt'
.$id. '"
      value="" disabled="disabled"/>
      </td>
    </tr>
   
      '
); }
   
    echo (' </table> ');
   
 
?>

Hors ligne

#2 29-06-2011 12:41:33

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [projet] FACTURE - PHP/MYSQL

Saluton,
Déjà, à première lecture, il manque une table, ligneDeFacture.
Ensuite, si tu veux une modification dynamique de la page au fil des saisies, il faut te tourner vers AJAX et/ou JQUERY.
Mais pour ça, le spécialiste c'est son Pierrot.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 29-06-2011 12:46:18

r3dzo
Membre
Inscription : 29-06-2011
Messages : 6

Re : [projet] FACTURE - PHP/MYSQL

j'ai pensé au AJAX, mais je ne sais pas comment récupérer les infos :s
du coup je suis partit sur tout php...

la table lignDeFacture servirais à quoi ?
genre un
détail_commande(N°com, ref_prod, prix unit, qte..) ?

Hors ligne

#4 29-06-2011 12:58:55

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [projet] FACTURE - PHP/MYSQL

r3dzo a écrit :

j'ai pensé au AJAX, mais je ne sais pas comment récupérer les infos :s
du coup je suis parti sur tout php...

Soit tu attends Pierrot, soit tu es obligé de soumettre ton formulaire à chaque saisie

r3dzo a écrit :

la table lignDeFacture servirait à quoi ?
genre un
détail_commande(N°com, ref_prod, prix unit, qte..) ?

le prix unitaire est déjà dans la table produit. N'introduisons pas de redondance dans la base.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 29-06-2011 13:08:48

r3dzo
Membre
Inscription : 29-06-2011
Messages : 6

Re : [projet] FACTURE - PHP/MYSQL

Je vais attendre l'aide de ton ami pierrot wink mais une question en passant... est-il possible d'induire une variable dans une variable ?
J'explique: moi j'ai des entrées qte1..qte11, pu(prix unitaire)1..pu11 et je veux faire le total par article et le montant total...

J'aimerais faire une variable du style $qte.$i -> $i serait la variable id comme plus haut....
si quelqu'un m'a compris (j'avoue que j'ai un peu de mal à m'exprimer..)

Hors ligne

#6 29-06-2011 13:31:09

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [projet] FACTURE - PHP/MYSQL

je suis là wink
j'veux bien aider, mais là, je dois avouer que je n'ai pas très bien compris big_smile

Exprime tes besoins le plus précisément possible et je vois çà wink

a++

Hors ligne

#7 29-06-2011 14:24:18

r3dzo
Membre
Inscription : 29-06-2011
Messages : 6

Re : [projet] FACTURE - PHP/MYSQL

Je suis en train de faire héberger mes projets pour que vous ayez une vue plus claire....

Mais en attendant je vais essayer d'être plus claire et précis, merci d'ailleurs pour votre aide car sa doit pas être évident de me relire smile

Donc: création d'une facture le but étant l'automatisation/optimisation des tâches.

objectif finale de la facture(produit)

je sélectionne le produit désiré (nom_produit) > les infos s'entre automatiquement à partir de la BDD (prix, stock...)
j'entre la quantité désiré et le calcul $qte * $prix ce fait automatiquement.

Au début j'avais un code comme sa (pas avec la même bdd)

//affiche dans le select la liste produit
    $jeux = $bdd->query("SELECT * FROM jeux_video");
    $qte = $_GET['qte'];
    $prod = $_GET['produit'];
   
      while ($data = $jeux->fetch())
     
        {
          //$pu = ($bdd->query('SELECT prix FROM jeux_video WHERE ID = ' .$prod. ''));
         
          $tt = $pu * $qte;
          //$pu = echo('<script language="javascript">GetElementByName("produit")</script>');
          echo ('<option name="' .$data['ID']. '"> '.$data['nom'].'</option>');
         
         
        }
        echo('</select>');
        //echo ('<input type="text" name="prix" value="' .$pu. '" />');
//echo ('<input type="text" name="qte" value="" />');
//echo ('<input type="submit"  value="go" />');

en appuyant sur le submit sa ajouté une nouvelle ligne dans le tableau récapitulatif.
j'ai eu l'occasion de le faire en js ça ressemblais à sa

// 4 variables globales utilises pour stocker tout le bordel
var TableauNotes = new Array();
var TableauCoef = new Array();
var TableauLib = new Array();
var SumCoef = 0;
var SumPts = 0;

function afficher_matiere1(){
  var indice_selectionne=document.tablo1.matiere1.selectedIndex;
  var chango=document.tablo1.matiere1.options[indice_selectionne].value; switch (chango){
  case "mat11":document.tablo1.lib1.value="français";document.tablo1.coeff1.value="2"; break;
  case "mat21":document.tablo1.lib1.value="math";document.tablo1.coeff1.value="3"; break;
  case "mat31":document.tablo1.lib1.value="architecture";document.tablo1.coeff1.value="4"; break;
  case "mat41":document.tablo1.lib1.value="bureautique";document.tablo1.coeff1.value="5"; break;
  case "mat51":document.tablo1.lib1.value="anglais";document.tablo1.coeff1.value="6"; break;
  case "mat61":document.tablo1.lib1.value="système";document.tablo1.coeff1.value="7"; break;
  default:document.tablo1.lib1.value="----";document.tablo1.coeff1.value="----";break;
}
}
function calculcoeff() {
  var valuecoeff=document.tablo1.coeff1.value
  var valuenote=document.tablo1.note1.value
}

function add_note(value, coef, lib)
{
  // calcule les points qu'apportent la note en fonction du coef
  var pts = value * coef;
  var lib = document.tablo1.lib1.value

  // stockage de la note et du coef dans leur tableau respectif
  TableauNotes.push(value);
  TableauCoef.push(coef);
  TableauLib.push(lib);
 
  // calcule la somme des points que le mec a
  SumPts = SumPts + parseInt(pts);
  // calcule la somme des coef
  SumCoef = SumCoef + parseInt(coef);

}

function calc_moyenne()
{
  // calcule la moyenne grace a la somme des pts divise par la somme des coef
  var Moyenne = SumPts / SumCoef;
  // On stock le nom de l'eleve pour pouvoir l'identifier dans son id
  var Eleve = document.eleve1.nom.value
 
  // affiche toutes les valeurs calcule (utile pour le debug) en commentaires la
  //alert("somme des points:"+SumPts+"\nsomme des coefs:"+SumCoef+"\nliste des notes"+TableauNotes+"\nliste des coefs:"+TableauCoef+"\nmoyenne:"+Moyenne);

  // met a jour les div avec les bonnes informations en changeant leur contenu grace a leur id
  document.getElementById('moyenne').innerHTML = Moyenne;
    document.getElementById('eleve').innerHTML = Eleve;

  if (Moyenne < 10)
    document.getElementById('appreciation').innerHTML = "travail insuffisant";
  else if (Moyenne >= 10 && Moyenne <= 12)
    document.getElementById('appreciation').innerHTML = "assez bon travail";
  else
    document.getElementById('appreciation').innerHTML = "tres bon travail";
}

function aff_tab()
{
  var i = 0;
  var tableau = '<table><tr><th>Note</th><th>Coef</th><th>Matieres</th></tr>';
 
  while (i < TableauNotes.length)
  {
    tableau += '<tr><td>'+TableauNotes[i]+'</td><td>'+TableauCoef[i]+'</td><td>'+TableauLib[i]+'</td></tr>';
    i++;
  }
  tableau += '</table>';
  document.getElementById('liste').innerHTML = tableau;
}

<input type="button" value="ajouter (+)" onclick="add_note(note1.value, coeff1.value, lib1.value), aff_tab()";>

qui était un projet de buletin en js/html uniquement....

là on doit utiliser du php et j'y arrive pas donc soit
je reprend le code js et essaie de récuperer les info en php pour les inscrire en sql
soit je refais tout...

Est-ce que c'est plus clair ? hmm

Hors ligne

#8 29-06-2011 14:59:08

r3dzo
Membre
Inscription : 29-06-2011
Messages : 6

Re : [projet] FACTURE - PHP/MYSQL

voilà j'ai heberger le buletin fais en javascript pour avoir une vue sur ce que je voudrais faire smile
(j'hebergerais le reste plus tard->pas de ftp au taf)

http://nxt3d.franceserv.com/cheese/mbhome.html

Hors ligne

#9 29-06-2011 15:55:47

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [projet] FACTURE - PHP/MYSQL

en fait, tu veux faire quoi ?

un facture ou un bulletin de note ?


non, rien est clair roll

a++

Hors ligne

#10 29-06-2011 17:06:32

r3dzo
Membre
Inscription : 29-06-2011
Messages : 6

Re : [projet] FACTURE - PHP/MYSQL

facture || bulletin, du moment où on affiche/écrit des données SQL.
Dans les deux cas il y'a un moment où l'on doit calculer la somme (ou la moyenne pour le bulletin) des entrées, avec un nombre inconnu de produits (ou notes).
Sur le site ci-dessus on voit bien le tableau ou entrer les data, et l'autre tableau récapitulatif, avec le js j'ai pu faire des onChange (que j'arrive pas à reproduire avec PHP)
comme cela l'utilisateur n'a que peu de donnée à entrer (feignant les prof hmm).

Si déjà j'arriver à retranscrire celà en PHP se serai bien... et ensuite je devrais m'occuper des sauvegardes des factures par user (ou notes par élèves)

Merci Pierrot, kris déjà de m'avoir consacré du temps wink

Hors ligne

Pied de page des forums