Logo du forum
 

Forum TTH-News

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [SQL / PL-SQL / SGBD] » requette sql
Login Mot de passe

2 visiteurs sur ce topic (0 membre(s), 2 invité(s) )


Auteur
Sujet : requette sql
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.34 par jour)




Message du 16-07-2006 @ 11:39      Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


Salut,

j'ai encore besoin de votre aide (béni celui qui a eu l'idée de ce forum) :)

je ne me souviens plus de la requette exacte pour :

faire une "selection" dans une table des éléments commançant par une lettre définie ????

('SELECT * FROM personnels WHERE nom="a" ORDER BY nom';)

en plus que la lettre soit en minsuscule ou majuscule....

Merci à vous tous


----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
Joufflu
Sage
Membre # 14503

 Avatar du membre
Lieu : IDF

Messages :
1333 (0.25 par jour)


Score :

Message du 16-07-2006 @ 11:44   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Ce serait avec les expressions reguilières :

SELECT * FROM personnel WHERE nom REGEXP "^[aA].*"

Sans regexp : SELECT * FROM personnel WHERE nom LIKE "a%"
Mais dans ce cas, je ne sais pas certain que seuls les nom qui commencent par a ou A sortent de la base :s

[message édité le 16-07-2006 @ 11:46 Par Joufflu]
----------
ThinkPad W520 - HP NC8430 - HP TC1100 - IBM ThinkPad X23
-> Gestion de cave a vin en ligne (gratuit) : www.VotreCave.info
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.34 par jour)




Message du 16-07-2006 @ 12:05   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

je vais mettre ça dans mon code!!!

j'aivais oublié les expression régulieres !!!


merci bcp


----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
soulmanto
Codeur du forum
Membre # 5373

 Avatar du membre
Lieu : Lille

Messages :
13839 (2.3 par jour)


Score :

Message du 16-07-2006 @ 12:27   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Selon le type de champ et de table, une requête texte peut être sensible à la casse...

types de champs sensibles à la casse :
CHAR
VARCHAR
TINYBLOB
BLOB
MEDIUMBLOB
LONGBLOB

Types insensibles à la casse :
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT

Mais pour que cette sensibilité à la casse prenne effet, il faut affecter un charset à la colonne, par exemple: "latin1_swedish_ci".


----------
Desktop : Core i7 2600 | Gigabyte GA-Z68MA-D2H-B3 | 8 Go DDR3 PC10600 | SSD UltraPlus 128 Go / HDD 500 Go / 1 To | Sapphire R9 280 3 Go | CoolerMaster RC690 | Windows 7
Asus MemoPad 10

Stromille powered !!!
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.34 par jour)




Message du 16-07-2006 @ 12:42   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Jai un prob pour inserer l'expression réguliere dans mon code,

en faire, je voudrais lorsque l'on clic sur le lien A avoir la table personnels qui n'affiche que les nom en A
si l'on clic si B ......................... etc

mon code va p-e vous sembler bizarre mais c'est mon mien :D

je dois faire des case
et je dois faire des if pour voir le niveau d'acces, car tous le monde ne peut pas afficher toutes les info...

je bloque dans le lien où j'ai membre.php?tri=????????&choix_............ cas suivant le lien il doit etre A ou B .....
ainsi qu'a $retour = mysql_query('SELECT * FROM personnels WHERE actif="y" AND nom=????????? ORDER BY nom';);



voivi le code :

// fonctionne pas !!!
case 'liste_personnels':
echo 'A ';
echo 'B ';
echo 'C ';
echo 'D ';
echo 'E ';
$retour = mysql_query('SELECT * FROM personnels WHERE actif="y" AND nom=????????? ORDER BY nom';);
echo '<table border="1">';
echo '<tr>';
if ($_SESSION['niveau'] == '2';)
{
echo '<td>Action<td>';
echo '<td>Login<td>';
echo '<td>Nom<td>';
echo '<td>Prénom<td>';
echo '<td>Genre<td>';
echo '<td>Date de naissance<td>';
echo '<td>E-Mail<td>';
echo '<td>Numéro de téléphone<td>';
echo '<td>Numéro de GSM<td>';
}
if ($_SESSION['niveau'] == '5';)
{
echo '<td>Action<td>';
echo '<td>ID<td>';
echo '<td>Login<td>';
echo '<td>Nom<td>';
echo '<td>Prénom<td>';
echo '<td>Genre<td>';
echo '<td>Date de naissance<td>';
echo '<td>Mot de passe<td>';
echo '<td>E-Mail<td>';
echo '<td>Numéro de téléphone<td>';
echo '<td>Numéro de GSM<td>';
echo '<td>Date d'entrée dans l'entreprise<td>';
echo '<tr>';
}

while ($donnees = mysql_fetch_array($retour))
{
if ($_SESSION['niveau'] == '2';)
{
echo '<tr>';
echo '<td>Edition<td>';
echo '<td>' . $donnees['login'] . '<td>';
echo '<td>' . $donnees['nom'] . '<td>';
echo '<td>' . $donnees['prenom'] . '<td>';
echo '<td>' . $donnees['genre'] . '<td>';
echo '<td>' . $donnees['date_nai'] . '<td>';
echo '<td>' . $donnees['adr_mail'] . '<td>';
echo '<td>' . $donnees['num_tel'] . '<td>';
echo '<td>' . $donnees['num_gsm'] . '<td>';
echo '<tr>';

}
if ($_SESSION['niveau'] == '5';)
{
echo '<tr>';
echo '<td>Edition<td>';
echo '<td>' . $donnees['id'] . '<td>';
echo '<td>' . $donnees['login'] . '<td>';
echo '<td>' . $donnees['nom'] . '<td>';
echo '<td>' . $donnees['prenom'] . '<td>';
echo '<td>' . $donnees['genre'] . '<td>';
echo '<td>' . $donnees['date_nai'] . '<td>';
echo '<td>' . $donnees['pass'] . '<td>';
echo '<td>' . $donnees['adr_mail'] . '<td>';
echo '<td>' . $donnees['num_tel'] . '<td>';
echo '<td>' . $donnees['num_gsm'] . '<td>';
echo '<td>' . $donnees['date_entree'] . '<td>';
echo '<tr>';
}
}
break;
----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
Joufflu
Sage
Membre # 14503

 Avatar du membre
Lieu : IDF

Messages :
1333 (0.25 par jour)


Score :

Message du 16-07-2006 @ 13:01   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

C'est la requete qui ne va pas :
WHERE actif="y" AND nom=????????? ORDER BY nom
il faut :
WHERE actif="y" AND nom REGEXP "^$tri.*$" ORDER BY nom
ou meme :
WHERE actif="y" AND nom REGEXP "^$tri" ORDER BY nom ( il me semble )

Mais cette méthode entraine une faille ( l'utilisateur peut modifier la requete SQL )
il serait donc bon d'appliquer une coupure de la variable $tri pour ne garder que le premier caractère.
----------
ThinkPad W520 - HP NC8430 - HP TC1100 - IBM ThinkPad X23
-> Gestion de cave a vin en ligne (gratuit) : www.VotreCave.info
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.34 par jour)




Message du 16-07-2006 @ 15:53   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

les liens ne se sont pas affiché :

a href="membre.php?tri=?????????">A
a href='membre.php?tri=???">B




si je mets la requette :

WHERE actif="y" AND nom REGEXP "^$tri" ORDER BY nom

je dois faire =

$tri= $_GET['tri'];

et pour chaque lien :

membre.php?tri="^[aA].*"">A
membre.php?tir="^[bB].*"">B
....

???

j'ai l'impression que je m'enbrouille dans les " et '.

----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
casimir
Sage
Membre # 339

 
Lieu : bruxelles

Messages :
1362 (0.2 par jour)


Score :

Message du 16-07-2006 @ 21:01   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

sinon sans regexp

select * from personnel where upper(nom) like 'A%'
- Haut de page -
soulmanto
Codeur du forum
Membre # 5373

 Avatar du membre
Lieu : Lille

Messages :
13839 (2.3 par jour)


Score :

Message du 17-07-2006 @ 0:11   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Pour les " et les ' : les délimiteurs de chaine de caractère MySQL sont les ' uniquement. Par contre, en PHP, préfère plutot la forme $_GET["ta_variable"]
----------
Desktop : Core i7 2600 | Gigabyte GA-Z68MA-D2H-B3 | 8 Go DDR3 PC10600 | SSD UltraPlus 128 Go / HDD 500 Go / 1 To | Sapphire R9 280 3 Go | CoolerMaster RC690 | Windows 7
Asus MemoPad 10

Stromille powered !!!
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.041 secondes