paulinett
Messages postés51Date d'inscriptionlundi 1 août 2005StatutMembreDernière intervention17 octobre 2005
-
5 août 2005 à 11:39
cs_lotr
Messages postés128Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention12 août 2005
-
5 août 2005 à 14:35
Bonjour,
Je suis débutante et je viens d'écrire un code qui doit permettre à un user d'obtenir des infos sur une machine en fonction de ses choix : nom_machine (zone de texte), type_machine (liste déroulante basée sur une sélection) et le nom_fournisseur (liste déroulante basée sur une sélection).Les deux premiers éléments correspondent à une table Machine et le dernier à une table Fournisseur dans une base MySQL.
J'ai donc écrit deux fichiers :
- un pour définir le formulaire de choix : il s'agit d'obtenir des informations sur une machine et sur le fournisseur. "selection2.php"
- un pour le résultat de la requete. "ExMyPHP2BIS.php"
J'ai deux questions :
- quand j'effectue ma recherche, le message d'erreur suivant apparait dans la case Nom du Fournisseur de mon tableau : mysql_fetch_object(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\exmyphp2bis.php on line 42 ... je ne comprends pas du tout pourquoi.
Pouvez-vous m'aider à trouver une solution ?
- comment afficher un champ "Tous" dans une liste déroulante ? c'est-à-dire que j'aimerais, en plus de ma sélection sur ma table ajouter une ligne avec Tous. Cela permettrait une recherche plus "générale"
Je vous remercie d'avance. C'est très important pour moi (cadre d'une stage)
Voici mon code :
"selection2.php"
<HTML>
<HEAD>
<TITLE> Formulaire de recherche d'informations à propos d'une machine </TITLE>
<LINK REL = stylesheet HREF='film3.css' TYPE='text/css'>
</HEAD>
Formulaire de recherche d'informations à propos d'une machine
<FORM ACTION="ExMyPHP2BIS.php" METHOD=POST>
Ce Formulaire vous permet d'indiquer des paramètres pour la recherche d'informations à propos d'une machine :
//Connexion au serveur et accès à la base
$connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
mysql_select_db (BASE, $connexion);
if($nom_machine == "Tous")
$requete = "SELECT nom_machine, type_machine, constructeur_machine, nom_fournisseur FROM Machine, Fournisseur WHERE type_machine=$type_machine AND nom_fournisseur=$nom_fournisseur AND Machine.id_fournisseur=Fournisseur.id_fournisseur";
else
$requete = "SELECT nom_machine, type_machine, constructeur_machine, nom_fournisseur FROM Machine, Fournisseur WHERE nom_machine LIKE '%$nom_machine%' AND type_machine=$type_machine AND nom_fournisseur=$nom_fournisseur AND Machine.id_fournisseur=Fournisseur.id_fournisseur";
// Exécution et affichage de la requête
$resultat = mysql_query($requete, $connexion);
echo "<CENTER>\"
.\"<CAPTION ALIGN=bottom>Table Machine </CAPTION>\"
.\"----
Nom de la machine |Type de la machineConstructeur de la machine |Nom du fournisseur\n\";
cs_lotr
Messages postés128Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention12 août 2005 5 août 2005 à 12:21
Bonjour,
"supplied argument is not a valid MySQL result resource in ..." signifie que ta requête comporte une erreur.
Pour savoir laquelle, utilise ce bout de code :
$req = "ici ta requête";
$res = mysql_query($req) or die('Erreur dans la requête : '.$req.'
'.mysql_error());
Le "or die(...)" te permettra de savoir quelle est l'erreur rencontrée.
Pour ton champ "Tous", il suffit que tu l'insères avant le résultat de ta requête.
echo'<select name="nom">';
echo '<option value="tous">Tous</option>';
while($ligne = mysql_fetch_array($res))
{
echo '<option value="'.$ligne['champ'].'">'.$ligne['champ'].'</option>';
}
echo '</select>';