Boite <select> RESOLU

Eléphanteau du PHP | 14 Messages

15 nov. 2011, 19:38

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">&nbsp;</td> </tr> <tr> <td height="623">&nbsp;</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
Modifié en dernier par manureva2b le 18 nov. 2011, 13:36, modifié 1 fois.

Eléphanteau du PHP | 14 Messages

15 nov. 2011, 20:03

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. :cry:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 nov. 2011, 21:12

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


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 83 Messages

16 nov. 2011, 00:34

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

ViPHP
ViPHP | 1996 Messages

16 nov. 2011, 00:54

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);
}
?> 
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 83 Messages

16 nov. 2011, 01:07

C'est pas onClick mais OnChange car tu as un <select>
Oui, tu as raison ; ce n'était qu'un vague souvenir...

Eléphanteau du PHP | 14 Messages

16 nov. 2011, 10:29

Bonjour,

Merci pour le code, mais malheureusement il n'affiche que la date et pas le reste des informations.. :cry: 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
Modifié en dernier par manureva2b le 16 nov. 2011, 11:42, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 nov. 2011, 11:37

tu trouvera la solution dans ce tuto : Afficher les données de votre base


@+
Modifié en dernier par moogli le 16 nov. 2011, 11:46, modifié 1 fois.
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 14 Messages

16 nov. 2011, 11:41

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);
}
?>
@+

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 nov. 2011, 11:47

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.

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 14 Messages

16 nov. 2011, 11:51

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 nov. 2011, 14:40

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
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 14 Messages

16 nov. 2011, 15:41

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

++

Eléphanteau du PHP | 14 Messages

16 nov. 2011, 19:36

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">&nbsp;</td> </tr> <tr> <td>&nbsp;</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

ViPHP
ViPHP | 1996 Messages

17 nov. 2011, 00:37

Je ne vois pas de <table> </table>, uniquement un <table> ouvert.
Les tableaux doivent s'ouvrir et se fermer...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr