Page 1 sur 1

Liste déroulante et insertion mysql

Posté : 05 mars 2012, 09:32
par damien_55
Bonjour a tous,

J'ai une liste déroulante qui selectionne des champs à partir d'une base mysql et un formulaire d'insertion dans ma sql.

Pour une donnée j'ai un probleme, je cherche à recuperer l'id et le libelle. pour le libelle pas de probleme, je le selectionne et il s'insere bien dans ma base, mais je cherche aussi a récupérer l'id de ce libelle et qu'il l'insere également dans ma base sur le champ theme_id.

Voici ce que j'ai fait:
Thèmes: <select name="theme" style="width: 90%">';
			$themes = mysql_query("select * from news_theme WHERE categorie_theme=3 order by libelle asc");
			while($theme = mysql_fetch_array($themes)) {
				echo '<option value="'.$theme['libelle'].'">'.$theme['libelle'].'</option><br />';
			}
			echo '</select><br />
J'ai pensé a rajouter cela:
theme_id: <input type="text" name="theme_id" ondblclick="this.value=\'\'" value="theme_id" style="width: 90%"><br />
, mais c'est le ondblclick="this.value=\'\'" qui me pose soucis


Quelqu'un a une idée ? Merci

Re: Liste déroulante et insertion mysql

Posté : 05 mars 2012, 12:40
par Mazarini
Le plus simple est de faire des options du genre :
<option value="1">Libellé</option>
Et de rechercher le libellé avant l'insertion dans la base de données par un select à partir de l'id.

Sur l'idée de stocker l'id et le libellé, c'est discutable dans la mesure ou il est déjà présent dans une table. C'est envisageable, mais à condition d'avoir une raison particulière pour résoudre des problème de performance.

Re: Liste déroulante et insertion mysql

Posté : 05 mars 2012, 13:18
par damien_55
J'ai pas tout compris à la métode, dans mon script, j'ai ceci:
if(isset($_POST['theme'])) { $theme = addslashes($_POST['theme']); } else { $theme = ''; }
if(isset($_POST['theme_id'])) { $theme_id = addslashes($_POST['theme_id']); } else { $theme_id = ''; }
$sql = "INSERT INTO news ( `id` ,  `theme` , `theme_id` ,  )
			VALUES (
			NULL ,  '".$theme."', '".$theme_id."', 
			)
Thèmes: <select name="theme" style="width: 90%">';
			$themes = mysql_query("select id.news_theme, libelle.news_theme from news_theme WHERE categorie_theme=3 order by libelle asc");
			while($theme = mysql_fetch_array($themes)) {
				echo '<option value="'.$theme['libelle'].'">'.$theme['libelle'].'</option><br />

				';
			}
			echo '</select><br />
Et je souhaite que lorsque je selectionne le libelle que id.news_theme du libelle soit aussi inserer dans ma base aussi en en tant que theme_id. Inserer juste le libelle fonctionne parfaitement mais recupere l'id ce ce libelle et l'inserer ma pose soucis.

Re: Liste déroulante et insertion mysql

Posté : 05 mars 2012, 14:30
par Mazarini
Tu récupères uniquement l'id depuis la saisie et pour avoir le libellé, tu fais un accès à la table news_theme avec l'id sélectionné.
Un truc genre :
$id = $_POST['id_theme'];
$sql = 'select libelle from theme_news where catégorie = 3 and id = '.$id;
$res = mysql_query($sql);
list($libelle) = mysql_fetch_array($res);
(code à améliorer avec la gestion des quotes et la gestion des erreurs)

Mais le problème principal est que tu ne devrais pas avoir besoin de stocker l'id ET le libellé. Ca me semble être une erreur de conception de ta base de données (sauf contrainte particulière).

Re: Liste déroulante et insertion mysql

Posté : 05 mars 2012, 17:05
par damien_55
En fait, je vois à peu prés ce que tu dis. sauf que ce script est pour un site de news. en fait j'ai une table de news avec deux champs theme_id et et theme qui correspondent à

1 - auto
2 - moto

En ajoutant les news, je selectionne les themes des news. Ensuite sur le site, lorsque j'appelle les news j'appelle seulement le theme_id pour que ça aille plus vite à l'affichage et que ça prennent pas trop de ressource. là ce que je veux faire c'est pour l'admin des news, les auteurs ne connaissaaent pas les id_theme (d'autant plus qu'il y en a au moins 500). Donc ce que je veux faire, c'est que lorsqu'on rentre une news, on selectionne le theme et automatiquement le theme_id va dans la base news.

C'est que je n'arrive pas à faire.

Re: Liste déroulante et insertion mysql

Posté : 06 mars 2012, 17:09
par damien_55
résolu merci à tous

Re: Liste déroulante et select mysql

Posté : 29 mai 2012, 00:53
par zizou
Je débute en php et je m'entraine en faisant un liste deroulant comporte id d'une ligne je veux cliquer sur n'importe element s'affiche un libellé d'une ligne de meme table
et merci d'avance