Chaine de caractère php

Résolu/Fermé
grossben Messages postés 25 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 12 mars 2008 - 7 mars 2008 à 10:07
 Kaly - 23 juil. 2009 à 17:04
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
A voir également:

8 réponses

grossben Messages postés 25 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 12 mars 2008 7
7 mars 2008 à 12:21
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
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
7 mars 2008 à 10:13
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) ?
1
grossben Messages postés 25 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 12 mars 2008 7
7 mars 2008 à 10:38
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
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
7 mars 2008 à 10:43
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 ?
1
grossben Messages postés 25 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 12 mars 2008 7
7 mars 2008 à 10:53
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
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
7 mars 2008 à 10:58
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"]);
 }

1
grossben Messages postés 25 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 12 mars 2008 7
7 mars 2008 à 11:12
OK j'essaye de suite
désolé pour le retard mais je cherche aussi de mon coté.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
grossben Messages postés 25 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 12 mars 2008 7
7 mars 2008 à 11:56
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
1
Merci bcp grossben. Je viens de rencontrer le même prob et tu m'a bien aidé. ;)
1
grossben Messages postés 25 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 12 mars 2008 7
7 mars 2008 à 11:23
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..."
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
7 mars 2008 à 11:36
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 ?
0