par
Cyrano » 25 juin 2005, 14:35
Ok, alors première chose: essaye de séparer correctement PHP et HTML et fais une indentation correcte, c'est beaucoup plus facile a lire:
<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')
{
?>
<a href="?page=persos&tri=alpha&classement=prenom">» Classer par prénoms</a><br><br>
<?php
}
elseif ($classement == 'prenom')
{
?>
<a href="?page=persos&tri=alpha&classement=nom">» Classer par noms</a><br><br>
<?php
}
?>
</td>
</tr>
<tr>
<td align="center">
<?php
if ($classement == 'nom')
{
for ($lettre='A'; $lettre < 'Z'; $lettre++)
{
?>
<a href="?page=persos&tri=alpha&classement=nom&lettre=<?php echo($lettre); ?>"><?php echo($lettre); ?></a> -
<?php
}
?>
<a href="?page=persos&tri=alpha&classement=nom&lettre=Z">Z</a>
<?php
}
elseif ($classement == 'prenom')
{
for ($lettre='A'; $lettre < 'Z'; $lettre++)
{
?>
<a href="?page=persos&tri=alpha&classement=prenom&lettre=<?php echo($lettre); ?>"><?php echo($lettre); ?></a> -
<?php
}
?>
<a href="?page=persos&tri=alpha&classement=prenom&lettre=Z">Z</a>
<?php
}
?>
</td>
</tr>
<tr>
<td>
<br>
</td>
</tr>
</table>
<?php
include("admincn/mysql.php");
if (!isset($lettre))
{
//si $lettre n'est pas définie, alors on affiche tous les persos
if ($classement == 'prenom')
{
//si $classement = prenom, alors on classe les persos par prenoms, et les prenoms devant les noms
$sql = "SELECT nom,prenom,village,grade,mini_image FROM personnages ORDER BY prenom";
}
else
{
//si $classement est différent de prenom, alors on classe les persos par noms, et les noms devant les prenoms
$sql = "SELECT nom,prenom,village,grade,mini_image FROM personnages ORDER BY prenom";
}
$reponse = mysql_query($sql) or die("erreur dans la requete");
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')
{
?>
<table valign="top">
<tr>
<td>
<img src="<?php echo($mini_image); ?>" border="1">
</td>
<td valign="middle">
<a href="?page=perso_fiche&id=<?php echo($id); ?>"><b><?php echo($nom." ".$prenom); ?></b></a> - <?php echo($grade); ?> de <?php echo($village); ?> no kuni
</td>
</tr>
</table>';
<?php
}
elseif ($classement == 'prenom')
{
?>
<table valign="top">
<tr>
<td>
<img src="<?php echo($mini_image); ?>" border="1">
</td>
<td valign="middle">
<a href="?page=perso_fiche&id=<?php echo($id); ?>"><b><?php echo($prenom." ".$nom); ?></b></a> - <?php echo($grade); ?> de <?php echo($village); ?> no kuni
</td>
</tr>
</table>';
<?php
}
}
}
else
{
//si $lettre n'est PAS pas définie, alors elle est forcément définie ^__^
if ($classement == 'nom')
{
$sql = "SELECT nom,prenom,village,grade,mini_image FROM personnages WHERE nom LIKE '".$_GET['$lettre']."%' ORDER BY nom";
}
elseif ($classement == 'prenom')
{
$sql = "SELECT nom,prenom,village,grade,mini_image FROM personnages WHERE prenom LIKE '".$_GET['$lettre']."%' ORDER BY prenom";
}
$reponse = mysql_query($sql) or die("erreur dans la requete");
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'){
?>
<table valign="top">
<tr>
<td>
<img src="<?php echo($mini_image); ?>'" border="1">
</td>
<td valign="middle">
<a href="?page=perso_fiche&id=<?php echo($id); ?>"><b><?php echo($nom." ".$prenom); ?></b></a> - <?php echo($grade); ?> de <?php echo($village); ?> no kuni
</td>
</tr>
</table>
<?php
}
elseif ($classement == 'prenom')
{
?>
<table valign="top">
<tr>
<td>
<img src="<?php echo($mini_image); ?>'" border="1">
</td>
<td valign="middle">
<a href="?page=perso_fiche&id=<?php echo($id); ?>"><b><?php echo($prenom ." ". $nom); ?></b></a> - <?php echo($grade); ?> de <?php echo($village); ?> no kuni
</td>
</tr>
</table>
<?php
}
}
}
mysql_close();
?>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</tr>
Ensuite, pour trouver la source du problème, il faut savoir où chercher: tu dis que le tri par lettre ne marche pas : comment récupères-tu ce paramètre ? c'est là qu'il faut chercher et à partir de là il faut que tu vérifies si tu fais une requête correcte.
On dirait qu'il manque le début du code PHP, celui du début de fichier où tu récupères les paramètres d'url...
PS: je laisse le sujet ici, c'est pas un problème de SQL, mais bien un problème de PHP
Ok, alors première chose: essaye de séparer correctement PHP et HTML et fais une indentation correcte, c'est beaucoup plus facile a lire:
[php]<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')
{
?>
<a href="?page=persos&tri=alpha&classement=prenom">» Classer par prénoms</a><br><br>
<?php
}
elseif ($classement == 'prenom')
{
?>
<a href="?page=persos&tri=alpha&classement=nom">» Classer par noms</a><br><br>
<?php
}
?>
</td>
</tr>
<tr>
<td align="center">
<?php
if ($classement == 'nom')
{
for ($lettre='A'; $lettre < 'Z'; $lettre++)
{
?>
<a href="?page=persos&tri=alpha&classement=nom&lettre=<?php echo($lettre); ?>"><?php echo($lettre); ?></a> -
<?php
}
?>
<a href="?page=persos&tri=alpha&classement=nom&lettre=Z">Z</a>
<?php
}
elseif ($classement == 'prenom')
{
for ($lettre='A'; $lettre < 'Z'; $lettre++)
{
?>
<a href="?page=persos&tri=alpha&classement=prenom&lettre=<?php echo($lettre); ?>"><?php echo($lettre); ?></a> -
<?php
}
?>
<a href="?page=persos&tri=alpha&classement=prenom&lettre=Z">Z</a>
<?php
}
?>
</td>
</tr>
<tr>
<td>
<br>
</td>
</tr>
</table>
<?php
include("admincn/mysql.php");
if (!isset($lettre))
{
//si $lettre n'est pas définie, alors on affiche tous les persos
if ($classement == 'prenom')
{
//si $classement = prenom, alors on classe les persos par prenoms, et les prenoms devant les noms
$sql = "SELECT nom,prenom,village,grade,mini_image FROM personnages ORDER BY prenom";
}
else
{
//si $classement est différent de prenom, alors on classe les persos par noms, et les noms devant les prenoms
$sql = "SELECT nom,prenom,village,grade,mini_image FROM personnages ORDER BY prenom";
}
$reponse = mysql_query($sql) or die("erreur dans la requete");
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')
{
?>
<table valign="top">
<tr>
<td>
<img src="<?php echo($mini_image); ?>" border="1">
</td>
<td valign="middle">
<a href="?page=perso_fiche&id=<?php echo($id); ?>"><b><?php echo($nom." ".$prenom); ?></b></a> - <?php echo($grade); ?> de <?php echo($village); ?> no kuni
</td>
</tr>
</table>';
<?php
}
elseif ($classement == 'prenom')
{
?>
<table valign="top">
<tr>
<td>
<img src="<?php echo($mini_image); ?>" border="1">
</td>
<td valign="middle">
<a href="?page=perso_fiche&id=<?php echo($id); ?>"><b><?php echo($prenom." ".$nom); ?></b></a> - <?php echo($grade); ?> de <?php echo($village); ?> no kuni
</td>
</tr>
</table>';
<?php
}
}
}
else
{
//si $lettre n'est PAS pas définie, alors elle est forcément définie ^__^
if ($classement == 'nom')
{
$sql = "SELECT nom,prenom,village,grade,mini_image FROM personnages WHERE nom LIKE '".$_GET['$lettre']."%' ORDER BY nom";
}
elseif ($classement == 'prenom')
{
$sql = "SELECT nom,prenom,village,grade,mini_image FROM personnages WHERE prenom LIKE '".$_GET['$lettre']."%' ORDER BY prenom";
}
$reponse = mysql_query($sql) or die("erreur dans la requete");
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'){
?>
<table valign="top">
<tr>
<td>
<img src="<?php echo($mini_image); ?>'" border="1">
</td>
<td valign="middle">
<a href="?page=perso_fiche&id=<?php echo($id); ?>"><b><?php echo($nom." ".$prenom); ?></b></a> - <?php echo($grade); ?> de <?php echo($village); ?> no kuni
</td>
</tr>
</table>
<?php
}
elseif ($classement == 'prenom')
{
?>
<table valign="top">
<tr>
<td>
<img src="<?php echo($mini_image); ?>'" border="1">
</td>
<td valign="middle">
<a href="?page=perso_fiche&id=<?php echo($id); ?>"><b><?php echo($prenom ." ". $nom); ?></b></a> - <?php echo($grade); ?> de <?php echo($village); ?> no kuni
</td>
</tr>
</table>
<?php
}
}
}
mysql_close();
?>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</tr>[/php]
Ensuite, pour trouver la source du problème, il faut savoir où chercher: tu dis que le tri par lettre ne marche pas : comment récupères-tu ce paramètre ? c'est là qu'il faut chercher et à partir de là il faut que tu vérifies si tu fais une requête correcte.
On dirait qu'il manque le début du code PHP, celui du début de fichier où tu récupères les paramètres d'url...
PS: je laisse le sujet ici, c'est pas un problème de SQL, mais bien un problème de PHP