8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Mon soucis est que je doit mettre des données dans une liste déroulante via une table de ma base de données.

Voici le code que j'ai effectué, si vous trouvé le problème, je vous en remercierais grandement.

<form name='Importation' method='post' action="<?php echo $_SERVER[PHP_SELF]; ?>" enctype='multipart/form-data'>
		<input type="hidden" name="action" value="import_contact">
		<input type="hidden" name="date" value="<?php echo date("y/m/d"); ?>">
		<div id="demande">
			<div class="titre_page">Importation des contacts </div>
			<div class="form_marge_left2"></div>
			<div class="obligatoire" style="text-align:left;font-size:14px">Pour choisir les contacts, remplir le formulaire suivant:</div>
			<div class="form_marge_content2" >
			<br /><br />
				<p>


					<label class="labelCreateCompte obligatoire" style="font-size:12px">Choix de la contact :</label>
					<select class="input inputCbo" name="campagneID">
						<?php	
							$req= "SELECT * FROM contact";
					        $res = mysql_query($DB_Link, $SQL);
							echo '<option value="" >--Choisir un contact--</option>';
							while($val=mysql_fetch_array($DB_Link, $res)) {
								echo "<option value='". $val["contactID"]. "' .>".$val["contact_name"]."</option>\n";
							}
						?>
					</select>
				</p>
				<br />
				<p>
					<label class="labelCreateCompte obligatoire" style="font-size:12px">Date de creation des contacts :</label>
					<select class="input inputCbo" name="dateCrea">
						<?php	
							$req= "SELECT * FROM contact";
					        $res = mysql_query($DB_Link, $SQL);
							echo '<option value="" >--Choisir une date--</option>';
							while($val=mysql_fetch_array($DB_Link, $res)) {
								echo "<option value='". $val["contactID"]. "' .>".$val["dateCrea"]."</option>\n";
							}
						?>
					</select>
				</p>
				<br />
				<p>
					<label class="labelCreateCompte obligatoire" style="font-size:12px">Nom du fichier :</label>
					<select class="input inputCbo" name="contact_fichier_source">
						<?php	
							$req= "SELECT * FROM contact";
					        $res = mysql_query($DB_Link, $SQL);
							echo '<option value="" >--Choisir une fichier--</option>';
							while($val=mysql_fetch_array($DB_Link, $res)) {
								echo "<option value='". $val["contactID"]. "' .>".$val["contact_fichier"]."</option>\n";
							}
						?>
					</select>
				</p>
				<br />
				<center><p>
					<input class="form_submit" type="submit" name="submit" value="Recherche" />
				</p></center>	
			</div>
		</div>
	</form>


Merci d'avance.
Bonne appétit à tous.

Miala
Modifié par Miala (28 Nov 2008 - 14:52)
Salut,

il faut au minimum remplacer mysql_query($DB_Link, $SQL); par mysql_query($DB_Link, $req); Smiley cligne .

Sinon quelques remarques générales :

* à priori il est préférable de limiter autant que possible les accès à la BDD. Il vaudrait mieux ne faire qu'une requête et alimenter des tableaux qui seront ensuite triés et affichés. Par exemple :
<?php
$req= "SELECT contactID, contact_name, dateCrea, contact_fichier FROM contact";
$res = mysql_query($req) or die ('ça pas marche !');
$contact_name = array();
$dateCrea = array();
$contact_fichier = array();
while($row = mysql_fetch_assoc($res)) {
	$contact_name[$row['contactID']] = $row['contact_name'];
	$dateCrea[$row['contactID']] = $row['dateCrea'];
	$contact_fichier[$row['contactID']] = $row['contact_fichier'];
}
asort($contact_name);
asort($dateCrea);
asort($contact_fichier);
?>

Et plus loin :

echo "<option value=\"\" >--Choisir un contact--</option>\n";
foreach ($contact_name as $key => $value) {
	echo "<option value='".$key. "'>".$value."</option>\n";
}

* en choisissant de faire une requête à chaque fois autant ne prendre que les bonnes colonnes et les trier en fonction du SELECT. Par exemple :
$req= "SELECT contactID, dateCrea FROM contact ORDER BY dateCrea";

* enctype est inutile puisque tu n'utilises pas d'INPUT de type file.

* tu as un point en trop avant de fermer tes balises OPTION : . "' .>".

* pourquoi utiliser la propriété style puisqu'une class est déjà affectée ?

* le code xhtml généré est invalide : vérifier sur http://validator.w3.org/

A+
Modifié par Heyoan (28 Nov 2008 - 13:10)