|
|
|
|
Bonjour, je souhaiterai faire un menu déroulant composés de secteur d'activités et une fois le secteur choisi on aurait toutes les entreprises du secteur qui s'afficheraient.
Tout cela en se connectant à ma base de données mysql bien entendu.
Alors mon soucis est que je n'arrive pas à créer une variable pour définir chaque option du menu déroulant
j'ai fait un fichier HTML :
<HTML><HEAD>
<TITLE>formulaire</title>
</HEAD>
<BODY>
<H1>ENTREPRISES INGENIERIE LINGUISTIQUE ET TAL</H1>
<FORM ACTION="requetetest.php" METHOD=POST>
<label>Selectionnez le secteur :
<select name="SECTEUR">
<option value="TRADUCTIONAUTOMATIQUE" name="secteur2">Traduction automatique</option>
<option value="Veille" name="secteur3">Veille</option>
<option value="ExtractionInformation" name="secteur3">Extraction d'Information</option>
<option value="Gestion électronique des documents" name="secteur3">Gestion des documents</option>
<option value="RECHERCHEINFORMATION" name="secteur">Recherche d'Information</option>
</select>
</label>
<P>
<INPUT TYPE=SUBMIT VALUE='Rechercher'>
</FORM>
qui es relié a un fichier php :
<?php
mysql_connect('localhost', 'root', '') OR die('Erreur de connexion à la base');
mysql_select_db('ingenierielinguist') OR die('Erreur de sélection de la base');
$requete = mysql_query("SELECT * FROM entreprise WHERE SECTEUR LIKE '%' ") OR die('Erreur de la requête MySQL');
mysql_close();
while($resultat = mysql_fetch_object($requete))
{
echo '<table border=3><tr><th></th><th>ENTREPRISE : <i>'.$resultat->ENTREPRISES. '</i></th><th>SECTEUR : '.$resultat->SECTEUR.'</th><th>DESCRIPTIF : '.$resultat->DESCRIPTIFENTREPRISE.'</th></tr></table>';
}
?>
voila mon soucis pour résumer est d'avoir une variable qui me permettra d'obtenir les entreprises selon le secteur sélectionné.
ceci est dans le cadre d'un projet d'études et je bloque car je suis débutant en PHP
merci
Configuration: Windows XP Firefox 2.0.0.11
Salut,
|
Merci de ta réponse Dalida , tu ne me respectes pas trop dis donc lol
|
Re,
<select name="secteur"> <option value="1">Traduction automatique</option> <option value="2">Veille</option> <option value="3">Extraction d'Information</option> <option value="4">Gestion des documents</option> <option value="5">Recherche d'Information</option> </select> et tu le récupères comme ça : <?php
$secteur = 1; // valeur par défaut
if( isset( $_POST['secteur'] ) && !empty( $_POST['secteur'] ) ) // si tu as une réponse du formulaire
{
$secteur = (int) $_POST['secteur'];
}
$sql = "SELECT `champ1`, `champ2` FROM `entreprise` WHERE `secteur` = '$secteur';";
// etc...
?>
<hors sujet> où est-ce que tu vois un problème de respect ? à force d'utiliser ce mot à tort et à travers, il ne veut plus rien dire. ce forum est régi par une charte que tu es censé avoir lu et où il y a entre un laïus sur l'urgence des problèmes soumis et un autre sur la présentation des messages. tu n'es pas dans les clous, je te le dis. nous participons tous à la bonne tenue des forums, ce qui participe à leur qualité. maintenant, si j'ai un ton un peu sec il ne faut pas m'en vouloir, je ne sais pas faire autrement. -:oþ je te l'ai dit, point final. j'espère que tu en tiendras compte la prochaine fois et ça s'arrête là. pas de question de respect dans tout cela, hormis celui des règles du forum. et ce n'est pas pour faire mon rabas-joie (pourtant j'aime ça !) mais simplement pour que ce forum reste viable et agréable. </hors sujet> [ Mathieu ] « On embauchera plus s'il est moins compliqué de licencier. » LP, 29 août 2007. |
Salut dalida,
|
Salut,
echo( $sql ); en dessous de la définition de ta requête. comme ça tu vas récupérer la dite requête à l'écran et tu vas pouvoir la tester directement dans phpMyAdmin (ou équivalent) et savoir si ta base renvoie quelque chose. tu me suis ? si ta base renvoie quelque chose, montre nous le code que tu utilises pour extraire et afficher le données. à plus <hors sujet> signature, profil… à priori, suis plutôt directif ! -;o) [ Mathieu ] </hors sujet> [ Mathieu ] « On embauchera plus s'il est moins compliqué de licencier. » LP, 29 août 2007. |
Salut mathieu,
<?php
mysql_connect('localhost', 'root', '') OR die('Erreur de connexion à la base');
mysql_select_db('ingenierielinguist') OR die('Erreur de sélection de la base');
$secteur = 1; // valeur par défaut
if( isset( $_POST['secteur'] ) && !empty( $_POST['secteur'] ) ) // si tu as une réponse du formulaire
{
$secteur = (int) $_POST['secteur'];
}
$sql = "SELECT `ENTREPRISES`, `DESCRIPTIFENTREPRISE` FROM `entreprise` WHERE `secteur` = '$secteur';";
echo( $sql );
?>
je pense que nous ne sommes pas loin du résultat final . merci pour ton aide |
D'une façon générale, je te conseille les tutos de developpez.com (y en a pour tous les niveaux). et pour les fonctions de PHP mieux vaut se référer direct au manuel PHP (tu peux même charger une version locale, plus pratique).
<?php $sql = "SELECT `ENTREPRISES`, `DESCRIPTIFENTREPRISE` FROM `entreprise` WHERE `secteur` = '$secteur';"; $result = mysql_query( $sql, $link ); if( $result ) //si la requête s'est bien exécutée (http://fr.php.net/mysql_query) { if( mysql( $result ) == 0 ) //pas d'enregistrements { echo( "<p>Aucun enregistrement.</p>\n" ); } else // quelque chose à afficher { while( $row = mysql_fetch_assoc( $result ) ) // on boucle en retournant un tableau associatif (http://fr.php.net/mysql_fetch_assoc) { echo( '<p>Entreprise :<br />'.$row['ENTREPRISES']."</p>\n" ); echo( '<p>Description :<br />'.$row['DESCRIPTIFENTREPRISE']."</p>\n" ); } } } else // erreur d'exécution { echo( "<p>Erreur d'exécution de la requête.</p>\n" ); } ?> par contre tu devrais mettre tes noms de champs en minuscules. [ Mathieu ] « On embauchera plus s'il est moins compliqué de licencier. » LP, 29 août 2007. |
Re salut
if( mysql($result) == 0 ) //pas d'enregistrements <code><?php $link = mysql_connect('localhost', 'root', '') OR die('Erreur de connexion à la base'); mysql_select_db('ingenierielinguist', $link) OR die('Erreur de sélection de la base'); $secteur = 1; // valeur par défaut if( isset( $_POST['secteur'] ) && !empty( $_POST['secteur'] ) ) // si tu as une réponse du formulaire { $secteur = (int) $_POST['secteur']; } $sql = "SELECT `ENTREPRISES`, `DESCRIPTIFENTREPRISE` FROM `entreprise` WHERE `secteur` = '$secteur';"; $result = mysql_query($sql, $link); if($result) //si la requête s'est bien exécutée (http://fr.php.net/mysql_query) { if( mysql($result) == 0 ) //pas d'enregistrements { echo( "<p>Aucun enregistrement.</p>\n" ); } else // quelque chose à afficher { while( $row = mysql_fetch_assoc($result) ) // on boucle en retournant un tableau associatif (http://fr.php.net/mysql_fetch_assoc) { echo( '<p>Entreprise :<br />'.$row['entreprises']."</p>\n" ); echo( '<p>Description :<br />'.$row['descriptifentreprise']."</p>\n" ); } } } else // erreur d'exécution { echo( "<p>Erreur d'exécution de la requête.</p>\n" ); } ?> </code> j'ai regardé pas mal de tutoriaux mais je t'avoue que c'étais un peu du chinois parfois merci encore
|
C vraiment pas évident le PHP
echo( '<p>Entreprise :<br />'.$row['entreprises']."</p>\n" ); echo( '<p>Description :<br />'.$row['descriptifentreprise']."</p>\n" ); <?php
$link = mysql_connect('localhost', 'root', '') OR die('Erreur de connexion à la base');
mysql_select_db('ingenierielinguist', $link) OR die('Erreur de sélection de la base');
$secteur = 1; // valeur par défaut
if( isset( $_POST['secteur'] ) && !empty( $_POST['secteur'] ) ) // si tu as une réponse du formulaire
{
$secteur = (int) $_POST['secteur'];
}
$sql = "SELECT `ENTREPRISES`, `DESCRIPTIFENTREPRISE` FROM `entreprise` WHERE `secteur` = '$secteur';";
$result = mysql_query($sql, $link);
if($result) //si la requête s'est bien exécutée (http://fr.php.net/mysql_query)
{
if( mysql_num_rows($result) == 0 ) //pas d'enregistrements
{
echo( "<p>Aucun enregistrement.</p>\n" );
}
else // quelque chose à afficher
{
while( $row = mysql_fetch_assoc($result) ) // on boucle en retournant un tableau associatif (http://fr.php.net/mysql_fetch_assoc)
{
echo( '<p>Entreprise :<br />'.$row['entreprises']."</p>\n" );
echo( '<p>Description :<br />'.$row['descriptifentreprise']."</p>\n" );
}
}
}
else // erreur d'exécution
{
echo( "<p>Erreur d'exécution de la requête.</p>\n" );
}
?> |
Si tu n'as pas modifié le nom de tes champs (cf fin du <7>) il faut que tu mettes les deux en majuscules.
|
Super sa fonctionne... il ne me reste que la mise en forme et la css!
<?php
$link = mysql_connect('localhost', 'root', '') OR die('Erreur de connexion à la base');
mysql_select_db('ingenierielinguist', $link) OR die('Erreur de sélection de la base');
$secteur = 1; // valeur par défaut
if( isset( $_POST['secteur'] ) && !empty( $_POST['secteur'] ) ) // si tu as une réponse du formulaire
{
$secteur = (int) $_POST['secteur'];
}
$sql = "SELECT `ENTREPRISES`, `DESCRIPTIFENTREPRISE` FROM `entreprise` WHERE `secteur` = '$secteur';";
$result = mysql_query($sql, $link);
if($result) //si la requête s'est bien exécutée (http://fr.php.net/mysql_query)
{
if( mysql_num_rows($result) == 0 ) //pas d'enregistrements
{
echo( "<p>Aucun enregistrement.</p>\n" );
}
else // quelque chose à afficher
{
while( $row = mysql_fetch_assoc($result) ) // on boucle en retournant un tableau associatif (http://fr.php.net/mysql_fetch_assoc)
{
print_r( $row );
}
}
}
else // erreur d'exécution
{
echo( "<p>Erreur d'exécution de la requête.</p>\n" );
}
?> |