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

rene06530
Invité n'ayant pas de compte PHPfrance

02 nov. 2015, 11:24

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

Eléphant du PHP | 61 Messages

02 nov. 2015, 11:43

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.

rene06530
Invité n'ayant pas de compte PHPfrance

02 nov. 2015, 13:04

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.

Eléphant du PHP | 61 Messages

02 nov. 2015, 13:45

Ahhh...
alors là, je bloque !!!
Faut attendre la réponse des ténors de la profession.
Amitiés

Eléphant du PHP | 61 Messages

02 nov. 2015, 13:51

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.

rene06530
Invité n'ayant pas de compte PHPfrance

02 nov. 2015, 14:35

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.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

02 nov. 2015, 15:23

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...)
Quand tout le reste a échoué, lisez le mode d'emploi...

rene06530
Invité n'ayant pas de compte PHPfrance

02 nov. 2015, 16:02

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 .

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

02 nov. 2015, 16:03

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
Quand tout le reste a échoué, lisez le mode d'emploi...

rene06530
Invité n'ayant pas de compte PHPfrance

02 nov. 2015, 16:10

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;

rene06530
Invité n'ayant pas de compte PHPfrance

02 nov. 2015, 16:17

Avec des chiffres on dirait que ça marche. avec des lettres NON

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

02 nov. 2015, 17:27

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.
Quand tout le reste a échoué, lisez le mode d'emploi...

rene06530
Invité n'ayant pas de compte PHPfrance

02 nov. 2015, 17:45

Pour les : DDDDDDDD c'est bon les : aaaaaaaaaaa c'est bon c'est à Paris ne passe pas ni : il a dit" bonjour"

rene06530
Invité n'ayant pas de compte PHPfrance

02 nov. 2015, 17:53

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;

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

02 nov. 2015, 17:53

Dès qu'il y a une guillemet ou une apostrophe ?
Quand tout le reste a échoué, lisez le mode d'emploi...