Php/sql like avec chiffre

Fermé
stefanelle - 22 févr. 2009 à 23:43
Aneoz02 Messages postés 65 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 28 décembre 2010 - 13 nov. 2010 à 15:22
Bonjour,

j ai fichier php qui m affiche un menu avec un tableau résultat d un select entre deux tables tout fonctionne super sauf que pour que le résultat s affiche dans la page et par première lettre label a, label b ... j ai mis un get me permettant d afficher les label par première lettre, mon souci est que je veux afficher également ceux commençant par un chiffre mais quand je mets 0, 1 ou 2 ça fonctionne mais comment faire en sorte qu il prenne tous les chiffres de 0 à 9 ?

voici mon code :



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN"
"http://www.w3.org/TR/xhtmll/DTD/xhtmll-transitional.dtd">
<html Xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>listing</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>







<ul class="menu">
<li><a href="label.php?lettre=[0-9]" class="active"><span>Label 0-9</span></a></li>
<li><a href="label.php?lettre=A" target="_self"><span>Label A</span></a></li>
<li><a href="label.php?lettre=B" target="_self"><span>Label B</span></a></li>
<li><a href="label.php?lettre=C" target="_self"><span>Label C</span></a></li>
<li><a href="label.php?lettre=D" target="_self"><span>Label D</span></a></li>
<li><a href="label.php?lettre=E" target="_self"><span>Label E</span></a></li>
<li><a href="label.php?lettre=F" target="_self"><span>Label F</span></a></li>
<li><a href="label.php?lettre=G" target="_self"><span>Label G</span></a></li>
<li><a href="label.php?lettre=H" target="_self"><span>Label H</span></a></li>
<li><a href="label.php?lettre=I" target="_self"><span>Label I</span></a></li>
<li><a href="label.php?lettre=J" target="_self"><span>Label J</span></a></li>
<li><a href="label.php?lettre=K" target="_self"><span>Label K</span></a></li>
<li><a href="label.php?lettre=L" target="_self"><span>Label L</span></a></li>
<li><a href="label.php?lettre=M" target="_self"><span>Label M</span></a></li>
<li><a href="label.php?lettre=N" target="_self"><span>Label N</span></a></li>
<li><a href="label.php?lettre=o" target="_self"><span>Label O</span></a></li>
<li><a href="label.php?lettre=P" target="_self"><span>Label P</span></a></li>
<li><a href="label.php?lettre=Q" target="_self"><span>Label Q</span></a></li>
<li><a href="label.php?lettre=R" target="_self"><span>Label R</span></a></li>
<li><a href="label.php?lettre=S" target="_self"><span>Label S</span></a></li>
<li><a href="label.php?lettre=T" target="_self"><span>Label T</span></a></li>
<li><a href="label.php?lettre=U" target="_self"><span>Label U</span></a></li>
<li><a href="label.php?lettre=V" target="_self"><span>Label V</span></a></li>
<li><a href="label.php?lettre=W" target="_self"><span>Label W</span></a></li>
<li><a href="label.php?lettre=X" target="_self"><span>Label X</span></a></li>
<li><a href="label.php?lettre=Y" target="_self"><span>Label Y</span></a></li>
<li><<a href="label.php?lettre=Z" target="_self"><span>Label Z</span></a></li>



<br></br>
<br></br>
<br></br>
<br></br>
<br></br>

<?php

include ('config.php');
include ('connexion.php');

echo '<table>

<tr>

<th>Label</th>
<th>Référence</th>
<th>Artiste</th>
<th>Album</th>
<th>Format</th>
<th>Modifier</th>
<th>Supprimer</th>

</tr>';

// paramètre reçu désignant le critère du nom du label recherché
$param1 = mysql_real_escape_string($_GET['lettre']);


//
$sql = "SELECT * FROM label
INNER JOIN contenu ON contenu.id_label = label.id_label
Where nom_label REGEXP '^$param1' order by nom_label, reference;
";
$req = mysql_query($sql);
while ($resultat = mysql_fetch_array($req))


{
echo '<tr>';


echo '<td>'.$resultat['nom_label'].'</td>';
echo '<td>'.$resultat['reference'].'</td>';
echo '<td>'.$resultat['artiste'].'</td>';
echo '<td>'.$resultat['album'].'</td>';
echo '<td>'.$resultat['format'].'</td>';
echo '<td><a href="formulaire_de_mise_a_jour.php?reference='.$resultat

['reference'].'">Modifier</a></td>';
echo '<td><a href="script_de_suppression.php?reference='.$resultat

['reference'].'">Supprimer</a></td>';





echo '</tr>';
}

echo '</table>';

?>

</body></html>

<?php
mysql_close();
?>

Merci beaucoup
A voir également:

2 réponses

HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 608
22 févr. 2009 à 23:56
$sql = "SELECT * FROM label
INNER JOIN contenu ON contenu.id_label = label.id_label
Where nom_label REGEXP '^$param1' order by nom_label, reference;
"; 


Tu te compliques la vie :

... WHERE nom_label LIKE '" . $param1 . "%' ORDER BY nom_label, reference;


Ce qui revient à :

LIKE 'A%' pour $param1 = A.

Le LIKE marche également pour des chiffres.


0
merci de ta reponse

mais que dois je mettre au niveau du premier menu pour que les chiffres de 0 a 9 soient pris en compte ?
0
Aneoz02 Messages postés 65 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 28 décembre 2010 5
Modifié par Aneoz02 le 13/11/2010 à 15:30
Un peu tard mais, je pense que j'ai une solution pour ceux qui passeraient par ici :

('SELECT * FROM nomBase WHERE nomTable REGEXP "^['.$choix.']"')

$choix peux contenir "0-9" avec REGEXP (ce qui n'est pas le cas de LIKE)
0