[SQL] Ne pas prendre les alphanumériques ?
Fermé
Kopros
Messages postés
595
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
3 février 2020
-
8 août 2011 à 20:36
vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 - 9 août 2011 à 13:07
vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 - 9 août 2011 à 13:07
A voir également:
- [SQL] Ne pas prendre les alphanumériques ?
- Prendre photo avec webcam - Guide
- Prendre une photo avec son mac - Guide
- Prendre un instantané pdf - Guide
- Book4 pro 360 prendre - Accueil - Ordinateurs
- Prendre une photo avec mon portable - Guide
3 réponses
schancel
Messages postés
296
Date d'inscription
dimanche 20 mars 2011
Statut
Membre
Dernière intervention
7 décembre 2018
49
8 août 2011 à 20:49
8 août 2011 à 20:49
tu recupere le nombre de caractere puis tu incremente avec la boucle for
je ne peut t'en dire plus
je ne peut t'en dire plus
Utilisateur anonyme
Modifié par ammmmmine le 8/08/2011 à 20:59
Modifié par ammmmmine le 8/08/2011 à 20:59
salut,
voici un exemple :
$query = mysql_query(SELECT xxx FROM mytable );
$content = mysql_fetch_array($query);
$content = preg_replace("#[^0-9]#","", $content);
voici un exemple :
$query = mysql_query(SELECT xxx FROM mytable );
$content = mysql_fetch_array($query);
$content = preg_replace("#[^0-9]#","", $content);
Kopros
Messages postés
595
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
3 février 2020
89
Modifié par Kopros le 8/08/2011 à 21:47
Modifié par Kopros le 8/08/2011 à 21:47
Je pense que je vais faire comme ça en attendant de trouver un code plus propre. Merci !
EDIT : En fait je ne peux pas faire ça, étant donné que je fais un déjà un mysql_fetch_array après, et que je ne peux pas l'enlever. Ou alors faudrait que je défasse le premier mais là je sais pas si c'est possible et ça deviendrait vraiment trop sale comme code.
Je cherche encore :/
EDIT : En fait je ne peux pas faire ça, étant donné que je fais un déjà un mysql_fetch_array après, et que je ne peux pas l'enlever. Ou alors faudrait que je défasse le premier mais là je sais pas si c'est possible et ça deviendrait vraiment trop sale comme code.
Je cherche encore :/
Groarh
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
185
Modifié par Groarh le 9/08/2011 à 13:05
Modifié par Groarh le 9/08/2011 à 13:05
Salut,
j'ai fait plusieurs recherches mais je crois qu'il n'est pas possible de faire des substitutions à l'aide d'une expression régulière en MySQL. Il faut donc que tu passes par PHP, et donc la solution proposée par ammmmmine est la meilleure.
Juste deux petites remarques :
- les doubles quotes demandent un peu plus de travail à PHP car il doit interpréter les variables et les caractères spéciaux comme \t ou \n. Un exemple simple :
Il vaut mieux utiliser les simples quotes chaque fois que c'est possible.
- Avec PCRE on peut utiliser la classe \D pour sélectionner tout ce qui n'est pas numérique (le contraire de \d). Je rajoute un + pour traiter en une fois les groupes de plusieurs caractères, c'est plus efficace.
Au final :
j'ai fait plusieurs recherches mais je crois qu'il n'est pas possible de faire des substitutions à l'aide d'une expression régulière en MySQL. Il faut donc que tu passes par PHP, et donc la solution proposée par ammmmmine est la meilleure.
Juste deux petites remarques :
- les doubles quotes demandent un peu plus de travail à PHP car il doit interpréter les variables et les caractères spéciaux comme \t ou \n. Un exemple simple :
<pre><?php $s = 'abc'; echo '$s \n X'; // simple quotes echo '<hr>'; echo "$s \n X"; // double quotes ?></pre>
Il vaut mieux utiliser les simples quotes chaque fois que c'est possible.
- Avec PCRE on peut utiliser la classe \D pour sélectionner tout ce qui n'est pas numérique (le contraire de \d). Je rajoute un + pour traiter en une fois les groupes de plusieurs caractères, c'est plus efficace.
Au final :
$content = preg_replace('#\D+#','', $content);
vordano
Messages postés
1682
Date d'inscription
mardi 12 juillet 2011
Statut
Membre
Dernière intervention
20 juillet 2012
316
9 août 2011 à 13:07
9 août 2011 à 13:07
bonjour,
le sql étant un language d'interrogation des bdd, normalement on ne peux pas traiter le résultat avant de le renvoyer
le sql étant un language d'interrogation des bdd, normalement on ne peux pas traiter le résultat avant de le renvoyer
8 août 2011 à 21:17