Requête SELECT: résultats tronqués... [Résolu]

wolflinger 8 Messages postés dimanche 20 février 2005Date d'inscription 7 juin 2006 Dernière intervention - 6 juin 2006 à 15:43 - Dernière réponse : wolflinger 8 Messages postés dimanche 20 février 2005Date d'inscription 7 juin 2006 Dernière intervention
- 7 juin 2006 à 11:23
Bonjour,

J'ai un soucis d'affiche avec des formulaires html/php.
Mais je pense que le problème provient de la requete SQL.
Je m'explique :

Via un formulaire et une requete INSERT INTO, j'insère dans une base de données SQL Server des informations provenant d'un <textarea>.
Ces informations sont longues ( plusieurs milliers de caractères ).
Si je vérifie via Enterprise Manager, les informations sont complètes dans la base de données.
MAIS lorsque je récupère ces informations pour les afficher soit directement, soit comme valeur par défaut dans un <textarea>, elles sont tronquées vers le 260ème caractère.

Est-ce normal? Et surtout, comment faire en sorte que tout soit affiché?

Je pense que le problème provient de la requête car la troncature s'effectue à ce moment. Voici le code php contenant la requête et l'affichage:
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :

$id_resultat = mssql_query("SELECT * FROM Stage WHERE sta.Num_Sta=".$_GET['id'], $id_connexion);
$stag = mssql_fetch_array($id_resultat);
echo 'Resume français : '.$stag["ResumeFr_Sta"].'';

Merci!
<!-- END TEMPLATE: bbcode_code -->

<!-- / message -->
Afficher la suite 

7 réponses

Répondre au sujet
wolflinger 8 Messages postés dimanche 20 février 2005Date d'inscription 7 juin 2006 Dernière intervention - 7 juin 2006 à 11:23
+3
Utile
Ca y est!!!! Ne cherchez plus!!! (je pense pas que quelqu'un ici se soit autant angoissé que moi là dessus mais bon...)

En fait, c'éatit tout con, j'ai changé le type de donné varchar par text et maintenant ca passe.

Pu**in depuis hier 8h que je me tue là dessus!!!

Et c'est 45 min avant de rendre le projet au boss que je trouve la soluce

Et merci Christian de ton aide!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de wolflinger
cs_skweeky 261 Messages postés mercredi 3 mai 2006Date d'inscription 11 janvier 2010 Dernière intervention - 6 juin 2006 à 16:02
0
Utile
Il y a un paramètre que le fournisseur d'accès SQL change en général, je ne sais pas si c'est le cas en PHP, c'est SET TEXTSIZE.

C'est le nombre maximal de caractère renvoyé pour un champ texte :

http://msdn2.microsoft.com/fr-fr/library/ms371737.aspx

Mais, il y peut être une explication PHP de la choses.

-----------------
Christian Robert
Winwise
Commenter la réponse de cs_skweeky
crilun 114 Messages postés lundi 10 mai 2004Date d'inscription 17 octobre 2006 Dernière intervention - 6 juin 2006 à 22:33
0
Utile
crilun

regarde aussi pour tes ' ca peut venir de la aussi si tu en as dans ton champ texte,

 au moment de l'insertion dans SQL Server il faut les doubler ''

au moment de la recuperation pour mettre dans une zone de texte tu
remplace ' par /' ca lui specifira que c'est pas le meme ' qu'il peut
rencontrer dans la partie mise en forme.
Commenter la réponse de crilun
wolflinger 8 Messages postés dimanche 20 février 2005Date d'inscription 7 juin 2006 Dernière intervention - 7 juin 2006 à 08:43
0
Utile
Bonjour et merci de vos réponses.

skweeky, je soupconne en effet une mauvaise configuration du serveur... mais comme je n'y ai pas accès, je travaille sur une bdd à distance, il est difficile pour moi de vérifier ces paramètres. j'ai contacté l'admin, j'attends sa réponse...

crilun, j'ai aussi pensé à ca mais non, les caractères spéciaux passent bien. la coupure se fait en plein milieu d'un mot (attention => attent).

de plus, j'ai testé pour différents textes et ca coupe toujours au 256ème (?) caractère.
Commenter la réponse de wolflinger
cs_skweeky 261 Messages postés mercredi 3 mai 2006Date d'inscription 11 janvier 2010 Dernière intervention - 7 juin 2006 à 09:31
0
Utile
Ajoute le SET TEXTSIZE à ta requête alors, tu peux modifier ce paramètre seul.
Par exemple :

SET TEXTSIZE 5000
GO

SELECT ...

On peut passer plusieurs clauses dans la chaine de requête sans pb.

-----------------
Christian Robert
Winwise
Commenter la réponse de cs_skweeky
wolflinger 8 Messages postés dimanche 20 février 2005Date d'inscription 7 juin 2006 Dernière intervention - 7 juin 2006 à 09:58
0
Utile
J'ai ajouter SET TEXTSIZE devant ma requête (avec le GO, ca donnait un message d'erreur).
Mais le problème persiste.


Je me demande si le problème ne viendrait pas d'ailleur:


soit le renvoie des données par SQL Server (mais le SET TEXTSIZE ne change rien...)
soit une des fonctions phph (mssql_query ou mssql_fetch_array)
???
Commenter la réponse de wolflinger
wolflinger 8 Messages postés dimanche 20 février 2005Date d'inscription 7 juin 2006 Dernière intervention - 7 juin 2006 à 10:00
0
Utile
J'ai bien rajouté SET TEXTSIZE 5000 et non juste SET TEXTSIZE.
Mon message était ambigü...
Commenter la réponse de wolflinger

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.