Comment exploiter les données d'un champs de type BLOB ?

Eléphanteau du PHP | 46 Messages

04 nov. 2005, 17:48

Je souhaiterais pouvoir recréer un petit espace de saisie de texte (comme celui dans lequel je suis en train d'écrire) avec stockage dans une base de donnée et, bien sûr, régurgitation des données par la suite.

Je ne trouve nul part de "vrai" tuto sur ce genre de chose et les codes de forum tel que PHPbb sont inaccessibles à mon niveau.

Auriez vous un tutoriel ou un code "simple" à m'indiquer ?

Merci d'avance


Le MoorF

Mammouth du PHP | 983 Messages

04 nov. 2005, 17:55

Si tu veux juste stocker du texte, tu n'as pas besoin d'utiliser un champ BLOB. Un champ TEXT suffit.

Un champ BLOB est utilisé pour stocker des données en binaire (une image par exemple).

Eléphanteau du PHP | 46 Messages

07 nov. 2005, 10:39

En fait le problème se situe sur la longueur du champs texte, et sur la capacité à insérer des images dans la cellule de formulaire contenant ce texte.

Je souhaiterais savoir comment faire un petit formulaire de saisie à la façon de ceux des forums phpbb, mais après quelques recherches infructueuses ce week end dans les sources du forum, je suis au bout.

Auriez vous une solution pour l'ajout de champs texte de plus de 255 caractères dans une bdd et une autre pour me permettre de comprendre comment fonctionne le formulaire de saisie de phpbb ?

Merci

[/url]

Mammouth du PHP | 983 Messages

07 nov. 2005, 12:12

Attention, tu confonds VARCHAR avec TEXT. Un champ VARCHAR ne peut contenir que 255 caractères. Un champ de type TEXT 2^16. Donc, tu peux utiliser un champ TEXT.
La doc MySQL: http://dev.mysql.com/doc/refman/5.0/fr/ ... ments.html

ViPHP
pjl
ViPHP | 2119 Messages

07 nov. 2005, 12:29

si TEXTest trop petit, tu as le LONGTEXT (longueur maximale de 4294967295 ).
Ca devrait suffire.

Eléphant du PHP | 58 Messages

07 nov. 2005, 14:25

moorf, je te conseille le blob qui est particulièrement bien (surtout si un jour tu décides que les utilisateurs pourront écrire plus).

Quant à ton problème des formulaires phpbb soit plus préçis s'il te plait :).

les smileys sont gérés avec des liens.

Quand tu cliques dessus il te met le texte à la suite.

Pour importer des images soit tu peux donner à tes utilisateurs un système d'upload grace au :

<input type="file" name="nom">

pour les bouttons se sont simplement des :

<input type="button" et un petit javascript qui te dit : onclick va mettre ton raccourci HTML au curseur.

le petit champ de quoi tu écris ton long message c'est un <textarea>

quant au petit champ titre en haut c'est un :

<input type="text">

Bon j'avoue concrètement vite fait, je pense que je ne serais pas refaire un phpbb :lol: mais en prenant mon temps pourquoi pas :).

http://aliasdmc.free.fr/coursjavas/cour ... ipt97.html

tiens ils t'en apprendront surment + que moi et ça devrait réponde à tes question :wink:
...come from the pain...

:) I've found my home in the game :)

^^ let's frag ^^

ViPHP
pjl
ViPHP | 2119 Messages

07 nov. 2005, 14:59

moorf, je te conseille le blob qui est particulièrement bien (surtout si un jour tu décides que les utilisateurs pourront écrire plus).
Désolé mais je ne vois pas le rapport entre un champ de type BLOB et et le fait que les utilisateurs peuvent écrire plus.

Un extrait de la doc :
Une valeur de type BLOB est un objet binaire de grande taille, qui peut contenir une quantité variable de données. Les quatre types BLOB (TINYBLOB, BLOB, MEDIUMBLOB, et LONGBLOB) ne différent que par la taille maximale de données qu'ils peuvent stocker. See Section 11.5, « Capacités des colonnes ».

