Formulaire mysql /php

Résolu
eroselrey Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
 meabdelouahed -
Bonjour,

Je suis entrain de créer un formulaire "liste déroulante pour des produits lié avec mysql.

Je souhiate faire parraitre sur la meme page le prix et la réference du produit sélectioné :

<?php
//on se connecte à la base de donnée
$SQL = mysql_connect('localhost','root','') or die ("erreur de connexion");print ("Connexion réussie.");

//on selectionne votre base
mysql_select_db('lcompresseurs',$SQL) or die ("erreur de connexion base");

$result=mysql_query("SELECT Ref,Compresseur,Prix,Design FROM dixair");
mysql_close();
?>

<p>Veuillez choisir votre compresseur :</p>

<SELECT NAME="compresseur">
<?
while($val=mysql_fetch_array($result))
{
echo "<OPTION VALUE='".$val["Compresseur"]."'>".$val["Compresseur"]."</option>";
}
?>
</SELECT>
<input type="submit" value="Vérifier le prix" />

Jusque la tout fonctionne ma liste est reprise de mysql mais je n'arrive pas a affiché un résultat quand la personne choisi le produit.

Pouvez vous m'aider ?????

Merci
A voir également:

9 réponses

P@ Messages postés 1709 Date d'inscription   Statut Membre Dernière intervention   185
 
tu as fait une page de traitement ???
Tu as bien mis une balise form avec l'action ???

Tu as fait quoi pour montrer le prix ??
0
eroselrey Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Oui j'ai mis sur :

<form action="Resultat_Dixair.php" method="post">

<SELECT NAME="compresseur">
<?
while($val=mysql_fetch_array($result))
{
echo "<OPTION VALUE='".$val["Compresseur"]."'>".$val["Compresseur"]."</option>";
...

Sur la seconde page pour afficher les résultats, je ne sais comment continuer

As tu une idée ?

Merci pour ton aide
0
P@ Messages postés 1709 Date d'inscription   Statut Membre Dernière intervention   185
 
dans Resultat_Dixair.php, tu récuperes les données de ton formulaire et tu les affiche comme tu le sent.
Si dans ton formulaire tu n'as que ta liste déroulante alors tu va recevoir le compresseur à toi de faire la requete en base pour aller en chercher le prix avec cette données. :D

Normalement, le bouton submit te renvoie sur la page d'action avec les données récolté par le formulaire
0
eroselrey Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Tu n'as pas un exemple par hasard ?

je débute...et je n'ai pas tout assimilé encore...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
P@ Messages postés 1709 Date d'inscription   Statut Membre Dernière intervention   185
 
tu créer ta page Resultat_Dixair.php

tu fais une requete du type
$cherchePrix = mysql_query("select prix, compresseur from matable where compresseur = $compresseur");
$quelPrix = mysql_num_rows($cherchePrix);
for ($x=0;$x<$quelPrix;$x++){
$prix = mysql_result($cherchePrix,$x,'prix');
echo "le prix de $compresseur est $prix";
}


c'est plus clair ???
0
eroselrey Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
En effet j'ai avancer...

mais j'ai toujours un petit souci : le programme m'annonce ceci :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

et je n'arrive pas a comprendre la formule for

Peux tu m'expliquer ?

Merci...vraiment désolé
0
eroselrey Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir,

Quelqu'un a t'il une idée sur mon petit problème ?

Merci à tous
0
PhP Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   606
 
Bsr

En clair PHP t'indique que tu as passé à la fonction mysql_num_rows() un argument (un paramètre si tu préfères) qui ne correspond pas à une ressource MySQL.

Qu'est-ce qu'une ressource MySQL ?

C'est une variable d'un type bien particulier que créé PHP afin de
pouvoir identifier et manipuler des objets de différentes natures : fichiers ouverts, connexion à MySQL, résultats d'une requête etc ...

C'est la fonction mysql_query() qui te retourne normalement une ressource MySQL : attention cependant si la requête échoue mysql_query() ne retourne plus une ressource mais une FALSE donc une variable booléenne.

Et c'est ce qui se produit ici : $cherchePrix ne contient pas une ressource MySQL mais bien FALSE !!!!

Jusqu'ici ce n'est pas trop gênant.

Cependant lorsqu'ensuite PHP appelle la fonction mysql_num_rows($cherchePrix) : il se produit alors l'erreur à laquelle tu es confrontée .

L'origine de l'erreur est donc à rechercher dans l'instruction :

$cherchePrix = mysql_query("select prix, compresseur from matable where compresseur = $compresseur");


Bref en gros tu executes une requête non valide.

En effet si le champ compresseur est de type chaîne (string) dans ta table alors ajoute des apostrophes et écrit ceci :
$cherchePrix = mysql_query("select prix, compresseur from matable where compresseur = '".$compresseur."'");



j'espère aussi qu'avant d'utiliser $compresseur tu as bien pensé à écrire en PHP :

$compresseur = "";
if (isset($_POST["compresseur"])) $compresseur =$_POST["compresseur"] ;


En effet toutes les variables passées par des formulaires via la méthodes "post" se retrouve dans le tableau $_POST[] prédéfini.

En aucun cas PHP n'initialisera directement pour toi la variable $compresseur ni aucune autre variable passée par POST : tu dois mettre le code ci-dessus.


Syntaxe pour for
Ex :
var $i;

for($i=0; $i <10; $i++)
{
// Instructions ...
}

Ce qui peut se traduire par : pour i de 0 à 9 par pas de 1 effectue toutes les instructions.



1 : $i=0
Signifie initialise la variable $i à zéro : n'est effectué qu'une seule fois au départ

2 : $i < 10
l'expression est évaluée à TRUE ou FALSE
si c'est vrai alors les instructions sont toutes exécutées
si c'est faux alors on sort de la boucle et le for est terminé

3 : $i++
cette expression est évaluée
normalement ici il faut faire varier $i sans quoi la boucle ne s'arrête jamais
$i++ est équivalent à $i=$i+1 donc on ajoute 1 à $i

Ensuite on retourne à l'étape 2 et ainsi de suite d'où le terme de boucle.



Est-ce plus clair ?
0
eroselrey Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir,

Je te remercie enormement pour ce cours magistral.

Je vais allez vérifier cela des demain.

En tout cas ça me parle beaucoup plus.

Je te remercie PHP

;)
0
meabdelouahed
 
salut,il faut connecter php avec mysql,
<?php
$conexion=mysql_conect('localhost','root','.');
if (!$conexion
{
die('Non connecté : ' . mysql_error());
}
?>
se connecter a la base de donner
$db_nom base = mysql_select_db('nom base', $serveur);
0