Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1017 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Afficher un champ BLOB

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Afficher un champ BLOB

n°362150
tafkap
Posté le 15-04-2003 à 16:40:15  profilanswer
 

Salut à tous,
 
dans une table MySQL, j'ai un champ de type BLOB qui contient du texte, j'aimerais savoir comment afficher/extraire/rechercher sur ce type de champ.
 
D'avance, merci  :jap:

mood
Publicité
Posté le 15-04-2003 à 16:40:15  profilanswer
 

n°362165
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 15-04-2003 à 16:45:44  profilanswer
 

tafkap a écrit :

Salut à tous,
 
dans une table MySQL, j'ai un champ de type BLOB qui contient du texte, j'aimerais savoir comment afficher/extraire/rechercher sur ce type de champ.


 :heink: T'as pas l'impression qu'il y a comme un problème, là ?
BLOB = Binary Large OBject. C'est fait pour stocker des données binaires, pas du texte. Pour stocker du texte, t'as le type TEXT qui est très bien.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°362264
tafkap
Posté le 15-04-2003 à 17:28:07  profilanswer
 

Du texte c'est des données binaires, tout est binaire dans un ordinateur, j'ai pigé le texte est compressé dans ce champs.

n°362281
MagicBuzz
Posté le 15-04-2003 à 17:35:12  profilanswer
 

Je sais pas si MySQL est différent de Oracle ou MSSQL Server, mais à priori, je vois pas pourquoi ils auraient changé.
 
Le type "TEXT" est rigoureusement le même que le type "BLOB/IMAGE" au niveau stockage.
 
La seule différence réside dans le fait que les données qui y sont écrites sont automatiquement encodée suivant le charset choisi dans les paramètres de la base.
 
Donc pour un TEXT, il n'y a aucune modification à faire lors de la lecture, qu'on soit en ASCII sur 7 bits ou en Unicode sur 16 bits.
 
Pour lire/écrire dans un BLOB, il faudra faire un encodage manuel des données binaires, et un décodage manuel à la relecture. Mais niveau fonctionnalités, c'est la même chose.
 
D'ailleurs, sous Oracle 8.0.5, il n'y a pas de type LONGTEXT, mais uniquement BLOB.

n°362283
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 15-04-2003 à 17:35:33  profilanswer
 

tafkap a écrit :

Du texte c'est des données binaires, tout est binaire dans un ordinateur, j'ai pigé le texte est compressé dans ce champs.


Le super raisonnement :sarcastic:  
Pour les données textes vraiment énormes, y a l'équivalent du BLOB qui est le CLOB ; je sais pas si ça existe sous MySQL et à la limite on s'en fout dans le cas présent. C'est juste pour que tu voies que la plupart des langages de prog font la différence entre données binaires et données texte, c'est tout.
Un BLOB, tu peux pas l'afficher comme ça ni faire de recherche dessus (enfin là, je suis pas super sûr de mon coup). Si ton texte est stocké compressé, pour pouvoir effectuer des recherches dessus il faut que :
1) tu récupères le BLOB en tant que données binaires ;
2) tu décompresses ces données
3) tu fais les recherches/l'affichage voulus.
 
Je crois pas qu'il y ait de méthode pour faire directement ce que tu veux avec MySQL, il va certainement falloir que tu passes par un bon paquet de manips à côté :/


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°362943
ojbis
Posté le 16-04-2003 à 11:10:01  profilanswer
 

perso, j'utilise des types BLOB pour les champs des gros textes sur mes formulaires et je n'ai aucune difference de traitement par rapport au type texte. Je recupere le champs dans ma base mysql, je l'affiche le modif et le reenregistre exactement comme un texte classique (+ qq fonction de htmlentities pour afficher ou interpreter les balises HTML contenues ds le texte)

n°362956
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 16-04-2003 à 11:15:32  profilanswer
 

ojbis a écrit :

perso, j'utilise des types BLOB pour les champs des gros textes sur mes formulaires et je n'ai aucune difference de traitement par rapport au type texte. Je recupere le champs dans ma base mysql, je l'affiche le modif et le reenregistre exactement comme un texte classique (+ qq fonction de htmlentities pour afficher ou interpreter les balises HTML contenues ds le texte)


Oui donc apparemment pour MySQL y a pas de différence entre BLOB et CLOB, quoi. Je sais pas si c'est un bien ou un mal, je maîtrise pas suffisamment le sujet pour disserter là-dessus.
Maintenant, comme les données de tafhap semblent être compressées, il aura effectivement du binaire et il ne pourra pas faire de recherche ou d'affichage simples dessus [:spamafote]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°363888
tafkap
Posté le 16-04-2003 à 18:44:14  profilanswer
 

ojbis a écrit :

perso, j'utilise des types BLOB pour les champs des gros textes sur mes formulaires et je n'ai aucune difference de traitement par rapport au type texte. Je recupere le champs dans ma base mysql, je l'affiche le modif et le reenregistre exactement comme un texte classique (+ qq fonction de htmlentities pour afficher ou interpreter les balises HTML contenues ds le texte)


Salut, tu fais comment pour l'afficher ? si tu édites le contenu du champs tu as quoi ? c'est bien des données binaires que tu vois, enfin des chiffres... c'est peut-être les codes ASCII qui sont enregistrés non ?

n°363927
MagicBuzz
Posté le 16-04-2003 à 20:06:55  profilanswer
 

tafkap a écrit :


Salut, tu fais comment pour l'afficher ? si tu édites le contenu du champs tu as quoi ? c'est bien des données binaires que tu vois, enfin des chiffres... c'est peut-être les codes ASCII qui sont enregistrés non ?


Bah, tu lis le blob, puis tu le parse octet par octet en faisant un chr(xx) dessus.
Pour écrire, la même chose, mais avec un asc('x';) dans l'autre sens.

n°368514
omega2
Posté le 22-04-2003 à 15:48:51  profilanswer
 

MagicBuzz a écrit :


Bah, tu lis le blob, puis tu le parse octet par octet en faisant un chr(xx) dessus.
Pour écrire, la même chose, mais avec un asc('x';) dans l'autre sens.

Ou comment faire compliqué quand on peut faire simple.
Avec un champ texte, t'aurais fait un simple addslashes() à l'écriture et la lecture serait directe.
Au vu de ta méthode un BLOB n'est pas égale à un TEXT. ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Afficher un champ BLOB

 

Sujets relatifs
Afficher correctement une fenêtre sous Access???[MySQL] Copier le contenu d'un champ dans un autre.
Mettre une image dans un blob (MySQL) pour ensuite l'afficher ??Comment faire pour afficher/masquer une image en cliquant sur un lien?
[HTML] Comment n'afficher que les bordures intérieures ?[OpenGL][wxWindows] Afficher de l'open GL dans une fenêtre wxWindows
[JAVA] afficher une liste de noms de classes[PHP] Afficher dans boucle les caract de 3 objets de même type ...
[HTML]comment fait on pr de télécharger une image sans l'afficher 
Plus de sujets relatifs à : Afficher un champ BLOB


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR