Rechercher : dans
Par :

Formulaire mysql /php

Dernière réponse le 10 avr 2009 à 17:54:59 eroselrey, le 3 nov 2006 à 10:40:38 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Formulaire mysql /php » dans :
Installation rapide de LAMP (Apache+MySql+php) sous Linux Voir LAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...

1

P@, le 3 nov 2006 à 11:35:57

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 ?? ..:::P@ ... a tras, a PoOf ou a chou :::..

L'imagination est plus importante que la connaissance. Albert Einstein

Répondre à P@

2

eroselrey, le 3 nov 2006 à 11:55:24

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

Répondre à eroselrey

3

P@, le 3 nov 2006 à 12:05:09

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 ..:::P@ ... a tras, a PoOf ou a chou :::..

L'imagination est plus importante que la connaissance. Albert Einstein

Répondre à P@

4

eroselrey, le 3 nov 2006 à 12:50:14

Tu n'as pas un exemple par hasard ?

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

Répondre à eroselrey

5

P@, le 3 nov 2006 à 13:42:18

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 ??? ..:::P@ ... a tras, a PoOf ou a chou :::..
L'imagination est plus importante que la connaissance. Albert Einstein

Répondre à P@

6

eroselrey, le 3 nov 2006 à 19:34:32

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é

Répondre à eroselrey

7

eroselrey, le 3 nov 2006 à 22:34:11

Bonsoir,

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

Merci à tous

Répondre à eroselrey

8

PhP, le 4 nov 2006 à 19:07:31

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 ?
PhP  
Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...

Répondre à PhP

9

eroselrey, le 4 nov 2006 à 20:56:23

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

;)

Répondre à eroselrey

10

 meabdelouahed, le 10 avr 2009 à 17:54:59

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);

Répondre à meabdelouahed