maintenant ça marche mais avec les accents, je remet la fonction et si c'est ok je ferme le poste
a tres bientôt
<?php
header('Content-type: text/html; charset=UTF-8');
Function accents($chaine)
{
$string = strtr($chaine,
"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",
"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
return $string;
} ;
mysql_connect('localhost', 'root', '');
mysql_select_db('aaaa');
if(isset($_POST['q']))
{
//j'enleve les accents a q
$_POST['q'] = accents($_POST['q']);
$q = mysql_real_escape_string (strtolower (addslashes($_POST['q'])));
$sql = "SELECT id_chien, nom, affixe, sex, livre, lof FROM chien WHERE LOWER (nom) LIKE '%$q%'";
$req = mysql_query($sql);
if(mysql_num_rows($req)){
while ($dnn = mysql_fetch_array($req))
{
?>
j'ai réussi mais juste sur l'echo et du coup il me faut taper "élève" pour obtenir "eleve", je pense donc que ça ce passe plus haut mais rien a faire...<table width="100%">
<?php
header('Content-type: text/html; charset=UTF-8');
mysql_connect('localhost', 'root', '');
mysql_select_db('aaaa');
if(isset($_POST['q']))
{
$q = mysql_real_escape_string (strtolower (addslashes($_POST['q'])));
$sql = "SELECT id_chien, nom, affixe, sex, livre, lof FROM chien WHERE LOWER (nom) LIKE '%$q%'";
function accents($sql, $charset='utf-8')
{
$sql = htmlentities($sql, ENT_NOQUOTES, $charset);
$sql = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $sql);
$sql = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $sql); // pour les ligatures e.g. 'œ'
$sql = preg_replace('#&[^;]+;#', '', $sql); // supprime les autres caractères
return $sql;
}
$req = mysql_query($sql);
if(mysql_num_rows($req)){
while ($dnn = mysql_fetch_array($req))
{
?>
<tr>
<td height="25px">
<a href="fiche_malinois.php?pedigre=<?php echo $dnn['id_chien']; ?>&<?php echo $dnn['nom']; ?>">
<strong><?php echo nl2br(stripslashes(accents($dnn['nom']))); ?> <?php echo nl2br(stripslashes($dnn['affixe'])); ?></strong>
</a>
</td>
<td><center><?php echo $dnn['livre']; ?> <?php echo $dnn['lof']; ?></center></td>
</tr>
<?php
}
}else{
echo '</table><br /><center><strong><font color="red">Aucun résultat</font></strong></center><br />';
}
}else
{
header('location: index.html');
}
?>
</table>
2eme cas:
<table width="100%">
<?php
header('Content-type: text/html; charset=UTF-8');
function accents($str, $charset='utf-8')
{
$str = htmlentities($str, ENT_NOQUOTES, $charset);
$str = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'œ'
$str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères
return $str;
}
mysql_connect('localhost', 'root', '');
mysql_select_db('aaaa');
if(isset($_POST['q']))
{
$q = mysql_real_escape_string (strtolower (addslashes($_POST['q'])));
$sql = "SELECT id_chien, nom, affixe, sex, livre, lof FROM chien WHERE LOWER (nom) LIKE '%$q%'";
$req = mysql_query($sql);
if(mysql_num_rows($req)){
while ($dnn = mysql_fetch_array($req))
{
?>
<tr>
<td height="25px">
<a href="fiche_malinois.php?pedigre=<?php echo $dnn['id_chien']; ?>&<?php echo $dnn['nom']; ?>">
<strong><?php echo nl2br(stripslashes(accents($dnn['nom']))); ?> <?php echo nl2br(stripslashes($dnn['affixe'])); ?></strong>
</a>
</td>
<td><center><?php echo $dnn['livre']; ?> <?php echo $dnn['lof']; ?></center></td>
</tr>
<?php
}
}else{
echo '</table><br /><center><strong><font color="red">Aucun résultat</font></strong></center><br />';
}
}else
{
header('location: index.html');
}
?>
</table>
je commence a penser que la modif doit se faire ici:
$sql = "SELECT id_chien, nom, affixe, sex, livre, lof FROM chien WHERE LOWER (nom) LIKE '%$q%'";
ai je raison ?<table width="100%">
<?php
header('Content-type: text/html; charset=UTF-8');
// Je crée un fonction enleve accents
function accents($str, $charset='utf-8')
{
$str = htmlentities($str, ENT_NOQUOTES, $charset);
$str = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'œ'
$str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères
return $str;
}
//connexion
mysql_connect('localhost', 'root', '');
mysql_select_db('aaaa');
// si le formulaire est posté
if(isset($_POST['q']))
{
// je protège les caractères spéciaux
// je renvoie une chaîne en minuscules
// j'ajoute des antislashs dans une chaîne
$q = mysql_real_escape_string (strtolower (addslashes($_POST['q'])));
// je crée la requête SQL
$sql = "SELECT id_chien, nom, affixe, sex, livre, lof FROM chien WHERE LOWER (nom) LIKE '%$q%'";
// J'envoie une requête au serveur
$req = mysql_query($sql);
// Je trouve le nombre de lignes d'un résultat MySQL
if(mysql_num_rows($req)){
// je fait une boucle qui cherche chaque enregistrement
while ($dnn = mysql_fetch_array($req))
{
?>
<tr>
<td height="25px">
<a href="fiche_malinois.php?pedigre=<?php echo $dnn['id_chien']; ?>&<?php echo $dnn['nom']; ?>">
<strong><?php echo nl2br(stripslashes(accents($dnn['nom']))); ?> <?php echo nl2br(stripslashes($dnn['affixe'])); ?></strong>
</a>
</td>
<td><center><?php echo $dnn['livre']; ?> <?php echo $dnn['lof']; ?></center></td>
</tr>
<?php
}
}else{
echo '</table><br /><center><strong><font color="red">Aucun résultat</font></strong></center><br />';
}
}else
{
header('location: index.html');
}
?>
</table>$sql = "SELECT id_chien, nom, affixe, sex, livre, lof FROM chien WHERE LOWER (nom) LIKE '%$q%' OR LOWER (mc) LIKE '%$q%'";
j'enregistre 2 fois le nom, avec et sans accents...