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

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

Auteur
Sujet : requette sql
Keanu



 






Message du 16-07-2006 @ 11:39


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


- Haut de page -
Joufflu



 






Message du 16-07-2006 @ 11:44

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]
- Haut de page -
Keanu



 






Message du 16-07-2006 @ 12:05

je vais mettre ça dans mon code!!!

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


merci bcp


- Haut de page -
soulmanto



 






Message du 16-07-2006 @ 12:27

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".


- Haut de page -
Keanu



 






Message du 16-07-2006 @ 12:42

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;
- Haut de page -
Joufflu



 






Message du 16-07-2006 @ 13:01

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.
- Haut de page -
Keanu



 






Message du 16-07-2006 @ 15:53

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 '.

- Haut de page -
casimir



 






Message du 16-07-2006 @ 21:01

sinon sans regexp

select * from personnel where upper(nom) like 'A%'
- Haut de page -
soulmanto



 






Message du 17-07-2006 @ 0:11

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"]
- Haut de page -

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.052 secondes