Page 1 sur 2

BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 11:24
par rene06530
Bonjour.
je rentre des infos par l'intermédiaire d'un formulaire dans une BDD. si je rentre une dizaine de lignes la base n'en stocke qu'une ou deux.
D'avance, merci pour vos réponse.
<?php include("header.php"); ?>

<div style="text-align: center"><h2>Votre location</h2>
   

    <form action="votre_location.php" method="post">

        <p>
		<label for="pseudo">pseudo</label> : <input type="text" name="pseudo" id="pseudo" /><br /><br />
		<label for="titre">titre</label> :<textarea name="titre" rows="2" cols="60"></textarea><br /><br />            
         <label for="situation">situation</label> :<textarea name="situation" rows="8" cols="60"></textarea><br /><br />  
         <label for="description">description</label> :<textarea name="description" rows="8" cols="60"></textarea><br /><br />	
         <label for="complement">complément d'informations</label> :<textarea name="complement" rows="8" cols="60"></textarea><br /> 
 <input type="submit" value="Envoyer" />
 </p>
    </form>
Dans la table j'ai bien mis longtext partout, apparemment on ne met pas de taille et de valeurs ?
Tout fonctionne mais tout ce qui a été entré est incomplet.
Remerciements anticipés;
Cordialement

Re: BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 11:43
par polux78
Bonjour,
Il y a 3 étapes

1 - Dans la base structure de Code_p
code_p varchar(8) latin1_swedish_ci

Sous html/php
2 - Création de la zone à saisir Code_p
<input type="text" name="code_p" value="-" size="8" maxlength="8">

3 - Modification dans la cellule Code_p
<input type="text" name="code_p" value="<?php echo mysql_result($query,0,"code_p") ?>" size="8" maxlength="8">

Ceci est valable sous Mysql, mais pas en Myqli pour la modif dans la cellule... je patauge !

Cord.

Re: BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 13:04
par rene06530
J'aurais peut-être dû préciser que je suis en PDO

Voici un extrait d'une ligne de ma table, les autres lignes sont identiques.
situation longtext utf8_general_ci Non Aucune Modifier Modifier Supprimer Supprimer

et voici la requête
<?php include("header.php"); ?>
<?php include("connect_wamp.php"); ?>

<?php
$req = $bdd->prepare('INSERT INTO descriptif (pseudo, titre, situation, description, complement) VALUES(?, ?, ? ,?, ?)');

$req->execute(array($_POST['pseudo'],$_POST['titre'],$_POST['situation'],$_POST['description'],$_POST['complement']));
	


echo 'Les informations ont bien été ajoutées !';
?>
    </body>
</html>
Je répéte, TOUT fonctionne mais le texte est incomplet.

Re: BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 13:45
par polux78
Ahhh...
alors là, je bloque !!!
Faut attendre la réponse des ténors de la profession.
Amitiés

Re: BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 13:51
par polux78
Si tout le texte n'est pas enregistré, c'est que la taille de la cellule dans ta base n'est pas assez grande
Enfin pour ce que j'en pense...
Au risque de me prendre une baffe !!!
Cord.

Re: BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 14:35
par rene06530
OUI, il y a des baffes qui se perdent, je plaisante!!!!!
j'ai mis rows="2" cols="60" et je ne sort que q;q mots.
Je viens de faire une au autre base, c'est pareil ????
Comme tu dis : attendons les ténors.

Re: BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 15:23
par @rthur
Bonjour,

Vérifie la structure de ta table SQL.
Chaque champ dans une table a en effet un nombre limité de caractères donc vérifie que ça ne vienne pas de là.

Si ça ne vient pas de là, essaye de déterminer à quel moment c'est coupé, est-ce que c'est toujours au même nombre de caractères (fait des tests d'insertion de textes longs : 12345678901234567890123 etc...)

Re: BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 16:02
par rene06530
Bonjour @rthur.
Merci de ta réponse.
Les longtext doivent faire + de 250 caractéres ? je n'en met pas tant ,et je ne reçoit que q.q uns, pas toujours au même endroit .
J'ai fait une autre table, c'est pareil .

Re: BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 16:03
par @rthur
1) Fais un export de la structure de ta table MySQL (pas des données) et poste le ici.
2) Fais plusieurs tests d'insertion à base de 12345678901234567890123... et donne nous le résultat

Re: BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 16:10
par rene06530
Voici la stucture
--
-- Structure de la table `descriptif`
--

CREATE TABLE IF NOT EXISTS `descriptif` (
`pseudo` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`titre` longtext NOT NULL,
`situation` longtext NOT NULL,
`description` longtext NOT NULL,
`complement` longtext NOT NULL,
PRIMARY KEY (`pseudo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Re: BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 16:17
par rene06530
Avec des chiffres on dirait que ça marche. avec des lettres NON

Re: BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 17:27
par @rthur
Fait des tests avec l'alphabet en minuscule, puis majuscule, puis accents, puis caractères spéciaux
abcdefghijklmnopqrstuvwxyzABCDEFGHI...

Si ça marche pour des chiffres, il est possible que ça coupe sur les accents (et c'est donc un pb de charset) ou sur les caractères spéciaux type guilelmets simple/double et ce sera car tu n'as pas échappé tes données correctement.

Re: BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 17:45
par rene06530
Pour les : DDDDDDDD c'est bon les : aaaaaaaaaaa c'est bon c'est à Paris ne passe pas ni : il a dit" bonjour"

Re: BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 17:53
par rene06530
J'ai trouvé ceci en cherchant charset. Je m'y attelle .
http://www.kitpages.fr/fr/cms/31/bascul ... e-en-utf-8
Je suis en utf8 mais peut etre pas partout, je cherche;

Re: BDD ; texte entrée n'est pas restitué en entier.

Posté : 02 nov. 2015, 17:53
par @rthur
Dès qu'il y a une guillemet ou une apostrophe ?