Probleme avec taille du texte dans une table

Probleme avec taille du texte dans une table - PHP - Programmation

Marsh Posté le 28-01-2006 à 12:39:14    

Bonsoir à tous.
 
J'ai un souci.
 
J'ai creer une table, et quand je rentre un texte à l'aide du formulaire, je n'est au final que les 3 premiers mots voire une phrase qui sont inserer dans la base et le reste non.
 
Voici la table; (le champs suivi et la ou je rentre le texte)
 
Code : PHP

Citation :

CREATE TABLE `vigilance` (
  `pseudo` tinytext collate latin1_german1_ci NOT NULL,
  `date` tinytext collate latin1_german1_ci NOT NULL,
  `heure` tinytext collate latin1_german1_ci NOT NULL,
  `suivi` text collate latin1_german1_ci NOT NULL,
  `nom` text collate latin1_german1_ci NOT NULL,
  `id` int(11) NOT NULL auto_increment,
  PRIMARY KEY  (`id`),
  FULLTEXT KEY `suivi` (`suivi`),
FULLTEXT KEY `suivi_2` (`suivi`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci AUTO_INCREMENT=496 ;


 
 
voici mon formulaire avec le fichier de validation.
 
le formulaire:
 
Code : PHP

Citation :

<?php
 
$host = "**********";
 
$user = "**********";
 
$pass = "**********";
 
$bdd = "**********";
 
mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données" ); // Le @ ordonne a php de ne pas afficher de message d'erreur
 
mysql_select_db("$bdd" ) or die("Impossible de se connecter à la base de données" );
$sql = 'SELECT id, date, heure, suivi FROM vigilance ORDER BY id desc LIMIT 0, 30';
$req = mysql_query($sql) or die ('Erreur MySQL <br>'.$sql.'<br>'.mysql_error());
 
 
print('<table width=100% border=0 cellspacing=2 cellpadding=2>
 
        </tr>  ');
       
       
        while  ( $resultat = mysql_fetch_array($req)) { ?>
       
<link href="../Mes documents/M&eacute;t&eacute;oNews-fr Version 3/CSS2.css" rel="stylesheet" type="text/css">
<blockquote>
        <p class="texte"><font face="Verdana"><font face="Verdana"><strong><font color="#FFFFFF"><font color="#FF0000"><br>
                <span class="texte"><font color="#FFFFFF"><font color="#FF0000"><strong><img src="http://www.meteonews-fr.com/design/images/fleche.gif" align="absmiddle"></strong></font></font></span>
                Point sur la situation le <?php echo $resultat[date]; ?> <font face="Verdana"><font face="Verdana"><strong><font color="#FF0000">&agrave;
                <?php echo $resultat[heure]; ?></font></strong></font></font> :</font></font></strong></font></font><br>
                <font face="Verdana"><font face="Verdana"><font color="#FFFFFF"><font color="#000000" size="3"><span class="texte"><?php echo $resultat[suivi]; ?></span></font></font></font></font></p>
        </blockquote>
<p><span class="texte"><font face="Verdana"><font face="Verdana"><font color="#FFFFFF"><font color="#000000" size="3"><br />
        </font></font></font></font>
        <?php
}
     
mysql_close();


 
 
 
 
et la page de validation:
Code : PHP
 

Citation :

<?php
 
$host = "********";
 
$user = "********";
 
$pass = "********";
 
$bdd = "********";
 
mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données" ); // Le @ ordonne a php de ne pas afficher de message d'erreur
 
mysql_select_db("$bdd" ) or die("Impossible de se connecter à la base de données" );
 
$suivi = nl2br($suivi);
$query = "INSERT INTO vigilance SET nom='$nom', pseudo='$pseudo', date='$date', heure='$heure',  suivi='$suivi'";
 
$result = mysql_query($query);
 
mysql_close();
 
?>


 
 
J'espère que vous pourrez m'aider, car je galère la.


Message édité par Damien09 le 28-01-2006 à 12:40:37

---------------
Mon site Météo : www.MeteoNews-fr.com
Reply

Marsh Posté le 28-01-2006 à 12:39:14   

Reply

Marsh Posté le 28-01-2006 à 14:03:25    

Extrait de la documentation de mysql :

Citation :

TINYTEXT
    Une colonne TINYBLOB ou TINYTEXT peut contenir au maximum 255 (2^8 -{} 1) caractères.

De plus, mysql considére que la chaine s'arrête au premier ' rencontré qui n'est pas directement précédé d'un nombre impair de \ et le reste sera considéré comme du sql normal.
Bonjour les risques de SQL injection si tu ne protéges pas les éléments de ta requette.

Reply

Marsh Posté le 29-01-2006 à 20:01:29    

comme l'a dit omega2, tu ne donnes pas les bons types à tes variables. Pourquoi le nom serait-il un text ? Pourquoi la date ne serait pas de type date ?

Reply

Marsh Posté le 05-02-2006 à 17:20:42    

Merci pour vos réponses.
 
Mais il y a une chose que je ne comprend pas, ce problème m'est arrivé au moment au j'ai tout transféré sur mon autre hébergeur. Alors qu'Auparavant tout fonctionné normalement.  
Alors aujourd'hui j'ai voulu faire une test sur le serveur de free, et chez eux aussi tout fonctionne correctement. Il n'y a que chez infomaniak que ce problème apparait.
 
Faut t-il que je mette TINYBLOB ou TINYTEXT pour que cela soit résolu ?
 
Merci d'avance pour votre aide.


---------------
Mon site Météo : www.MeteoNews-fr.com
Reply

Marsh Posté le 06-02-2006 à 17:43:14    

Toujours pas une petite idée du problème ?


---------------
Mon site Météo : www.MeteoNews-fr.com
Reply

Marsh Posté le 06-02-2006 à 17:49:29    

Est ce que t'as saisie ce que j'ai dit plus haut :
TINYBLOB ou TINYTEXT c'est 255 caractéres maximum.
Si t'as besoin de plus alors prend un autre type de colone.
Et si t'échape pas tes saisies, t'auras pas ton texte en entié dés qu'il contiendra un '.
 
Et désolé, mais à par te dire 36 fois la même chôse en variant trés légérement on peut rien te faire de plus.

Reply

Marsh Posté le 06-02-2006 à 17:52:46    

Ok, donc quel autre type de colone je peux prendre ?
 
Par contre quand tu dis, "si t'échape pas tes saisies, t'auras pas ton texte en entié dés qu'il contiendra un '."  
 
Tu veux dire quoi par "si t'échape pas tes saisies"  
 
Merci d'avance pour ton aide.


---------------
Mon site Météo : www.MeteoNews-fr.com
Reply

Marsh Posté le 06-02-2006 à 17:55:07    

voir plus haut pour l'explication.
pour les autres types de colones, voir : http://www.nexen.net/index.php?opt [...] ements.php et http://www.nexen.net/index.php?opt [...] 3Dtinyblob
 
Et n'hésite pas à fouiller la documentation.


Message édité par omega2 le 06-02-2006 à 17:56:47
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed