Page 1 sur 2
Boite <select> RESOLU
Posté : 15 nov. 2011, 19:38
par manureva2b
Bonjour,
Je suis charger (stage) de la gestion des événements interne d'un entreprise qui se situe dans plusieurs villes et je suis bloqué sur un petit détails:
Je me permet de venir poster ici après plusieurs heures et jours de recherche un peu partout sur le web car j'ai un petit problème dans mon code et je ne la trouve pas :/
Mon code me permet d'afficher un menu déroulant qui s'alimente automatiquement depuis une table T_evenement.
Les villes s'affiche bien dans le menu mais malheureusement lorsque j'en sélectionne une rien ne se passe.
J'aurais souhaité que cela s'affiche dans un tableau.
Menu déroulant SELECT:
Code : Tout sélectionner
<form name="form" id="form">
<select name="ville">
<?php
// Déclaration des paramètres de connexion
$host = '***';
$user = ***;
$bdd = ***;
$passwd = ***;
mysql_connect($host, $user, $passwd) or die('Erreur de connexion');
mysql_select_db($bdd) or die('Base inexistante');
$sql = 'SELECT DISTINCT ville FROM T_evenement';
$query = mysql_query($sql) or die( 'Erreur' );
$nb = mysql_num_rows($query);
if ($nb == 0) {
echo '<option>Aucune ville disponible</option>';
} else {
while ( $list = mysql_fetch_array( $query ) ) {
echo "<option value='".$list['ville']."'>".$list['ville']."</option>"; }
}
mysql_close();
?>
</select>
</form></td>
<td width="191" height="2" bgcolor="#7DB85A"></td>
<td width="20"> </td>
</tr>
<tr>
<td height="623"> </td>
<td align="left" valign="top" bgcolor="#FFFFFF">
Seconde parti de mon code afin de récupérer les données:
Code : Tout sélectionner
<?php
mysql_connect($host, $user, $passwd) or die('Erreur de connexion');
mysql_select_db($bdd) or die('Base inexistante');
$sql = "SELECT DATE_FORMAT(date, '%d-%m-%Y') as datefr,jour,nom_event,descriptif,adresse,code_postal,ville,heure,contact FROM T_evenement WHERE ville = '".$_POST['ville']."';";
$query = mysql_query($sql) or die( 'Erreur' );
$result = mysql_query($query);
// Recuperation des resultats
while ( $list = mysql_fetch_array( $query ) ) {
}
// Deconnexion de la base de donnees
mysql_close();
?>
Par avance merci
Re: Boite <select>
Posté : 15 nov. 2011, 20:03
par manureva2b
re bonsoir,
j'ai modifier mon code comme cela:
Code : Tout sélectionner
mysql_connect($host, $user, $passwd) or die('Erreur de connexion');
mysql_select_db($bdd) or die('Base inexistante');
$sql = 'SELECT DISTINCT ville FROM T_evenement';
$query = mysql_query($sql) or die( 'Erreur' );
$nb = mysql_num_rows($query);
if ($nb == 0) {
echo '<option>Aucune ville disponible</option>';
} else {
while ( $list = mysql_fetch_array( $query ) ) {
echo "<option value='".$list['ville']."'>".$list['ville']."</option>"; }
}
mysql_close();
?>
</select>
</label>
<label>
<input type="submit" name="valider" id="valider" value="Envoyer" />
</label>
</form>
<?php
mysql_connect($host, $user, $passwd) or die('Erreur de connexion');
mysql_select_db($bdd) or die('Base inexistante');
$sql = "SELECT DATE_FORMAT(date, '%d-%m-%Y') as datefr,jour,nom_event,descriptif,adresse,code_postal,ville,heure,contact FROM T_evenement WHERE ville = '".$_POST['ville']."';";
$query = mysql_query($sql) or die( 'Erreur' );
$result = mysql_query($query);
// Recuperation des resultats
while ( $list = mysql_fetch_array( $query ) ) {
}
// Deconnexion de la base de donnees
mysql_close();
?>
mais ça ne marche toujours pas.

Re: Boite <select>
Posté : 15 nov. 2011, 21:12
par moogli
Salut,
Qu'est ce qui marche pas ?
Y a rien dans le dernier while ?
Si c'est le cas c'est normal que rien ne s'affiche
@+
Re: Boite <select>
Posté : 16 nov. 2011, 00:34
par laurents
Je réponds car je crois avoir déjà vu ça : si tu veux qu'une action soit effectuée lorsqu'on sélectionne un champ du <select>, rajoute dans les options un "onclick" (je crois l'avoir déjà vu).
Re: Boite <select>
Posté : 16 nov. 2011, 00:54
par Aureusms
C'est pas onClick mais OnChange car tu as un <select>
Sinon j'ai (un peu) corrigé le code mais je n'ai pas pu le tester. Il reste peut être des erreurs.
<?php
$idSql = mysql_connect($host, $user, $passwd) or die('Erreur de connexion');
mysql_select_db($bdd) or die('Base inexistante');
$sql = 'SELECT DISTINCT ville FROM T_evenement';
$query = mysql_query($sql) or die( 'Erreur' );
$tabVille = array();
if (mysql_num_rows($query) != 0)
{
while ($list = mysql_fetch_assoc( $query ))
{
$tabVille[] = $list['ville'];
}
mysql_close($idSql);
}
//affichage
if (!empty($tabVille))
{
?>
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
<select name="ville" onChange="this.form.submit();">
<?php
foreach ($tabVille as $ville)
{
echo "<option value='".$ville."'>".$ville."</option>";
}
?>
</select>
<input type="submit" name="valider" id="valider" value="Envoyer" />
</form>
<?php
}
else
{
?>
<p>Aucune ville</p>
<?php
}
if (!empty($_POST["ville"]))
{
$ville = mysql_escape_string($_POST["ville"]);
$idSql = mysql_connect($host, $user, $passwd) or die('Erreur de connexion');
mysql_select_db($bdd) or die('Base inexistante');
$sql = "SELECT DATE_FORMAT(date, '%d-%m-%Y') as datefr,jour,nom_event,descriptif,adresse,code_postal,ville,heure,contact FROM T_evenement WHERE ville = '".$ville."'";
$query = mysql_query($sql) or die( 'Erreur' );
$result = mysql_query($query);
// Recuperation des resultats
while ( $list = mysql_fetch_array( $query ))
{
echo $list[0];
}
// Deconnexion de la base de donnees
mysql_close($idSql);
}
?>
Re: Boite <select>
Posté : 16 nov. 2011, 01:07
par laurents
C'est pas onClick mais OnChange car tu as un <select>
Oui, tu as raison ; ce n'était qu'un vague souvenir...
Re: Boite <select>
Posté : 16 nov. 2011, 10:29
par manureva2b
Bonjour,
Merci pour le code, mais malheureusement il n'affiche que la date et pas le reste des informations..

et je ne vois pas pourquoi
voila ce que ça donne:
http://www.lemanureva.fr/test.php
Pouvez vous aussi m'aider à le mettre en page dans un tableau svp.
Merci
Re: Boite <select>
Posté : 16 nov. 2011, 11:37
par moogli
tu trouvera la solution dans ce tuto :
Afficher les données de votre base
@+
Re: Boite <select>
Posté : 16 nov. 2011, 11:41
par manureva2b
Bonjour,
Merci beaucoup pour le lien je devrais m'en sortir avec ça, mais mon premier problème est que les données dans ma table ne s'affichent pas toutes hors dans le code elles sont bien demandées.
je travail désormais sur le code de Aureusms (voir le résultat sur cette page:
http://www.lemanureva.fr/test.php )
<?php
$idSql = mysql_connect($host, $user, $passwd) or die('Erreur de connexion');
mysql_select_db($bdd) or die('Base inexistante');
$sql = 'SELECT DISTINCT ville FROM T_evenement';
$query = mysql_query($sql) or die( 'Erreur' );
$tabVille = array();
if (mysql_num_rows($query) != 0)
{
while ($list = mysql_fetch_assoc( $query ))
{
$tabVille[] = $list['ville'];
}
mysql_close($idSql);
}
//affichage
if (!empty($tabVille))
{
?>
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
<select name="ville" onChange="this.form.submit();">
<?php
foreach ($tabVille as $ville)
{
echo "<option value='".$ville."'>".$ville."</option>";
}
?>
</select>
<input type="submit" name="valider" id="valider" value="Envoyer" />
</form>
<?php
}
else
{
?>
<p>Aucune ville</p>
<?php
}
if (!empty($_POST["ville"]))
{
$ville = mysql_escape_string($_POST["ville"]);
$idSql = mysql_connect($host, $user, $passwd) or die('Erreur de connexion');
mysql_select_db($bdd) or die('Base inexistante');
$sql = "SELECT DATE_FORMAT(date, '%d-%m-%Y') as datefr,jour,nom_event,descriptif,adresse,code_postal,ville,heure,contact FROM T_evenement WHERE ville = '".$ville."'";
$query = mysql_query($sql) or die( 'Erreur' );
$result = mysql_query($query);
// Recuperation des resultats
while ( $list = mysql_fetch_array( $query ))
{
echo $list[0];
}
// Deconnexion de la base de donnees
mysql_close($idSql);
}
?>
@+
Re: Boite <select>
Posté : 16 nov. 2011, 11:47
par moogli
le tuto t'indique comment afficher ce qui viens de ta table.
étant donné que le code n'affiche que la date il fonctionne correctement.
lit bien le tuto et tu devrais comprendre comment afficher tout les champs.
@+
Re: Boite <select>
Posté : 16 nov. 2011, 11:51
par manureva2b
le tuto t'indique comment afficher ce qui viens de ta table.
étant donné que le code n'affiche que la date il fonctionne correctement.
lit bien le tuto et tu devrais comprendre comment afficher tout les champs.
@+
Je veux bien te croire mais pour moi il demande bien tous les champs qui m'interresse non ?
$sql = "SELECT DATE_FORMAT(date, '%d-%m-%Y') as datefr,jour,nom_event,descriptif,adresse,code_postal,ville,heure,contact FROM T_evenement WHERE ville = '".$ville."'";
Je suis entrain de relire le tuto.
Désolé je suis débutant.
Re: Boite <select>
Posté : 16 nov. 2011, 14:40
par moogli
la requete SQL c'est toi qui la fournit dans ton 1er message, si tu ne la comprend pas je te conseil de lire les tuto sur SQL (et mysql).
c'est une base tu en aura besoin pour la suite.
si tu veux du plus parlant essai
while ( $list = mysql_fetch_array( $query ))
{
var_dump($list);
}
et regarde ce que fait la fonction
var_dump dans la doc
@9
Re: Boite <select>
Posté : 16 nov. 2011, 15:41
par manureva2b
la requete SQL c'est toi qui la fournit dans ton 1er message
oui je sais et je
pense l'avoir compris.
comme je te dis dans mon message précédent je fais la demande pour qu'il y est plusieurs champs qui s'affiche.
$sql = "SELECT DATE_FORMAT(date, '%d-%m-%Y') as datefr,jour,nom_event,descriptif,adresse,code_postal,ville,heure,contact FROM T_evenement WHERE ville = '".$ville."'";
Peux tu au moins me dire si c'est la l'erreur ou si je dois absolument utiliser le var_dump ?
Merci pour le tuto
++
Re: Boite <select>
Posté : 16 nov. 2011, 19:36
par manureva2b
Re bonsoir c'est encore moi
J'ai réussi à afficher toutes les données que je voulais .. yeah !!
mais par contre ça ressemble à rien, je m'explique:
j'ai mis les données dans un tableau mais certaines cellules sont toutes petites et d'autres 10 fois trop large au lieu de s'adapter; de plus je donne une largeur max à mon tableau mais celui ci s'agrandi de trop il fait 999 et je voudrais qu'il ne dépasse pas 790.
De plus les titres des colonnes ne s'affichent pas non plus.
Pouvez vous m'aider?
voici mon code:
Code : Tout sélectionner
$idSql = mysql_connect($host, $user, $passwd) or die('Erreur de connexion');
mysql_select_db($bdd) or die('Base inexistante');
$sql = 'SELECT DISTINCT ville FROM T_evenement';
$query = mysql_query($sql) or die( 'Erreur' );
$tabVille = array();
if (mysql_num_rows($query) != 0)
{
while ($list = mysql_fetch_assoc( $query ))
{
$tabVille[] = $list['ville'];
}
mysql_close($idSql);
}
//affichage
if (!empty($tabVille))
{
?>
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
<select name="ville" onChange="this.form.submit();">
<?php
foreach ($tabVille as $ville)
{
echo "<option value='".$ville."'>".$ville."</option>";
}
?>
</select>
<input type="submit" name="valider" id="valider" value="Envoyer" />
</form>
<?php
}
else
{
?></td>
<td width="191" height="2" bgcolor="#7DB85A"></td>
<td width="20"> </td>
</tr>
<tr>
<td> </td>
<td width="300" align="left" valign="top" bgcolor="#FFFFFF">
<table border="1" cellpadding="5" cellspacing="1" bgcolor="#8FEC77">
<th bgcolor="#009037" align="center" class="couleurjaune">Date </th>
<th bgcolor="#009037" align="center" class="couleurjaune">Jour</th>
<th bgcolor="#009037" align="center" class="couleurjaune">Nom du l'événement </th>
<Th bgcolor="#009037" align="center" class="couleurjaune">Descriptif</Th>
<Th bgcolor="#009037" align="center" class="couleurjaune">Adresse</Th>
<Th bgcolor="#009037" align="center" class="couleurjaune">Code postal</Th>
<Th bgcolor="#009037" align="center" class="couleurjaune">Ville</Th>
<th bgcolor="#009037" align="center" class="couleurjaune">Heure </th>
<th bgcolor="#009037" align="center" class="couleurjaune">Contact</th>
</tr>
<?php
}
if (!empty($_POST["ville"]))
{
$ville = mysql_escape_string($_POST["ville"]);
$idSql = mysql_connect($host, $user, $passwd) or die('Erreur de connexion');
mysql_select_db($bdd) or die('Base inexistante');
$sql = "SELECT ville,DATE_FORMAT(date, '%d-%m-%Y') as datefr,jour,nom_event,descriptif,adresse,code_postal,heure,contact FROM T_evenement WHERE ville = '".$ville."'";
$query = mysql_query($sql) or die( 'Erreur' );
$result = mysql_query($query);
// Recuperation des resultats
while ( $list = mysql_fetch_array( $query ))
{
$Ville = $list[0];
$Datefr = $list[1];
$Jour = $list[2];
$Nom_event = $list[3];
$Descriptif = $list[4];
$Adresse = $list[5];
$Code_postal = $list[6];
$Heure = $list[7];
$Contact = $list[8];
echo "<tr>\n
<td>$Datefr</td>\n
<td>$Jour</td>\n
<td>$Nom_event</a></td>\n
<td>$Descriptif</td>\n
<td>$Adresse</a></td>\n
<td>$Code_postal</td>\n
<td>$Ville</td>\n
<td>$Heure</td>\n
<td>$Contact</td>\n
</tr>\n";
}
// Deconnexion de la base de donnees
mysql_close($idSql);
}
?>
Par avance merci
Re: Boite <select>
Posté : 17 nov. 2011, 00:37
par Aureusms
Je ne vois pas de <table> </table>, uniquement un <table> ouvert.
Les tableaux doivent s'ouvrir et se fermer...