Comment stocker plusieurs valeurs sélectionnées à partir d' <select> tag dans un seul champ
J'ai une balise select avec multiple="multiple"
. Et l'utilisateur peut sélectionner plus d'une valeur.
<label for="aoi">Area of Interest:</label>
<select id="sel_aoi" name="aoi" multiple="multiple">
<option value="hr-executive">HR Executives</option>
<option value="sr-manager">Sr. Manager</option>
<option value="service-advisor">Service Advisor</option>
<option value="production">Production Engineer</option>
<option value="mechanical">Mechanical Engineer</option>
</select>
Comment je peux stocker ces plus que l'une des valeurs sélectionnées dans l'unique champ de base de données MySQL?
- La sérialisation:
$aoi = msqli_real_escape_string($db, json_encode($_POST['aoi']));
- Merci Jared! Il a travaillé pour moi. Il est écrit erreur dans le code de 'mysqli'. Quelle est la différence entre MySQL et MySQLI. Il m'a donné un avertissement avec mysql_connect (), mais a bien fonctionné avec mysqli_connect().
- Ce n'est pas une faute de frappe. Vous devriez être en utilisant la
mysqli
bibliothèque;mysql
est vieux et dépassé, et aussi obsolète, ce qui signifie qu'il sera finalement retiré. Lire plus à propos demysqli
ici: php.net/manual/en/intro.mysqli.php une Autre option est de PHP Data Objects, ou PDO, qui est une abstraction de données connecteur qui n'est pas étroitement couple votre code à tout particulier de la bibliothèque commemysql
oumysqli
. - Notez également que lorsque vous tirez en arrière de la base de données, vous désérialisez avec
json_decode($val)
dans ce cas, qui va vous redonner le tableau d'origine.
Vous devez vous connecter pour publier un commentaire.
De les stocker dans un tableau et d'enregistrer les valeurs à la base de données à l'aide de virgules seprated.
process.php
Quand vous obtenez vos valeurs, de votre
$_POST
les insérer dans une base de données mysql insérer plusieurs valeurs comme ceci:Edit: Si vous voulez les dans une ligne, utilisez quelque chose comme PHP imploser():
Pas que vous voulez vous assurer que le
$myArray
variable est propre de tout ce qui pourrait SQJ attaque par Injection de votre base de données. Une déclaration préparée serait une suggestion.