J'expose mon problème :
Sur mon site, j'ai fait une partie administration, qui permet d'ajouter des fiches sur les personnages.
Mon systeme permet de trier les persos soit par villages, soit par ordre alphabétique (et dans cet ordre alphabétique on peut classer par noms ou par prénoms).
Voilà la page : cliquez ici
Le tri par village marche nickel (cliquez sur konoha no kuni), mais l'affichage par ordre alphabétique ne donne rien
cliquez ici
Quand la variable $lettre n'est pas définie, ça devrait afficher tous les persos, et quand on clique sur une lettre, ça affiche tous les persos dont le nom ou le prénom (ça dépend de l'option choisie) commence par cette lettre
Voici le code de la page qui affiche par ordre alphabétique (désolé si c'est un peu long) :
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse;" bordercolor="#111111" width="700" height="1">
<tr>
<td width="100%" style="border-bottom-style: none; border-bottom-width: medium" height="100%">
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-top-width:0" bordercolor="#111111" width="100%" bgcolor="#DAD7C0" height="18">
<tr>
<td width="100%" background="images/centre_bg.gif" border="0" style="border-top-style: none; border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1; border-right-style: none; border-right-width: 1; border-left-style: none; border-left-width: 1;" height="2">
<i>
<b>
<font color="#000000" face="Verdana" size="2">
Personnages
</font></b></i>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="100%" style="border-left-style: none; border-left-width: 1; border-right-style: none; border-right-width: 1; border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: 1" height="1" bgcolor="#DAD7C0" valign="top">
<table border="0" cellpadding="2" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" align="center" height="1">
<tr>
<td width="100%" height="1" valign="top">
<table border="0" cellpadding="2" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="117">
<tr>
<td class="td" width="100%" height="421" valign="top">
<table valign="top" align="center">
<tr>
<td align="center">
<?php
if ($classement == 'nom')
{
echo '<a href="?page=persos&tri=alpha&classement=prenom">» Classer par prénoms</a><br><br>';
}
elseif ($classement == 'prenom')
{
echo '<a href="?page=persos&tri=alpha&classement=nom">» Classer par noms</a><br><br>';
}
?>
</td>
</tr>
<tr>
<td align="center">
<?php
if ($classement == 'nom')
{
for ($lettre='A'; $lettre < 'Z'; $lettre++)
{
echo'<a href="?page=persos&tri=alpha&classement=nom&lettre='.$lettre.'">'.$lettre.'</a> - ';
}
echo '<a href="?page=persos&tri=alpha&classement=nom&lettre=Z">Z</a>';
}
elseif ($classement == 'prenom')
{
for ($lettre='A'; $lettre < 'Z'; $lettre++)
{
echo'<a href="?page=persos&tri=alpha&classement=prenom&lettre='.$lettre.'">'.$lettre.'</a> - ';
}
echo '<a href="?page=persos&tri=alpha&classement=prenom&lettre=Z">Z</a>';
}
?>
</td>
</tr>
<tr>
<td>
<br>
</td>
</tr>
</table>
<?php
// connexion vers la base de donnée.
include("admincn/mysql.php");
if (isset($lettre)) {
// Permet de récupérer les données contenues de la base de donnée afin de les faire apparaître.
if ($classement == 'nom'){
$sql = "SELECT nom,prenom,village,grade,mini_image FROM personnages WHERE nom LIKE '$lettre%' ORDER BY nom";
}
elseif ($classement == 'prenom'){
$sql = "SELECT nom,prenom,village,grade,mini_image FROM personnages WHERE prenom LIKE '$lettre%' ORDER BY prenom";
}
$reponse = mysql_query($sql);
while ($personnages = mysql_fetch_array ($reponse))
{
$id = $personnages ['id'];
$nom = $personnages ['nom'];
$prenom = $personnages ['prenom'];
$village = $personnages ['village'];
$grade = $personnages ['grade'];
$mini_image = $personnages ['mini_image'];
if ($classement == 'nom'){
echo '<table valign="top">
<tr>
<td>
<img src="'.$mini_image.'" border="1">
</td>
<td valign="middle">
<a href="?page=perso_fiche&id='.$id.'"><b>'.$nom.' '.$prenom.'</b></a> - '.$grade.' de '.$village.' no kuni
</td>
</tr>
</table>';
}
elseif ($classement == 'prenom'){
echo '<table valign="top">
<tr>
<td>
<img src="'.$mini_image.'" border="1">
</td>
<td valign="middle">
<a href="?page=perso_fiche&id='.$id.'"><b>'.$prenom.' '.$nom.'</b></a> - '.$grade.' de '.$village.' no kuni
</td>
</tr>
</table>';
}
}
}
else {
// Permet de récupérer les données contenues de la base de donnée afin de les faire apparaître.
if ($classement == 'nom'){
$sql = "SELECT nom,prenom,village,grade,mini_image FROM personnages WHERE nom ORDER BY nom";
}
elseif ($classement == 'prenom'){
$sql = "SELECT nom,prenom,village,grade,mini_image FROM personnages WHERE prenom ORDER BY prenom";
}
$reponse = mysql_query($sql);
while ($personnages = mysql_fetch_array ($reponse))
{
$id = $personnages ['id'];
$nom = $personnages ['nom'];
$prenom = $personnages ['prenom'];
$village = $personnages ['village'];
$grade = $personnages ['grade'];
$mini_image = $personnages ['mini_image'];
if ($classement == 'nom'){
echo '<table valign="top">
<tr>
<td>
<img src="'.$mini_image.'" border="1">
</td>
<td valign="middle">
<a href="?page=perso_fiche&id='.$id.'"><b>'.$nom.' '.$prenom.'</b></a> - '.$grade.' de '.$village.' no kuni
</td>
</tr>
</table>';
}
elseif ($classement == 'prenom'){
echo '<table valign="top">
<tr>
<td>
<img src="'.$mini_image.'" border="1">
</td>
<td valign="middle">
<a href="?page=perso_fiche&id='.$id.'"><b>'.$prenom.' '.$nom.'</b></a> - '.$grade.' de '.$village.' no kuni
</td>
</tr>
</table>';
}
}
}
mysql_close();
?>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</tr>
Pourquoi rien ne s'affiche, contrairement au tri par villages ?Je viens tout juste de commencer le php (1 semaine), donc mon code doit être super lourd, est-il possible de l'alléger ?
Dernières choses : comment, via une interface d'administration, puis-je modifier mes données ? Et vous avez dû remarqué que quand on clique sur le nom et le prénom d'un personnage, ça ne donne rien, alors que ça devrait afficher sa fiche détaillée, comme ici. Je pense que mon problème vient de la récupération de la variable $id... Pour info, j'ai bien mis dans le formulaire d'ajout de fiche un champ caché nommé id...
Merci d'avance !