8768 sujets

Développement web côté serveur, CMS

Salut,

Je suis caler sur ma DB en PHP/MySQL, je voudrais que mon formulaire envoie la valeur sélectionner

Exemple : Liste déroulant valeur afficher Mauve, et envoie vers enregistrement_tbl champ id_codecouleur la valeur dans se qua si = 5


Page index.php :

-->
</style>
</head>
<form action="Ajout_DB.php" method="post">
<body>

<!-- Numéro -->
<table width="500" border="0">
  <tr>
    <td width="70">N&deg; :</td>
    <td width="420"><div align="right">
      <input type="text" name="id_CD" size="68" />
    </div></td>
  </tr>
</table>
<p>&nbsp;</p>

<!-- id_CodeCouleur  -->
<table width="500" border="0">
  <tr>
    <td width="101" height="24">CodeCouleur  :</td>
    <td width="389"><form name="id_CodeCouleur" method="post" action="">
      <select name="select" id="select">
        <option value="1">Bleu</option>
        <option value="2">Brun</option>
        <option value="3">Gris</option>
        <option value="4">Jaune</option>
        <option value="5">Mauve</option>
        <option value="6">Orange</option>
        <option value="7">Rose</option>
        <option value="8">Rouge</option>
        <option value="9">Vert</option>
      </select>
    </form></td>
  </tr>
</table>
<p>&nbsp;</p>

<!-- Titre Film -->
<table width="500" border="0">
  <tr>
    <td width="53" height="24">Titre :</td>
    <td width="437"><input name="TitreEnregistrement" type="text" size="52" /></td>
  </tr>
</table>
<p>&nbsp;</p>

<p>
  <input type="submit" value="Valider" />
</p>


Page Ajout_DB.php :

<?php
// On commence par récupérer les champs

if(isset($_POST['id_CD']))      $id_CD=$_POST['id_CD'];
else      $id_CD="";

if(isset($_POST['id_CodeCouleur']))      $id_CodeCouleur=$_POST['id_CodeCouleur'];
else      $id_CodeCouleur="";

if(isset($_POST['TitreEnregistrement']))      $TitreEnregistrement=$_POST['TitreEnregistrement'];
else      $TitreEnregistrement="";

	// connexion à la base
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
	// sélection de la base  
    mysql_select_db('video',$db)  or die('Erreur de selection '.mysql_error());

?>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ajout contacts</title>
<style type="text/css">
<!--
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
	background-color: #FFF;
	background-image: url();
	background-repeat: no-repeat;
}
body,td,th {
	color: #000;
}
.bleu {
	color: #0000A0;
}
-->
</style>
</head>

<body>

<p>
<?php
// on écrit la requête sql
$sql = "INSERT INTO enregistrements_tbl (id_Enregistrement, id_CD, id_CodeCouleur, TitreEnregistrement) 
VALUES ('','$id_CD','$id_CodeCouleur','$TitreEnregistrement')";// Requète SQL
    
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

// Affichage du résultat
echo 'Vos infos on été ajoutées.';
?>

<p>N° : <strong><em><?php echo $_POST['id_CD']; ?></em></strong>
<p>Code Couleur : <strong><em><?php echo $_POST['id_CodeCouleur']; ?></em></strong>
<p>Titre : <strong><em><?php echo $_POST['TitreEnregistrement']; ?></em></strong>

<?php

mysql_close(); // Déconnexion de MySQL
?>

Se que je voudrais faire c’est sur ma page index.php lorsque je sélection dans la liste déroulant soit elle interroge directement codecouleur_tbl et m’affiche dans cette liste les CodeCouleur et lorsque je clic sur Envoyer, il envoie le id_CodeCouleur dans enregistrements_tbl ou de la manière que j’ai essayer si dessus voir index.php mais la rien ne se passe pas d’envoie, pas de code d’erreur en retour rien de rien.

PS : rien ne doit être envoyer vers codecouleur_tbl car ces valeur restent les même.

Voici quelque capture pour aider :
enregistrement_tbl :
upload/21326-01.jpg

codecouleur_tbl :
upload/21326-02.jpg

codecouleur_tbl relation :
upload/21326-03.jpg

J’espère que mes explications sont assez claire.

Merci
Modifié par tux (02 May 2009 - 19:37)
Salut,

tux a écrit :
J’espère que mes explications sont assez claire.
Non... mais elles le seraient sûrement plus si tu faisais un effort sur le français... Smiley murf
Modifié par Heyoan (01 May 2009 - 03:00)
Merci de ta réponse qui ne m'aide vraiment pas Smiley fache

T’en mieux pour toi si tu sais écris correctement le français, ces pas mon ka, je suis dyslexique.

J’ai fais des effort pour écris le plus correctement que je pouvais en français.

Explication de ce que c’est être dyslexique :
http://www.apedys.org/dyslexie/article.php?sid=202

PS : La différence entre toi et moi, c’est que je ne juge pas les gens sur leur origine, handicap, ou quoi que ce soit.
Oups désolé tux... Smiley confused