Les quatre types TEXT (TINYTEXT, TEXT, MEDIUMTEXT, et LONGTEXT correspondent aux types BLOB équivalents, et ont les mêmes contraintes de stockage. Les seules différences entre les colonnes de type BLOB et celles de type TEXT se situent aux niveau des tris et comparaisons : Les tris, faits sur les BLOB, contrairement à ceux faits sur les TEXT, tiennent compte de la casse. En d'autres termes, une valeur TEXT est une valeur BLOB insensible à la casse.

Eléphanteau du PHP | 46 Messages

07 nov. 2005, 15:24

Déjà merci à Rami et Pjl pour leur conseil : je viens également de voir cela en continuant mon dépiotage des sources de PHPbb... mais ca me confirme mon choix.

Sadjiro>
En fait je souhaitais surtout pouvoir faire un champs mixte.
Je cherche à changer une base de document Notes en forum PHPbb (plus ergonomique), mais la base de document en question contient du texte et des images de facon entrelacée (blabla / capture d'écran / blabla / capture d'écran / blabla... etc), donc l'upload d'image au coup par coup ne fonctionnera pas.

Merci quand même à tous.



Seb 'le moorf'

Eléphant du PHP | 58 Messages

07 nov. 2005, 15:26

lol bon ok j'avoue j'ai jamais utilisé TEXT (damned je me suis fait berned :lol: ).

Mais bon utilisant le BLOB pour ma tribune et pour pas mal de logiciel fait maintenant, voilà pourquoi je le conseille vivement.

Après le TEXT est il mieux que le BLOB je sais pas mais bon je conseille ce dont je suis le + sur.

Voilà pourquoi je lui ai conseillé le BLOB :wink:

(non mais on va pas me berned comme ça non plus :lol: )
...come from the pain...

:) I've found my home in the game :)

^^ let's frag ^^

Mammouth du PHP | 983 Messages

07 nov. 2005, 15:34

Les champs BLOB et TEXT n'ont pas le même but!
BLOB: données binaires
TEXT: données ASCII

Eléphant du PHP | 58 Messages

07 nov. 2005, 15:43

lol je vois toujours pas concrètement à quoi ca ressemble...

mais bon...

pas grave désolé de ne pas avoir pu t'aider...
...come from the pain...

:) I've found my home in the game :)

^^ let's frag ^^

ViPHP
pjl
ViPHP | 2119 Messages

07 nov. 2005, 16:13

En fait je souhaitais surtout pouvoir faire un champs mixte.
Je cherche à changer une base de document Notes en forum PHPbb (plus ergonomique), mais la base de document en question contient du texte et des images de facon entrelacée (blabla / capture d'écran / blabla / capture d'écran / blabla... etc), donc l'upload d'image au coup par coup ne fonctionnera pas.
Qu'entends tu par du texte et des images entrelacées ?
As tu un exemple concret ?
lol je vois toujours pas concrètement à quoi ca ressemble...
Un test tout bête via phpMyAdmin. Essaye d'éditer un champ au format BLOB puis un champ au format texte.

Eléphant du PHP | 58 Messages

07 nov. 2005, 16:19

lol dans le blob on ne peut rien insérer me semble t'il ^^ (si je me souviens bien ^^) on ne peut que l'ajouter par une insertion via des pages php :).

le TEXT pas essayé mais je pense que l'on peut c'est ça ? :)
...come from the pain...

:) I've found my home in the game :)

^^ let's frag ^^

ViPHP
pjl
ViPHP | 2119 Messages

07 nov. 2005, 16:31

on peut insérer et modifier les données comme l'on veut.

Eléphanteau du PHP | 46 Messages

08 nov. 2005, 10:17

Qu'entends tu par du texte et des images entrelacées ?
As tu un exemple concret ?
J'ai plusieurs choses en cours, et le champs TEXT va VRAIMENT BEAUCOUP m'aider !

Maintenant pour un autre petit projet, je souhaite faire une faq, mais avec la possibilité de faire des insertions d'images, captures d'écrans et autre. Par exemple, mettre une description pour arrivé à une boite de dialogue, puis faire l'insertion de cette boite.

Pour l'instant, je pense à un formulaire d'édition pas-à-pas ; c'est à dire que la faq commence par du texte, puis vous validez le texte et vous choisissez 1. de continuer la saisie par une boite de texte 2. par une image 3. de terminer la faq
Maintenant le mieux serait une saisie de tout ca dans la meme boite !

>sadjiro>
Mais bon utilisant le BLOB pour ma tribune et pour pas mal de logiciel fait maintenant, voilà pourquoi je le conseille vivement.
Aurais tu des exemples concrets de manipulations de blob ? parce que meme en suivant les exemples de nexen à la lettre, y'a des pb de fonctionnement...


Merci en tout cas pour votre mobilisation !


seb