IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] SCRIPT pour avoir une navigation avec les lettres de l'alphabet


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut [SQL] SCRIPT pour avoir une navigation avec les lettres de l'alphabet
    Hello,

    est-ce que quelqu'un serait en possession d'un script qui permet de faire un navigation avec les lettres de l'alphabet ? style on a toutes les lettres de l'alphabet sur une ligne et lorsqu'on clic sur F on a tout le contenu d'une table de notre base de données qui commence par la lettre F qui s'affiche ?

    par exemple ce site web :
    http://perso.orange.fr/repertoiresci...uteursjeti.htm
    ce n'est peut etre pas le meilleur site, mais c'est pour éclaircir mes explications..

    a+ et merci
    .:: GanTec ::.
    Quand on espère rien de rien et qu'on gagne le paquet, ça c'est le destin

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Tu peux le faire assez facilement toi meme :

    1/ tu affiches toutes les lettres (liste déroulante ou suite de lien). La lettre choisie doit etre passée en paramètre dans l'url pour être récupérée dans le script

    2/ tu récupères la lettre et tu fais une requete SQL du style
    SELECT * FROM matable WHERE monchamp LIKE 'x%' <= x est ta lettre

  3. #3
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    regarde ce que j'ai fait, mais j'arrive pas a récupérer la lettre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <?php
    //----------------------------------------------------------------|
    //-----------------------DATABASE CONNEXION-----------------------|
    //----------------------------------------------------------------|
     
    ob_start();
    define('LEGAL','legal');
    require_once($_SERVER['DOCUMENT_ROOT'].'/conf.php');
    require_once('menus_admin.php');
     
    phpToDb($typeCon = 'php');
    error_reporting(E_ALL ^ E_NOTICE); //report des erreurs en valid
     
    //----------------------------------------------------------------|
    //------------------------------------------------------------------------------------|
    //-----------TRAVAIL SUR L'AFFICHAGE DES LETTRES DISPONIBLES DANS LA BD---------------|
    //------------------------------------------------------------------------------------|
    $lettre = $_REQUEST['']
     
    $sql = "SELECT DISTINCT SUBSTRING(nom,1,1) AS gantec FROM im_eleves ORDER BY nom;";
    $query = mysql_query($sql);
     
    echo "<table border='1' width='100%'><tr>";
    while($row = mysql_fetch_array($query)) 
    	{
        echo "<td><a href='alphabet_test.php'>".$row['gantec']."</a></td>";
    	}
    echo "</tr></table><br><br>";
     
    //-------------------------------------------------------------------------------------------------------------------|
    //-----------------------------------TRAVAIL SUR L'AFFICHAGE DES NOMS PAR LETTRE-------------------------------------|
    //-------------------------------------------------------------------------------------------------------------------|
     
    $sql_aff = "SELECT nom, prenom, etablissement FROM im_eleves WHERE nom LIKE '".$row['gantec']."%' ORDER BY nom;";
    echo $sql_aff;
    $query_aff = mysql_query($sql_aff);
     
    echo "<table border='1'><tr>";
    while($row_aff= mysql_fetch_array($query_aff))
    	{
    	echo "<td>".$row_aff['nom']."</td><td>".$row_aff['prenom']."</td><td>".$row_aff['etablissement']."</td></tr>";
    	}
    echo "</table>";
    //-------------------------------------------------------------------------------------------------------------------|
    //------------|
    //--FIN PROG--|
    //------------|
    ob_flush();//-|
    //------------|	
    ?>
    .:: GanTec ::.
    Quand on espère rien de rien et qu'on gagne le paquet, ça c'est le destin

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    1/ tu fais $lettre = $_REQUEST[''] <= il manque le nom de la variable entre les ' ' non ?
    2/ Ta reqete récupères les premieres lettres de toutes les lignes et apres tu affiches que si c'est bon? Pourquoi ne pas utiliser le LIKE comme je te l'ai montré?

  5. #5
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par koopajah Voir le message
    1/ tu fais $lettre = $_REQUEST[''] <= il manque le nom de la variable entre les ' ' non ?
    2/ Ta reqete récupères les premieres lettres de toutes les lignes et apres tu affiches que si c'est bon? Pourquoi ne pas utiliser le LIKE comme je te l'ai montré?
    1) comment je fais pour récupérer la lettre alors je ne vois pas du tout ??


    2) j'utilise le LIKE justement, et une fois que je saurais comment récupérer la lettre, là, je pourrais faire un truc style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE nom LIKE '$lettre%
    merci deja pour ton aide

    a+
    .:: GanTec ::.
    Quand on espère rien de rien et qu'on gagne le paquet, ça c'est le destin

  6. #6
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    dans la page une tu fais un lien de ce style pour chaque lettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="./monscript.php?lettre=A"> A </a>
    dans le script monscript.php tu récupères la lettre en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lettre = $_GET['lettre'];

  7. #7
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    y a un hick enfaite...si je fais tout sur la même page ? si ca complique trop les choses, je vais péter mon fichier en deux, y a pas de blèmes !!

    thanks
    .:: GanTec ::.
    Quand on espère rien de rien et qu'on gagne le paquet, ça c'est le destin

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    et pour afficher toutes les lettres de l'alphabet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $debut=65;
    $fin=91;
    while($debut < $fin){
      echo chr($debut);
      $debut++;
    }

  9. #9
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    ca complique pas du tout
    faut juste que tu fasses ta requete dans un test en gros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_GET['lettre']))
    {
    // j'affiche les sites commencant par cette lettre
    }
    pour ne pas avoir de message d'erreur quand tu viens sur le script la premiere fois

  10. #10
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    je comprends pas vraiment désolé...ca fait pas super lontemps que je fais du PHP...

    donc si je fais ce que tu me dis
    Citation Envoyé par koopajah Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_GET['lettre']))
    {
    // j'affiche les sites commencant par cette lettre
    }
    je devrai poser mon code ou ??
    .:: GanTec ::.
    Quand on espère rien de rien et qu'on gagne le paquet, ça c'est le destin

  11. #11
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    yes, merci pour cette autre solution, je ne connaissais pas...
    Citation Envoyé par Raideman Voir le message
    et pour afficher toutes les lettres de l'alphabet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $debut=65;
    $fin=91;
    while($debut < $fin){
      echo chr($debut);
      $debut++;
    }
    mais je préfère séléctionner les lettres qu'il y a dans ma base de données..ca évite d'afficher .::aucune entrée::.

    mais merci c'est cool

    a plus
    .:: GanTec ::.
    Quand on espère rien de rien et qu'on gagne le paquet, ça c'est le destin

  12. #12
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par gantec Voir le message
    je comprends pas vraiment désolé...ca fait pas super lontemps que je fais du PHP...

    donc si je fais ce que tu me dis


    je devrai poser mon code ou ??
    C'est le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //-------------------------------------------------------------------------------------------------------------------|
    //-----------------------------------TRAVAIL SUR L'AFFICHAGE DES NOMS PAR LETTRE-------------------------------------|
    //-------------------------------------------------------------------------------------------------------------------|
    ...
    que tu dois mettre dans le if.

  13. #13
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    tu sais quel est ce message d'erreur :

    Parse error: parse error, unexpected T_VARIABLE
    .:: GanTec ::.
    Quand on espère rien de rien et qu'on gagne le paquet, ça c'est le destin

  14. #14
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    souvent un oubli de parenthèses, de ; de " ou de '
    une erreur de syntaxe en gros

  15. #15
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    ok, c'est bon le problème du message est règlé Merci...mais le reste non, j'arrive pas a afficher la lettre séléctionnée plutôt !!
    .:: GanTec ::.
    Quand on espère rien de rien et qu'on gagne le paquet, ça c'est le destin

  16. #16
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Montres nous ton code mis à jour pour voir

  17. #17
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par koopajah Voir le message
    Montres nous ton code mis à jour pour voir
    le voila ->

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php
    //----------------------------------------------------------------|
    //-----------------------DATABASE CONNEXION-----------------------|
    //----------------------------------------------------------------|
     
    ob_start();
    define('LEGAL','legal');
    require_once($_SERVER['DOCUMENT_ROOT'].'/conf.php');
    require_once('menus_admin.php');
     
    phpToDb($typeCon = 'php');
    error_reporting(E_ALL ^ E_NOTICE); //report des erreurs en valid
     
    //----------------------------------------------------------------|
    //------------------------------------------------------------------------------------|
    //-----------TRAVAIL SUR L'AFFICHAGE DES LETTRES DISPONIBLES DANS LA BD---------------|
    //------------------------------------------------------------------------------------|
    $lettre = $_GET['lettre'];
     
    $sql = "SELECT DISTINCT SUBSTRING(nom,1,1) AS gantec FROM im_eleves ORDER BY nom;";
    $query = mysql_query($sql);
     
    echo "<table border='1' width='100%'><tr>";
     
    while($row = mysql_fetch_array($query)) 
    	{
        echo "<td><a href='alphabet_test.php?lettre=".$lettre."'>".$row['gantec']."</a></td>";
    	}
    echo "</tr></table><br><br>";
    //------------------------------------------------------------------------------------|
    //-------------------------------------------------------------------------------------------------------------------|
    //-----------------------------------TRAVAIL SUR L'AFFICHAGE DES NOMS PAR LETTRE-------------------------------------|
    //-------------------------------------------------------------------------------------------------------------------|
    if (isset($_GET['lettre']))
    {
    echo $lettre;
    $sql_aff = "SELECT nom, prenom, etablissement FROM im_eleves WHERE nom LIKE 'c%' ORDER BY nom;";
    echo $sql_aff;
    $query_aff = mysql_query($sql_aff);
     
    echo "<table border='1'><tr>";
    while($row_aff= mysql_fetch_array($query_aff))
    	{
    	echo "<td>".$row_aff['nom']."</td><td>".$row_aff['prenom']."</td><td>".$row_aff['etablissement']."</td></tr>";
    	}
    echo "</table>";
     
    }
     
    //-------------------------------------------------------------------------------------------------------------------|
    //------------|
    //--FIN PROG--|
    //------------|
    ob_flush();//-|
    //------------|	
    ?>
    a oui, si jamais j'ai mis la lettre c% dans ma requete pour voir ce que ca donne sinon, j'avais ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_aff = "SELECT nom, prenom, etablissement FROM im_eleves WHERE nom LIKE '".$lettre."%' ORDER BY nom;";
    merci pour ton aide vraiment, mais y a mon bureau qui va fermer, alors je ne sais pas peut etre on se recontacte demain ! merci encore .:: GT ::.
    .:: GanTec ::.
    Quand on espère rien de rien et qu'on gagne le paquet, ça c'est le destin

  18. #18
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    t'avais une erreur dans les liens créés => tu mets $lettre au lieu de $row['gantec']

    Ca donnerait ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php
    //----------------------------------------------------------------|
    //-----------------------DATABASE CONNEXION-----------------------|
    //----------------------------------------------------------------|
     
    ob_start();
    define('LEGAL','legal');
    require_once($_SERVER['DOCUMENT_ROOT'].'/conf.php');
    require_once('menus_admin.php');
     
    phpToDb($typeCon = 'php');
    error_reporting(E_ALL ^ E_NOTICE); //report des erreurs en valid
     
    //----------------------------------------------------------------|
    //------------------------------------------------------------------------------------|
    //-----------TRAVAIL SUR L'AFFICHAGE DES LETTRES DISPONIBLES DANS LA BD---------------|
    //------------------------------------------------------------------------------------|
    $lettre = $_GET['lettre'];
     
    $sql = "SELECT DISTINCT SUBSTRING(nom,1,1) AS gantec FROM im_eleves ORDER BY nom;";
    $query = mysql_query($sql);
     
    echo "<table border='1' width='100%'><tr>";
     
    while($row = mysql_fetch_array($query)) 
    	{
        echo "<td><a href='alphabet_test.php?lettre=".$row['gantec']."'>".$row['gantec']."</a></td>";
    	}
    echo "</tr></table><br><br>";
    //------------------------------------------------------------------------------------|
    //-------------------------------------------------------------------------------------------------------------------|
    //-----------------------------------TRAVAIL SUR L'AFFICHAGE DES NOMS PAR LETTRE-------------------------------------|
    //-------------------------------------------------------------------------------------------------------------------|
    if (isset($_GET['lettre']))
    {
    echo "La lettre que vous avez choisie est : " . $lettre . "<br/>";
    $sql_aff = "SELECT nom, prenom, etablissement FROM im_eleves WHERE nom LIKE '". $lettre . "%' ORDER BY nom;";
    echo "La requete pour récupérer les liens est : " . $sql_aff . "<br/>";
    $query_aff = mysql_query($sql_aff);
     
    echo "<table border='1'><tr>";
    while($row_aff= mysql_fetch_array($query_aff))
    	{
    	echo "<td>".$row_aff['nom']."</td><td>".$row_aff['prenom']."</td><td>".$row_aff['etablissement']."</td></tr>";
    	}
    echo "</table>";
     
    }
     
    //-------------------------------------------------------------------------------------------------------------------|
    //------------|
    //--FIN PROG--|
    //------------|
    ob_flush();//-|
    //------------|	
    ?>

  19. #19
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    superbe koopajah !

    merci beaucoup

    a bientot et n'hesite pas si jamais t'as besoin d'aide pour quelque chose ! création graphique, jsui plus à l'aise !!

    ++
    .:: GanTec ::.
    Quand on espère rien de rien et qu'on gagne le paquet, ça c'est le destin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.4] Creer un script pour faire une recherche avec Google
    Par Ludovic Barry dans le forum Langage
    Réponses: 3
    Dernier message: 24/12/2019, 14h18
  2. Réponses: 3
    Dernier message: 07/11/2008, 10h41
  3. Requete nom ville pour avoir code postal,avec une base sous format XMl
    Par naouah dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/02/2008, 20h00
  4. Réponses: 7
    Dernier message: 21/09/2006, 14h06
  5. [Galerie] Cherche un script php pour avoir une galerie de photos
    Par Nimajneb dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 03/08/2006, 10h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo