Téléchargement
illégal
Posez votre question Signaler

Formulaire mysql /php [Résolu]

eroselrey 9Messages postés 3 novembre 2006Date d'inscription - Dernière réponse le 10 avril 2009 à 17:54
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
Lire la suite 

Formulaire mysql /php »

10 réponses
Réponse
+0
moins plus
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 ??
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Tu n'as pas un exemple par hasard ?

je débute...et je n'ai pas tout assimilé encore...
Ajouter un commentaire
Réponse
+0
moins plus
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 ???
Ajouter un commentaire
Réponse
+0
moins plus
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é
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir,

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

Merci à tous
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
eroselrey- 4 nov. 2006 à 20:56
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

;)
Ajouter un commentaire
Réponse
+0
moins plus
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);
Ajouter un commentaire
Ce document intitulé « Formulaire mysql /php » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?