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

wolflinger
Messages postés
8
Date d'inscription
dimanche 20 février 2005
Dernière intervention
7 juin 2006
- 6 juin 2006 à 15:43 - Dernière réponse : wolflinger
Messages postés
8
Date d'inscription
dimanche 20 février 2005
Dernière intervention
7 juin 2006
- 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 

Votre réponse

7 réponses

Meilleure réponse
wolflinger
Messages postés
8
Date d'inscription
dimanche 20 février 2005
Dernière intervention
7 juin 2006
- 7 juin 2006 à 11:23
3
Merci
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!

Merci wolflinger 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de wolflinger
cs_skweeky
Messages postés
261
Date d'inscription
mercredi 3 mai 2006
Dernière intervention
11 janvier 2010
- 6 juin 2006 à 16:02
0
Merci
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
Messages postés
114
Date d'inscription
lundi 10 mai 2004
Dernière intervention
17 octobre 2006
- 6 juin 2006 à 22:33
0
Merci
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
Messages postés
8
Date d'inscription
dimanche 20 février 2005
Dernière intervention
7 juin 2006
- 7 juin 2006 à 08:43
0
Merci
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
Messages postés
261
Date d'inscription
mercredi 3 mai 2006
Dernière intervention
11 janvier 2010
- 7 juin 2006 à 09:31
0
Merci
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
Messages postés
8
Date d'inscription
dimanche 20 février 2005
Dernière intervention
7 juin 2006
- 7 juin 2006 à 09:58
0
Merci
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
Messages postés
8
Date d'inscription
dimanche 20 février 2005
Dernière intervention
7 juin 2006
- 7 juin 2006 à 10:00
0
Merci
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.