Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/09/2007, 15h28   #1
Membre du Club
 
Avatar de gantec
 
Inscription : février 2007
Messages : 223
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 223
Points : 53
Points : 53
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
gantec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 15h42   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
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
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 15h49   #3
Membre du Club
 
Avatar de gantec
 
Inscription : février 2007
Messages : 223
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 223
Points : 53
Points : 53
regarde ce que j'ai fait, mais j'arrive pas a récupérer la lettre...

Code :
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
gantec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 15h54   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
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é?
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 16h01   #5
Membre du Club
 
Avatar de gantec
 
Inscription : février 2007
Messages : 223
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 223
Points : 53
Points : 53
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 :
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
gantec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 16h08   #6
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
dans la page une tu fais un lien de ce style pour chaque lettre :
Code :
<a href="./monscript.php?lettre=A"> A </a>
dans le script monscript.php tu récupères la lettre en faisant
Code :
$lettre = $_GET['lettre'];
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 16h10   #7
Membre du Club
 
Avatar de gantec
 
Inscription : février 2007
Messages : 223
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 223
Points : 53
Points : 53
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
gantec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 16h11   #8
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
et pour afficher toutes les lettres de l'alphabet:

Code :
1
2
3
4
5
6
$debut=65;
$fin=91;
while($debut < $fin){
  echo chr($debut);
  $debut++;
}
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 16h12   #9
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
ca complique pas du tout
faut juste que tu fasses ta requete dans un test en gros
Code :
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
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 16h18   #10
Membre du Club
 
Avatar de gantec
 
Inscription : février 2007
Messages : 223
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 223
Points : 53
Points : 53
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 :
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
gantec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 16h19   #11
Membre du Club
 
Avatar de gantec
 
Inscription : février 2007
Messages : 223
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 223
Points : 53
Points : 53
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 :
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
gantec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 16h22   #12
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
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 :
1
2
3
4
//-------------------------------------------------------------------------------------------------------------------|
//-----------------------------------TRAVAIL SUR L'AFFICHAGE DES NOMS PAR LETTRE-------------------------------------|
//-------------------------------------------------------------------------------------------------------------------|
...
que tu dois mettre dans le if.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 16h29   #13
Membre du Club
 
Avatar de gantec
 
Inscription : février 2007
Messages : 223
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 223
Points : 53
Points : 53
tu sais quel est ce message d'erreur :

Citation:
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
gantec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 16h33   #14
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
souvent un oubli de parenthèses, de ; de " ou de '
une erreur de syntaxe en gros
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 16h35   #15
Membre du Club
 
Avatar de gantec
 
Inscription : février 2007
Messages : 223
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 223
Points : 53
Points : 53
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
gantec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 16h38   #16
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Montres nous ton code mis à jour pour voir
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 16h43   #17
Membre du Club
 
Avatar de gantec
 
Inscription : février 2007
Messages : 223
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 223
Points : 53
Points : 53
Citation:
Envoyé par koopajah Voir le message
Montres nous ton code mis à jour pour voir
le voila ->

Code :
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 :
$sql_aff = "SELECT nom, prenom, etablissement FROM im_eleves WHERE nom LIKE '".$lettre."%' ORDER BY nom;";
Citation:
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
gantec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 16h52   #18
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
t'avais une erreur dans les liens créés => tu mets $lettre au lieu de $row['gantec']

Ca donnerait ca
Code :
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();//-|
//------------|	
?>
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 08h45   #19
Membre du Club
 
Avatar de gantec
 
Inscription : février 2007
Messages : 223
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 223
Points : 53
Points : 53
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
gantec est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h02.


 
 
 
 
Partenaires

Hébergement Web