En même temps ça ne se devine pas et comme tu le sais sûrement beaucoup de gens aiment écrire en style SMS.

Quoi qu'il en soit je ne comprends toujours pas ce que tu veux faire... Pourrais-tu être plus précis ?
Je m’excuse d’avoir été sec toute a l’heure apparemment je tais mal juger sur le coup dans mon excès de colère.

En faite j’ai ma base de donnée vidéo et de dans il y a la table enregistrements_tbl (Table principale) et la table codecouleur_tbl (sous table)

Je voudrais (si cela est faisable) que la liste déroulante aille chercher les données dans la table codecouleur_tbl et affiche dans la liste déroulante les CodeCouleur (Bleu, brun, gris, etc…) et lorsque je clique sur le bouton Envoyer (qui se trouve sur la page index.php), envoie de l’id_CodeCouleur venant de la table codecouleur_tbl vers le champ id_CodeCouleur dans la table enregistrements_tbl

Peut-être plus claire comme cela voire les 2 capture :

- Valeur du champ CodeCouleur a récupérer et a afficher dans la liste déroulante (Table codecouleur_tbl)
- L’id_CodeCouleur correspondante est récupéré lorsque sélection dans la liste déroulante (Table codecouleur_tbl)
- Une fois cliquer sur bouton envoyer
- Envoie de l'id_CodeCouleur précédemment récupérer vers l'id_CodeCouleur dans le table enregistrements_tbl

upload/21326-001.jpg
upload/21326-002.jpg

Code Liste déroulante page index.php (qui n’est pas bon du tout je pence) :

<table width="500" border="0">
  <tr>
    <td width="101" height="24">CodeCouleur  :</td>
    <td width="389"><form name="id_CodeCouleur" method="post" action="">
      <select name="select" id="select">
        <option value="1">Bleu</option>
        <option value="2">Brun</option>
        <option value="3">Gris</option>
        <option value="4">Jaune</option>
        <option value="5">Mauve</option>
        <option value="6">Orange</option>
        <option value="7">Rose</option>
        <option value="8">Rouge</option>
        <option value="9">Vert</option>
      </select>
    </form></td>
  </tr>
</table>


Code Liste déroulante page Ajout_DB.php :

<?php
// On commence par récupérer les champs

if(isset($_POST['id_CodeCouleur']))      $id_CodeCouleur=$_POST['id_CodeCouleur'];
else      $id_CodeCouleur="";

	// connexion à la base
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
	// sélection de la base  
    mysql_select_db('video',$db)  or die('Erreur de selection '.mysql_error());

?>

<?php
// on écrit la requête sql
$sql = "INSERT INTO enregistrements_tbl (id_Enregistrement, id_CD, id_CodeCouleur, TitreEnregistrement, id_Genre, Durée, Année, NbDisk, Résumée, Jaquette, id_Ref_Perso, id_Appreciation, id_FormatSupport, id_FormatVidéo, id_FormatAudio, id_QualiterPisteVidéo, id_QualiterPisteAudio, Réalisateur, Producteur, Scénario, Acteur1, Acteur2, Acteur3) 
VALUES ('','$id_CD','$id_CodeCouleur','$TitreEnregistrement','$id_Genre','$Durée','$Année','$NbDisk','$Résumée','$Jaquette','$id_Ref_Perso','$id_Appreciation','$id_FormatSupport','$id_FormatVidéo','$id_FormatAudio','$id_QualiterPisteVidéo','$id_QualiterPisteAudio','$Réalisateur','$Producteur','$Scénario','$Acteur1','$Acteur2','$Acteur3')";// Requète SQL
    
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

// Affichage du résultat
echo 'Vos infos on été ajoutées.';
?>

<p>Code Couleur : <strong><em><?php echo $_POST['id_CodeCouleur']; ?></em></strong>

<?php

mysql_close(); // Déconnexion de MySQL
?>


J’espère que mon chmilblique est plus facile a comprendre vue comme cela.

Merci de votre aide
Bon, cette fois je crois que j'ai compris !

