J'ai quelques soucis pour ordonner une liste déroulante à double entrée. Je vous explique (en essayant d'être clair)...
Je m'occupe d'un site qui traite de polar et qui comporte une page spécifique liée à la recherche de romans selon des critères donnés. Dernièrement, j'ai ajouté dans ces critères le choix du traducteur. Or, il se trouve que régulièrement, les traductions se font à quatre mains.
Donc, dans une table intitulée "traduction", j'ai plusieurs champs qui sont "prenom1", "nom1", "prenom2", "nom2".
Le but est d'afficher sur cette page de recherche une liste déroulante qui reprend l'ensemble des noms des traducteurs en mixant les "nom1" et "nom2" et en les classant dans un ordre alphabétique "général".
Pour l'instant, j'ai bien ma boite, mais l'ordonnancement se fait fait uniquement sur "nom1" et affiche le nom du second traducteur ("nom2") directement après. L'ordre alphabétique souhaité n'est pas respecté.
Auriez-vous une solution à me proposer ?
Voici le code de la boite déroulante :
<select name="traducteur" class="texte_p">
<option value="indif">Indifférent</option>
<?php
$query=mysql_query("SELECT DISTINCT prenom1,nom1,prenom2,nom2 FROM traduction ORDER BY nom1,nom2") or die (mysql_error());
while ($row=mysql_fetch_array($query))
{
echo "<option value=\"".$row['nom1']."\"";
if (isset($_GET['traducteur']) && $_GET['traducteur']==$row['nom1'])
echo " selected";
if (isset($_POST['traducteur']) && $_POST['traducteur']==$row['nom1'])
echo " selected";
echo ">";
if ($row['prenom1']!="0")
echo $row['prenom1'];
echo " ";
echo $row['nom1'];
echo "</option>\n";
if ($row['nom2']!="0")
echo "<option value=\"".$row['nom2']."\"";
if (isset($_GET['traducteur']) && $_GET['traducteur']==$row['nom2'])
echo " selected";
if (isset($_POST['traducteur']) && $_POST['traducteur']==$row['nom2'])
echo " selected";
echo ">";
if ($row['prenom2']!="0")
echo $row['prenom2'];
echo " ";
echo $row['nom2'];
echo "</option>\n";
}
?>
</select>
La page où cette liste apparaît (c'est la dernière, en bas à gauche) :http://www.polarnoir.fr/recherche.php
Par exemple, si "Pierre Lorrain" apparaît en troisième position alors qu'il devrait être classé à "P". C'est parce qu'il est associé dans une traduction à son prédécesseur dans la liste, "Galia Ackerman". "Pierre Lorrain" est un "nom2".
De plus, il ne renvoi aucun résultat... Mais là, c'est un autre problème...
Merci d'avance pour votre aide.