MySQL - texte long

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,
je suis en train de créer un script permettant de noter des films, et d'ajouter des films à la liste.
J'ai créer une table avec 8 champs :
id (INT - autoincrémente) ; titre (TEXT) ; realisateur (VARCHAR 2000) ; acteurs (VARCHAR 2000) ; pochette (VARCHAR 2000) ; synopsis (TEXT) ; sortie (VARCHAR 20) ; genre (VARCHAR 100)

Ce la fonctionne bien... sauf que dès que le synopsis commence a faire 4 ou 5 lignes, sa ne rentre plus rien dans la base de donnée MySQL.

Je voudrais savoir si il existe un type permettant de rentrer de très longs textes dans une base de donnée.

merci d'avances pour vos réponses.
A voir également:

6 réponses

Yoan Messages postés 11795 Date d'inscription   Statut Modérateur Dernière intervention   2 331
 
Yep,
C'est curieux parce qu'en général, MySQL limite une variable de type TEXT à 65535 caractères, et sur un moniteur usuel, ça fait un peu plus que 4 ou 5 lignes ;-) Ca doit être une limitation, tu as installé la base toi-même ou elle t'es fournie par un FAI ou autre service d'hébergement ?

Sinon tu peux utiliser le type MEDIUMTEXT voire LONGTEXT :
ALTER TABLE nomtable CHANGE synopsis synopsis MEDIUMTEXT;
En passant 2000 caractères c'est énorme pour des noms/prénoms.
3
Utilisateur anonyme
 
enfait j'ai testé avec Wamp en local sur phpmyadmin.
je vais essayer avec mediumtext ou longtext.
merci

EDIT : mêmes résultats avec MEIUMTEXT et LONGTEXT .
1
kryoportail Messages postés 222 Date d'inscription   Statut Membre Dernière intervention   125
 
Bonjour,

Je confirme la réponse de Yoan...
Si tu as déclaré Synopsis en TEXT ca devrait le faire !

Et si cela ne suffit pas, la page officielle du manuel MySql sur les types de données acceptés : http://dev.mysql.com/doc/refman/5.0/fr/storage-requirements.html.

Donc hormis si tu es en MyISAM et que ta ligne fait plus de 65535 octets, tu ne devrais pas atteindre la limitation. Et si tu atteint la limitation, par defaut, je crois que Mysql 'cut' le texte pour que ca rentre dans les cases...

Ne serait-ce pas plutôt ta requête SQL d'insertion ou de mise à jour qui foire !?

Voilà si tu trouves pas, exporte la structure de ta table et envoi nous la requète qu'on voit un peu de ce qu'il s'agit...

Amicalement,
S@M...
http://kryoportail.ath.cx
1
Utilisateur anonyme
 
je vai aller voir sur le site que tu a donné kryoportail.
voici le formulaire, la requete et la table.

formlaire d'envoi :
<form action="films_ajout.php" method="post">


Titre du film :<input type="text" size=20 name="titre"/><br>
Genre :<input type="text" size=12 name="genre"/><br>
Réalisateur :<input type="text" size=15 name="real" /><br>
Acteurs principaux :<input type="text" size=30 name="acteurs" /><br>
Date de sortie officiel (en France) :(jj/mm/aaaa)<input type="text" size=12 name="sortie" /><br>
Synopsis :<br><textarea name="synopsis" cols=70 rows=20></textarea><br>
URL de la pochette :<input type="text" size=40 name="pochette"/><br>

<input type="submit" value="Ajouter" />
</form>


page films_ajout.php :

<?php
$titre = $_POST['titre'];
$real = $_POST['real'];
$acteurs = $_POST['acteurs'];
$pochette = $_POST['pochette'];
$synopsis = $_POST['synopsis'];
$sortie = $_POST['sortie'];
$genre = $_POST['genre'];
?>


<?php
mysql_connect("localhost", "root");
mysql_select_db("juza_all");


mysql_query("INSERT INTO films VALUES('', '$titre', '$real', '$acteurs', '$pochette', '$synopsis', '$sortie', '$genre')");

mysql_close();
?>

<?php
echo "Le film \"".$titre."\"a bien été ajouté à la liste";
?>

table :

-- phpMyAdmin SQL Dump
-- version 2.11.6
-- https://www.phpmyadmin.net/
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
donuts08 Messages postés 519 Date d'inscription   Statut Membre Dernière intervention   39
 
bonjour,

ça dépend vu que maintenant les jeunes mariés peuvent garder les deux noms... ça risque de faire de jolies choses XD
-1
Utilisateur anonyme
 
c'est bon, j'ai régler le problème :
le synopsis s'écrit dans un fichier texte.
-1