filtre sur page

Répondre
universdupc
le 11/01/2006 à 11:08
universdupc
Bonjour !

Voilà je suis entrain de faire une petir script concerant un agenda téléphoniqe. Mais j'ai un problème je ne sais pas comment on fait pour effectuer un filtre. µJe m'explique :
Voilà j'ai ma page ou l'on affiche toutes les personne stocker dans une base de donner eavec leur numéro de telephonne et moi je voudrais faire un affichaqge par lettre alphabétique c'est à dire ne pas tout avoir sur la même page mauis par exemple cliquer sur une lettre "a" et la on affiche que les personne dont le nom commence par un "a" ainsi de suite..
Voici le code que j'ai commencé il fonctionne très bien sauf le trie bien sur.

<?php
// on se connecte à la base de données
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('repertoire_tel', $base);
?>
<html>
<head>
<title>affichage du répertoire</title>
</head>
<body>
<?php
// structure de la mise en page
echo '<h3><p><center>Répertoire téléphonnique</center></p></h3><br><br>';
echo '<center>';
echo '<table border cellspacing="0" width="600">';
echo '<tr>';
echo '<td width="100"><p><center>Nom</center></p></td>';
echo '<td width="100"><p><center>Prénom</p></center></td>';
echo '<td width="200"><p><center>Addresse</p></center></td>';
echo '<td width="200"><p><center>téléphonne</p></center></td>';
echo '</tr>';

// lancement de la requête
$sql = 'SELECT nom, prénom, addresse,
telephone FROM liste_proprietaire ORDER BY nom';

// on lance la requête (mysql_query) et on
// impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql)
or die('Erreur SQL !'.$sql.''.mysql_error());

//on récupère le résultat
//sous la forme d'un tableau
//en scanan tous les tuples
while ($data = mysql_fetch_array($req)) {
// on effectu l'affichage des résultat
echo "<tr><td>";
echo $data['nom'];
echo "</td><td>";
echo $data['prénom'];
echo "</td><td>";
echo $data['addresse'];
echo "</td><td>";
echo $data['telephone'];
echo "</td></tr>";
}

echo '</center>';
// on libère l'espace mémoire
//alloué pour cette intérrogation de base
mysql_free_result ($req);
mysql_close ();
?>
</body>
</html>


Merci d'avance
zebden
le 11/01/2006 à 11:38
zebden
Luu,

$sql = 'SELECT nom, prénom, addresse, telephone FROM liste_proprietaire ORDER BY nom';

Pour afficher que les noms commencant par A par exemple rajoute la clause :

WHERE `nom` REGEXP "^(a|A){1}" devrait marcher et insensible à la casse.

Par contre j'aimerais bien savoir comment passer un paramètre genre insensible à la casse comme avec PCRE. J'ai rien trouvé dessus.
zebdinou pour les intimes / Blog : http://www.zebden.fr
universdupc
le 11/01/2006 à 11:43
universdupc
Oui mais moi je veux que sur la même page j'ai A B C D E F G H.... en cliquant sur l'une des lettre il me donne les nomme commencant par cette lettre.
Car ta solution focntionne mais pas pratique car moi je veux tout traiter par la page principale.
Merci quand même.
Avec ta solution il faudrais créer plusieur page ect...
zebden
le 11/01/2006 à 12:31
zebden
Oula, faut essayer de comprendre au lieu de dire nan ca ne me va pas. Tu veux un code tout prêt ? bah tiens :

<?php
$lettre = isset($_GET['lettre']) ? $_GET['lettre'] : '';

$sql = 'SELECT nom, prénom, addresse, telephone FROM liste_proprietaire ';
if($lettre) {
$sql .= 'WHERE `nom` REGEXP "^(' . strtoupper($lettre) . '|';
$sql .= strtolower($lettre) . '){1}"';
}

$sql .= 'ORDER BY nom';

// Execution de la requête.
?>


Tu veux aussi que je te fasse les liens avec tes lettres ou tu penses t'en sortir tout seul ?

Une marche à suivre c'est pour comprendre un concept. ici on apprend, enfin c'est l'impression que j'avais.

Et oui! J'ai le droit de m'enerver !!!!! ^_^
Sans rancunes ;)
zebdinou pour les intimes / Blog : http://www.zebden.fr
i M@N
le 11/01/2006 à 12:52
i M@N
Hello !

+1 Zebden.

mouhahaha !! smiley

@+...
One Love, One Heart, One Unity.
universdupc
le 11/01/2006 à 13:11
universdupc
Non justement puisque je ne savais pas du totu comment mis prendre je ,'ai pas la même vision c'est logique et en voyant ce que tu m'avais donné ben je n'ai pas réussit à annalyser pour savoir si ca me convené ou non.
Sans détail c'est pas facile surtout quand tu n'y connias rien donc sans me donner le code mais tu m'aurais donner plus de détail ca aurais été.
Sur la facon de s'y prendre, comment le process fonctionne, la méthode quoi les liens les appel de pages... enfin bref désolé.
universdupc
le 11/01/2006 à 13:22
universdupc
bon sinon pour essayer de comprendre. A quoi sert le isset $post... generalement le $post c'est utiliser dasn un formulaire enfin je sais pas car si je fais un lien je n'utilise pas cette méthode.
Je penses pas avoir compris toute la démarche pourrais tu m'expliquais.
zebden
le 11/01/2006 à 13:49
zebden
Euh,

J'ai pas utilisé $_POST mais $_GET. Et isset, c'est pour tester l'existence (et non le contenu) d'une variable.

Oui effectivement, je peux donner des solutions qui parraissent pour moi extrement logiques et simples à comprendre sans me mettre à la place de celui qui demande (ce qui est pas forcement bien pour le coup).
Mais justement j'essaie de donner juste une marche à suivre pour que le demandeur ensuite cherche par lui-même, à l'aide du manuel ou des cours ici, pour adapter à sa situation et par la même occasion comprendre la démarche.

Mais cela implique forcement un peu de recherche et voir les notions abordées à approfondir pour les comprendre.

Et pour comprendre le code donné ici, approfondir la notion de superglobale, le tableau $_GET et la fonction isset. Et tu verras qu'en appliquant cette méthode, tu ne sauras plus obligé de passer les forums pour traiter des cas similaires. Ainsi va l'apprentissage !
zebdinou pour les intimes / Blog : http://www.zebden.fr
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours