Chaine de caractère php

Résolu/Fermé
Signaler
Messages postés
25
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
12 mars 2008
-
 Kaly -
Bonjour,
Je suis en train de dévelloper un programme en php
mon probleme est que lorsque je fais une requette sql et qu'il me renvoi une chaine de caractère de plus de 255 caractère seulement les 255 premiers caractère son transféré vers php. je pense qu'il sagit des variable php qui ne peuvent pas dépasser 255 caractère.
Aidez moi svp a trouver comment faire pour augementer le nbr de caractère de ces variables.
Merci

8 réponses

Messages postés
25
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
12 mars 2008
7
J'ais réusis mais c'est une sacré bidouile
premièrement, si on utilise un type ntext dans la bdd, il faut configurer php.ini
- mssql.textsize :524288
- mssql.textlimit :524288
pour que le nombre de caractère soit supérieur. le problème, c'est que php a apperement du mal a exploiter ce type de donné
j'ai finalement modifier ma requete pour pouvoir utiliser des donées varchar:
SELECT CAST(["colone"] AS TEXT) as "colone" FROM "table"
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
854
Bonjour,

Ca me paraitrait bizarre que tu ne puisse pas avoir un résultat de plus de 255 caractères... ou alors c'est que tu as mal défini ton champs (le type du champ) dans la base de données.
Si tu as un champs susceptible de recevoir plus de 255 caractères, ne le met pas en VARCHAR mais enTEXT.

Qu'a tu fais au niveau de ta base de données pour ce (ou ces) champ(s) ?
Messages postés
25
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
12 mars 2008
7
Merci de m'avoir répondu

Au niveau de la base, j'ai mis un varchar (500) avec NULL possible
ce qui est bizzar, c'est que lorsque j'envois 500 caractères dans la bdd (via PHP), on les retrouves bien dans le champs. Le probleme intervient vraiement lorsque j'essais de recharger cette chaine de caractère pour l'afficher sur ma page HTML. C'est pour cela que je pense que les probleme vient d'une limitation du nombre de caractère au niveau des variables PHP.

Merci
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
854
Non ça ne peut pas être les variables PHP. Je fais des choses similaire sur un site pour lequel j'ai des descriptions comportant de nombreux caractères et ça fonctionne très bien.
Si dans ta base de données tu as bien tous les champs, peut-être que ça vient du composant dans lequel tu affiche ta chaine de caractère ?
Tu l'affiche dans quoi exactement ? Un simple textfield ? Sa longueur est peut être modifiée et donc limitée à 255 ?
Si tu met ça dans un textarea est ce que le text s'affiche correctement ? Ou alors dans une div tout simplement ?
Messages postés
25
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
12 mars 2008
7
OK

Je fais deux choses avec ce text:
-je l'affiche directement sur la page : echo $result['TEXT']; avec result le resulta de la requette
-et je le met dans un textarea <textarea name="consigne" rows="10" cols="50"><?php echo $result['TEXT']; ?></textarea>
Dans les deux cas je n'ais que 255 carractère. Qu'il y'ait ou pas de espace, il se passe la même chose.
D'après ta réponse, je me demande si SQL SERVEUR 2005 ne limite pas le nombre de caratères transféré.
Merci
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
854
Je n'ai jamais utilisé Serveur SQL 2005, mais un moyen simple de le vérifier serait d'afficher la taille des données récupérées suite à ta requête SQL :
 $result = @mysql_query("SELECT ...",$conn);
 while  ( $line = @mysql_fetch_assoc($result) ){
      echo "Nb caractères : ".sizeof($line["MonChamp"]);
 }

Messages postés
25
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
12 mars 2008
7
OK j'essaye de suite
désolé pour le retard mais je cherche aussi de mon coté.
Messages postés
25
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
12 mars 2008
7
Oui je l'ai fait, dans sql ca marche et j'ai bien les 500 char.
Par contre j'ai trouver sur le net une piste. il partait qu'il y'a une config a faire dans php.ini
si je trouve, je t'informe
Merci bcp grossben. Je viens de rencontrer le même prob et tu m'a bien aidé. ;)
Messages postés
25
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
12 mars 2008
7
il y'a un probleme,
je travail en SQL et non pas MYSQL
et aparement mssql_fetch_assoc (qui exist aussi) me renvoi l'erreur "supplied argument is not a valid ms sql-result resource in..."
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
854
Ca peut aussi venir de ta requête qui est mauvaise, et du coup $result étant mauvais, l'argument passé à mssql_fetch_assoc fait planter ton instruction.
Est ce que tu as testé ta requete SQL directement sur la base (à la main, sans script, via une interface ou un ligne de commande) pour t'assurer qu'elle soit bonne ?