Mysql: select(afficher) une partie d'1 champ
Fermé
birdsfly
Messages postés
240
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
11 octobre 2013
-
12 avril 2010 à 23:22
birdsfly Messages postés 240 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 11 octobre 2013 - 13 avril 2010 à 22:42
birdsfly Messages postés 240 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 11 octobre 2013 - 13 avril 2010 à 22:42
A voir également:
- Mysql: select(afficher) une partie d'1 champ
- Mysql community server - Télécharger - Bases de données
- Mysql error 1 ✓ - Forum Réseaux sociaux
- Phpmyadmin a tenté de se connecter au serveur mysql, et le serveur a rejeté la connexion. merci de vérifier les valeurs de host, username et password dans la configuration et de s'assurer qu'elles correspondent aux informations fournies par l'administrateur du serveur mysql. ✓ - Forum PHP
- Mysql fatal error ✓ - Forum MySQL
- Le serveur mysql est inaccessible. vérifiez votre configuration. ✓ - Forum MySQL
7 réponses
birdsfly
Messages postés
240
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
11 octobre 2013
15
Modifié par birdsfly le 13/04/2010 à 22:46
Modifié par birdsfly le 13/04/2010 à 22:46
Merci à tous,
avec SELECT * , substr(texte, 1, 100) as machin FROM Nouvelle ... ça a marché, elle m'affiche le contenu du champ "texte" du 1er au 100ème caractère, et avant de me proposer cette solution j'ai essayé de récupérer le champ complet avec :
et j'ai appliqué "substr" à l'affichage:
Je pense que vous avez remarqué que j'ai mis 0 à la place de 1, car avec:
il affiche le contenu à partie du 2ème caractère, chose que je ne comprend pas; mais je pense que c'est comme ça, à l'intérieur d'une requête on met 1 et à l'extérieur on met 0 (si on veut afficher à partir du 1er caractère) ;)
Et merci encore ^^
"La haine est la voix de celui qui a laissé la souffrance planter son drapeau aisément sur son encéphale"
avec SELECT * , substr(texte, 1, 100) as machin FROM Nouvelle ... ça a marché, elle m'affiche le contenu du champ "texte" du 1er au 100ème caractère, et avant de me proposer cette solution j'ai essayé de récupérer le champ complet avec :
SELECT * FROM 'nouvelle'
et j'ai appliqué "substr" à l'affichage:
echo substr($news->texte,0, 100);
Je pense que vous avez remarqué que j'ai mis 0 à la place de 1, car avec:
echo substr($news->texte,1, 100);
il affiche le contenu à partie du 2ème caractère, chose que je ne comprend pas; mais je pense que c'est comme ça, à l'intérieur d'une requête on met 1 et à l'extérieur on met 0 (si on veut afficher à partir du 1er caractère) ;)
Et merci encore ^^
"La haine est la voix de celui qui a laissé la souffrance planter son drapeau aisément sur son encéphale"
Salut,
Je suis pas très fort en MySQL mais essaye donc avec
$sql = "
SELECT id -- et autres colonnes dont tu aurais besoin
, substr(champ, 1, 100) FROM 'table' LIMIT 0,5
";
Je suis pas très fort en MySQL mais essaye donc avec
$sql = "
SELECT id -- et autres colonnes dont tu aurais besoin
, substr(champ, 1, 100) FROM 'table' LIMIT 0,5
";
birdsfly
Messages postés
240
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
11 octobre 2013
15
12 avril 2010 à 23:50
12 avril 2010 à 23:50
J'ai essayé en ajoutant substr(texte, 1, 100) à la requête, mais au lien d'afficher une partie elle n'affiche rien, la page est vide et même les autres champs que texte ne sont pas affichés :(
si tu tapes cette requête dans ton interpreteur MySQL, que se passe-t-il ? car à te lire, on ne sait pas si c'est MySQL ou php qui n'écrit rien
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
birdsfly
Messages postés
240
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
11 octobre 2013
15
13 avril 2010 à 00:24
13 avril 2010 à 00:24
au fait, ça n'affichais rien par ce que j'ai oublié le ,
alors dans l'interpreteur MySQL, lorsque j'ai tapé:
SELECT * , substr(texte, 1, 100) FROM 'nouvelle' WHERE statut=\'valid\' ORDER BY id desc
Cela a affiché les enregistrements demandés mais avec le champ texte complet.
J'ai essayé la même requête avec ma page php, et cela affiche le champ complet
alors dans l'interpreteur MySQL, lorsque j'ai tapé:
SELECT * , substr(texte, 1, 100) FROM 'nouvelle' WHERE statut=\'valid\' ORDER BY id desc
Cela a affiché les enregistrements demandés mais avec le champ texte complet.
J'ai essayé la même requête avec ma page php, et cela affiche le champ complet
désolé de t'avoir mal aiguillé :-(
dans le manuel de MySQL(là), on lit :
=> refais donc ton test avec SUBSTRING au lieu de SUBSTR
dans le manuel de MySQL(là), on lit :
SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len) Retourne une chaîne de len caractères de long de la chaîne str, à partir de la position pos. La syntaxe ANSI SQL92 utilise une variante de la fonction FROM : mysql> SELECT SUBSTRING('Quadratically',5); -> 'ratically' mysql> SELECT SUBSTRING('foobarbar' FROM 4); -> 'barbar' mysql> SELECT SUBSTRING('Quadratically',5,6); -> 'ratica'
=> refais donc ton test avec SUBSTRING au lieu de SUBSTR
Bonjour
Bien que ça ne se voie pas dans le manuel, SUBSTR a l'air d'être équivalent à SUBSTRING. Je viens de faire l'essai.
Le problème, avec SELECT * , substr(texte, 1, 100) c'est que tu as essayé de récupérer le champ 'texte' (complet) rendu par *, alors qu'il te fallait le résultat du substr. utilise un alias pour ça :
SELECT * , substr(texte, 1, 100) as machin FROM Nouvelle ...
et récupère le champ 'machin'
Bien que ça ne se voie pas dans le manuel, SUBSTR a l'air d'être équivalent à SUBSTRING. Je viens de faire l'essai.
Le problème, avec SELECT * , substr(texte, 1, 100) c'est que tu as essayé de récupérer le champ 'texte' (complet) rendu par *, alors qu'il te fallait le résultat du substr. utilise un alias pour ça :
SELECT * , substr(texte, 1, 100) as machin FROM Nouvelle ...
et récupère le champ 'machin'
Ça m'étonnait que ça ne soit pas dans la doc. Ça y est bien, mais dans l'original, pas dans la traduction
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_substr
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_substr