Aller au contenu
Zebulon
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

RE [PHP]


Alex36

Messages recommandés

bonsoir a tous :

je voudrais faire donc toujours pour mon projet de Terminale une structure qui permeterait de faire enfait un formulaire

 

> du formulaire on entre une ref , sa cherche dans la base de donnée la ref : et sa renvoi le prix de l'article (donc la ref rentré dns le champ prevu a cet effet) dans une variable et on se sert de cette variable(avec le prix de l'article) pour calculer et afficher le resultat dans un echo ,

 

Or sa marche pas evidement :P

 

j'ai essayé une requete et ça :

 

<?php

$connexion=mysql_connect("localhost","root","root");

mysql_select_db("algotech",$connexion);

 

$prix_art=$_POST['nom_art']; <<<<<<< je sais pas comment faire la relation entre le prix et la ref :/ sachant que le prix et la ref sont dans la même table (donc pas de critère de jointure )

$qte=$_POST['qte'];

$sql=('select Prix from article where Prix=300;');

$sql=('select Prix from article where Prix="$ref_art";');

$rq = mysql_query($sql);

$total = $rq*$qte;

echo "votre devis vous coute $total euros ";

?>

 

or j'obtiens 8 euros .... chez moi 2*300 € sa fait pas 8 € :P

 

EDIT enfait il est un peu 23h40 et je me suis mis sur le code depuis pres de 5 heures maintentna et les $<variable> commencent a me sortir par les yeux !! ^^

 

j'ai trouvé j'ai mis sa mais sa me fait toujours 8 euros ....j'ai pas trop compris pourquoi ....

 

voir ci dessus la ligne modifiée( engras )

 

 

EDIT 2 apres 2 ~ test , même si je met rien dans les truc de clacul , j'obtien toujours 4 euros .... je sais pas ou il va pecher la valeur 4 !

 

apparament $rq aurait la valeur 4 !

 

'z'avez po une little idea ?

Modifié par Alex36
Lien vers le commentaire
Partager sur d’autres sites

Désolé mais je vais à nouveau te faire chier sur le fait que tu n'es pas rigoureux dans ton code :

(...)
$prix_art=$_POST['nom_art'];
(...)
select Prix from article where Prix= $ref_art
(...)
$rq = mysql_query($sql);
$total = $rq*$qte;
(...)

1) la variable $prix_art contient apparemment ce qui a été saisi dans le champ "nom de l'article"

2) tu cherches l'article dont le prix est égal à la référence saisie (ou calculée) juste avant

3) le total est égal à la quantité multipliée par ce que retourne mysql_query (indice : ce n'est pas le prix des articles commandés)

 

A ta place, j'appelerais la variable qui contient le nom de l'article "$nom_article" et celle qui contient sa référence "$ref_article". J'irais chercher en base le prix de l'article dont la référence est égale à $ref_article. J'utiliserais correctement les fonctions mysql_* pour récupérer l'indice "Prix" du tableau associatif retourné par mysq_fetch_array (au hasard...) suite à l'exécution de la requête par mysql_query (qui retourne un result_resource). Et à chaque étape je vérifierais que je suis bien en présence de tous les éléments attendus et si ce n'est pas le cas soit je donne une valeur par défaut soit je redirige le navigateur vers une page d'erreur (ou mieux, vers la page de saisie contenant les champs pré-remplis avec les valeurs reçues, plus l'affichage du message d'erreur. Comme ça l'utilisateur est prêt à repartir...)

 

Comme quoi réussir à faire un truc "qui marche" ça passe peut-être une ou deux fois par hasard, mais à reproduire à chaque coup c'est très très dur. Tu devrais plutôt prendre cinq minutes pour essayer de comprendre pourquoi ça marche...

Lien vers le commentaire
Partager sur d’autres sites

oula je vais bien lire ce que tu as mis , la sa devient chaud ^^

 

:P non tu me fait pas "chier" je suis là pour apprendre aussi !

 

le truc c'est que dans m base Mysql j'ai pas ref enfait j'ai juste NumArt Prix Marque Memoire Puissance Support CodeCat

 

je pense enfait utiliser num art plutot que la reference du produit car sinon on va y passer la nuit pour tester déja d'une part et d'autre part comme il n"ya que 15 article sa ira plusvite que d'ecrire la ref a chaque fois

Lien vers le commentaire
Partager sur d’autres sites

Qu'est-ce que tu appelles "la ref" d'un article, si ce n'est pas son numéro identifiant unique permettant de le retrouver à coup sûr ? (ce qui pourrait tout aussi bien être désigné par "son numéro", puisque d'un certain côté le numéro de l'enregistrement dans la table permet de retrouver un unique article, donc c'est un peu sa référence, non ?)

 