Quelques remarques d'abord :
* tu avais mis un élément FORM entre </head> et <body> alors qu'il ne faut rien y mettre.
* tu avais également mis un élément FORM dans un autre élément FORM ce qui est invalide.
* je te suggère de tout faire sur la même page (index.php) car cela permet de réafficher le formulaire avec les données déjà saisies et ne faire une redirection vers Ajout_DB.php que pour confirmer que l'enregistrement a été ajouté (et cela permet d'éviter de refaire un INSERT dans la base en cas de réaffichage avec F5).
* c'est une bonne idée pour des raisons d'accessibilité (aux lecteurs d'écrans) et d'ergonomie (il suffit de cliquer sur un libellé pour accéder au champ de saisie) d'associer des éléments LABEL aux INPUT, SELECT et TEXTAREA.

Ce qui pourrait donner :

connexion.inc.php
<?php
$host = "localhost";
$user = "root";
$passwd = "";
$database = "video";

$link = mysql_connect($host, $user,$passwd);
if (!$link) {
   die('Erreur de connexion au serveur.');
}

$db_selected = mysql_select_db($database, $link);
if (!$db_selected) {
   die ('Erreur de connexion à la base de données.');
}
?>

index.php
<?php
require_once('connexion.inc.php');
// Déclaration des champs (vides ou récupération des $_POST)...
$id_CD = (isset($_POST['id_CD'])) ? intval($_POST['id_CD']) : ''; 
$codecouleur = (isset($_POST['codecouleur'])) ? $_POST['codecouleur'] : ''; 
$TitreEnregistrement = (isset($_POST['TitreEnregistrement'])) ? trim($_POST['TitreEnregistrement']) : '';
// Si le formulaire a été envoyé, on teste les champs...
$erreur = false;
if (!empty($_POST)) { 
	
	if($id_CD == '' || $id_CD == 0) { // id_CD est vide ?
		$erreur = 'Saisir le N° CD !';
	} elseif ($TitreEnregistrement == '') { // id_CD est vide ?
		$erreur = 'Saisir le Titre !';
	} else { // Tout est OK
		$sql = "Insert Into enregistrements_tbl set id_CD = $id_CD, id_CodeCouleur = $codecouleur, TitreEnregistrement = '$TitreEnregistrement'";
		mysql_query($sql) or die(mysql_error());
		header("Location: Ajout_DB.php"); // Redirection
	}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Test formulaire</title>
<style type="text/css">
.alert {
	color:#990000;
}
</style>
</head>
<body>
<?php
if($erreur) echo '<p class="alert">'.$erreur."</p>\n";
?>
<form action="index.php" method="post">
	<p>
		<label for="id_CD">N&deg; CD : </label>
		<input type="text" name="id_CD" id="id_CD" size="68" value="<?php echo htmlspecialchars($id_CD); ?>" />
	</p>
	<p>
		<label for="codecouleur">Couleur : </label>
		<select name="codecouleur" id="codecouleur">
			<?php
			$sql = 'Select id_CodeCouleur, CodeCouleur From codecouleur_tbl Order By CodeCouleur';
			$result = mysql_query($sql) or die(mysql_error());
			while($row = mysql_fetch_assoc($result)) {
				$chk = ($row['id_CodeCouleur'] == $codecouleur) ? ' selected="selected"' : '';
				echo '<option value="'.$row['id_CodeCouleur'].'"'.$chk.'>'.$row['CodeCouleur']."</option>\n";
			}
			?>
		</select>
	</p>
	<p>
		<label for="TitreEnregistrement">Titre : </label>
		<input type="text" name="TitreEnregistrement" id="TitreEnregistrement" size="52" value="<?php echo htmlspecialchars($TitreEnregistrement); ?>" />
	</p>
	<p>
		<input type="submit" value="Envoyer" />
	</p>
</form>
</body>
</html>

Ajout_DB.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Confirmation</title>
</head>
<body>
<p>L'enregistrement a bien été ajouté.</p>
<p><a href="index.php">Revenir à l'accueil.</a></p>
</body>
</html>

Modifié par Heyoan (02 May 2009 - 00:04)
Salut Heyoan,

Wouaw un très grand merci, c’est pile poil ce que je cherchais, sa fonctionne enfin. Smiley ravi Smiley ravi Smiley ravi

Cella fessais plus d’un mois que je me cassais la tête la dessus.

Tu me conseillerais quel livre en francais pour apprendre le PHP/MySQL car je me suis baser sur pas mal de sites et il y as a chaque fois ou presque des méthodes différente l’un dit blanc l’autre noir, alors j’essaye jusqu’ici a trouver des bout de code qui fonction, et quand sa fonctionne je refais une grosse (apparemment très grosse) soupe avec tous sa.

Je vais continuer ma base de donnée avec t’as méthode.

Très bien ton fichier pour la connexion a la DB j’avais déjà vue des exemples et j’ai jamais sus m’en servir car y en avais pas un qui était fichu d’expliquer la ligne de commande require_once('connexion.inc.php'); a insérer dans index.php

Encore une fois un grand merci, car la tu m’as bien sauver.

Smiley cligne
De rien ! Smiley smile

tux a écrit :
Tu me conseillerais quel livre en francais pour apprendre le PHP/MySQL
Ben en fait je n'en connais aucun... Par contre j'aime bien le site de http://www.developpez.com/ (pour le PHP http://php.developpez.com/cours/ et pour le SQL http://sqlpro.developpez.com/ ). Pour ce qui est des spécifications PHP la référence reste php.net (même si ça n'est pas toujours facile de retrouver une info quand c'est autre chose qu'une fonction).

Globalement je trouve que les sites se sont améliorés comme par exemple le Site du Zero que j'avais laissé tomber voilà quelques années et qui a remis ses contenus au goût du jour (en tout cas pour les articles sur lesquels je suis tombé par hasard)...

Si tu considères que ce sujet est [Résolu] merci de l'indiquer en éditant ton premier post et en modifiant le titre. Smiley cligne
Modifié par Heyoan (02 May 2009 - 12:41)