Rechercher : dans
Par :

MySQL - texte long

Dernière réponse le 26 sep 2008 à 19:12:07 sonik21, le 20 sep 2008 à 23:57:23 
 Signaler ce message aux modérateurs

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.  |||
français :Feignant ? Moi ? Jamais !!
anglais : Lazy ? Me ? Never !!
geek : F31gn4n7 ¿ M01 ¿ J4m415 ¡¡

désoler, mais mes connaissance en langues étrangères sont as­sez limités :p

Configuration: Windows XP
Firefox 3.0.1

Meilleures réponses pour « MySQL texte long » dans :
MySQL - Chargement d'un fichier texte dans une table VoirPour charger une fichier texte défini comme suit : $ tail /home/user1/test.txt 'nom1',1,9 'nom2',2,3 'nom3',3,54 'nom4',4,2 'nom5',5,9 Dans une table définie comme suit : CREATE TABLE chargertest ( ...
Installation rapide de LAMP (Apache+MySql+php) sous Linux VoirLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL...
[MS-Dos] Ecrire dans un fichier texte en batch VoirPour écrire dans un fichier texte, il suffit d'utiliser une redirection ">" : echo texte_à_ecrire > fichier_de_sortie.txt Pour écrire à la fin d'un texte existant (concaténation) : echo "écriture a la fin du fichier ">>...
Télécharger TextWrangler VoirTextWrangler est un éditeur de texte évolué. Il propose de nombreuses fonctionnalités : recherche/remplacement simple ou sur plusieurs fichiers utilisation d'expressions rationnelles (regexp) comparaisons de fichiers presse-papiers...
Importer et exporter des données sous MySQL VoirImportation et exportation Les Système de Gestion de Bases de Données tels que MySQL permettent de manipuler facilement et avec beaucoup de souplesse un très important volume de données. Toutefois, aussi robuste soit MySQL, il peut être intéressant...
MySQL - Installation sous Windows VoirPrésentation de MySQL MySQL est un Système de Gestion de Bases de Données (SGBD) fonctionnant sous Linux et Windows. Depuis la version 3.23.19, MySQL est sous Licence GPL (aussi bien sous Linux que Windows), ce qui signifie qu'il peut être utilisé...
PHP - Affichage de texte sur le navigateur VoirLe but de PHP est de permettre la création de pages web dynamiques, ainsi son but premier est de pouvoir envoyer des données au navigateur. Les trois fonctions standards PHP fournit 3 fonctions permettant d'envoyer du texte au navigateur. Ces...

1

Yoan, le 21 sep 2008 à 00:57:12
  • +1

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. L'urgent est fait, l'impossible est en cours,
Pour les miracles, prévoir un délai ...

Répondre à Yoan

2

donuts08, le 21 sep 2008 à 01:05:05

Bonjour,

ça dépend vu que maintenant les jeunes mariés peuvent garder les deux noms... ça risque de faire de jolies choses XD

Répondre à donuts08

3

sonik21, le 21 sep 2008 à 01:05:45

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 .  |||
français :Feignant ? Moi ? Jamais !!
anglais : Lazy ? Me ? Never !!
geek : F31gn4n7 ¿ M01 ¿ J4m415 ¡¡

désoler, mais mes connaissance en langues étrangères sont as­sez limités :p

Répondre à sonik21

4

kryoportail, le 21 sep 2008 à 01:08:02

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

Répondre à kryoportail

5

sonik21, le 21 sep 2008 à 01:15:48

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
-- http://www.phpmyadmin.net -- Serveur: localhost
-- Généré le : Dim 21 Septembre 2008 à 01:14
-- Version du serveur: 5.0.51
-- Version de PHP: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de données: `juza_all`
--

-- --------------------------------------------------------

--
-- Structure de la table `films`
--

CREATE TABLE `films` (
`id` int(11) NOT NULL auto_increment,
`titre` text NOT NULL,
`realisateur` varchar(2000) NOT NULL,
`acteurs` varchar(2000) NOT NULL,
`pochette` varchar(2000) NOT NULL,
`synopsis` longtext NOT NULL,
`sortie` varchar(20) NOT NULL,
`genre` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Contenu de la table `films`
--



--
 |||
français :Feignant ? Moi ? Jamais !!
anglais : Lazy ? Me ? Never !!
geek : F31gn4n7 ¿ M01 ¿ J4m415 ¡¡

désoler, mais mes connaissance en langues étrangères sont assez limités :p

Répondre à sonik21

6

 sonik21, le 26 sep 2008 à 19:12:07

C'est bon, j'ai régler le problème :
le synopsis s'écrit dans un fichier texte.  |||
français :Feignant ? Moi ? Jamais !!
anglais : Lazy ? Me ? Never !!
geek : F31gn4n7 ¿ M01 ¿ J4m415 ¡¡

désoler, mais mes connaissance en langues étrangères sont as­sez limités :p

Répondre à sonik21