D'habitude on appelle cela un "id" (identifiant, utilisé comme clé dans la table parce que c'est forcément unique et non nul) et c'est quasiment toujours accompagné d'un libellé (l'id étant un nombre, et le libellé du texte permettant à un humain de savoir ce que représente l'enregistrement)...

 

D'où la structure de la table :

num, nom, marque, memoire, puissance, id_categorie, etc.etc.

 

Par exemple, pour les articles en vente dans les magasins la "ref" peut être soit le code à barres, soit un identifiant interne appartenant au magasin (qui lui sert à retrouver chaque article de son catalogue). Chaque article a ensuite une désignation, une marque, un modèle, un prix unitaire ou au poids (éventuellement deux prix : le prix d'achat et le prix de vente), et d'autres propriétés...

Lien vers le commentaire
Partager sur d’autres sites

euh oui entait j'ai changé d'avis , je voudrai a présent savoir quel prix renvoi le produit qui contient le numero 1

 

dans la base sa sera l'article 1, donc

num art prix marque

1 300 nvidiaGforce GTX285

 

et je voudrais que le prix soit donc multiplié par la quantité renseignée dans le champ "quantités"

 

 

mysqlfetch array =

 

"Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in: blabbal"

Modifié par Alex36
Lien vers le commentaire
Partager sur d’autres sites

Dans ce cas, la requête est "select prix from articles where num = 1" (en utilisant une variable contenant le "num" pour construire la chaîne, bien sûr) et la façon d'utiliser les fonctions mysql est la suivante :

$resource = mysql_query(  ....  );
$tab_resultats = mysql_fetch_array($resource);
$prix_article = $tab_resultats["prix"];

C'est sans filet (on devrait théoriquement vérifier à chaque ligne que la fonction d'au-dessus n'a pas retourné une erreur), mais au final la variable $prix_article contient la valeur de la colonne "prix" de l'enregistrement sélectionné.

Il ne te reste plus ensuite qu'à récupérer la quantité demandée, à multiplier et à afficher le résultat.

Lien vers le commentaire
Partager sur d’autres sites

oui je suis d'accord mais enfaitl e truc c'est que l'on sait pas a l'avance quel sera le numero de l'article ! :P

la requete serait : 'select Prix FROM article WHERE "'.$num_art.'"=Prix;' mais je ne crois pas que sa ne soit possible !

 

je vais eseayer de faire comme si on connaissait déja le numero article (ici 1)

 

 

 

EDIT mais même avec fetch array sa marche pas , bon je croi que je vais aller au lit et je reprendrait tout sa demain !

 

 

 

enfait on fait sa comme systeme : algotech.th.png

 

et quand on clique sur valider , bha sa met votre devis coute x euros , mais je vais voir sa demain avec la prof :P

Modifié par Alex36
Lien vers le commentaire
Partager sur d’autres sites

Toute l'astuce consiste à construire ton formulaire de saisie pour que l'utilisateur ait sous les yeux le nom de l'article pendant que toi tu récupères l'id de l'article ;-)

De ce côté-là les listes déroulantes sont très pratiques...

 

Après, si tu demandes à l'utilisateur de saisir l'intégralité du nom de l'article avant de pouvoir regarder en base s'il y a un truc qui ressemble (vu qu'un utilisateur, ça se trompe toujours....) on est pas sortis de l'auberge !

 

-- edit --

la requete serait : 'select Prix FROM article WHERE "'.$num_art.'"=Prix;'
Je n'arrive pas à comprendre pourquoi tu veux chercher en base l'article dont le prix est égal à la référence ... si tu connais la référence, cherche l'article dont la référence est égale à ce qui a été saisi, et quand tu l'as trouvé tu prends son prix... soit tu brules les étapes, soit tu n'as pas compris comment fonctionne la clause WHERE ...
Lien vers le commentaire
Partager sur d’autres sites

c'est pour sa que j'ai changé et je met direct les numero d'article sa va plus vite ! :P

 

en effet les liste déroulantes!

mais du coup sa change le script , car enfait on doit aussi faire une structure conditionnelle pour conserver la valeur de l'article, si on veut en ajouter un autre ( reponse = oui ), pour que sa les calcules direct et si l'utilisateur renvoi le resultat non sa renvoi le total

 

 

Edit :

soit tu brules les étapes, soit tu n'as pas compris comment fonctionne la clause WHERE ...

ou soit je suis fatigué jcrois bien :P d'habitude j'y arrive bien aux requetes , j'en fait preque tout les jours en cour de GSI ! ^^

Modifié par Alex36
Lien vers le commentaire
Partager sur d’autres sites

si tu connais la référence, cherche l'article dont la référence est égale à ce qui a été saisi, et quand tu l'as trouvé tu prends son prix..

 

c'est ce que je veut faire mais je vois pas comment y arriver là !!

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...