J'ai donc une table db> "schools" et une colonne dans ce tableau nommé "metro". Dans « métro » j'ai des chaînes comme ça « Station Nom 1, Nom de la station 2, station-Nom 5 »Pourquoi array_unique ne fonctionne pas avec explode()?
que je fais maintenant un formulaire de recherche avec des stations de métro choisir, donc mon regard de code comme ceci:
<select name="categoryID">
<?
$metro_sql=mysql_query("SELECT metro FROM schools");
while($metro=mysql_fetch_array($metro_sql)){
$metro_pieces = explode(", ", $metro['metro']);
foreach (array_unique($metro_pieces, SORT_REGULAR) as $metro_all) {
echo "<option value=\"".$metro_all."\">".$metro_all."</option>\n ";
}
}
Et le résultat: la station de métro 1 station de métro 2 station de métro 3 station de métro 1 station de métro 4 station de métro 5 etc. Ce que je fais mal? p.s. Désolé pour mon anglais.
Le problème le plus probable est des espaces dans les valeurs de champ qui les rendent non unique –
Rien à voir avec votre question, mais si vos données étaient plus normalisés, vous n'auriez pas à le traiter comme ça. Stocker les données séparées par des virgules dans une base de données relationnelle est presque toujours une mauvaise idée. – Corbin