Pb avec Mysql

Pb avec Mysql - PHP - Programmation

Marsh Posté le 10-10-2005 à 19:56:46    

Bonsoir à tous,
 
J'ai un petit souci avec Mysql, je m'explique. J'ai un formulaire, avec notamment un textarea : lorsque l'internaute passe à la ligne dans son texte  (en appuyant sur entrée), les données sont bien enregistrées dans la base de données. Par contre, lorsque j'essaye de les afficher sur une page, rien ne s'affiche. Si l'utilisateur ne passe pas à la ligne, tout se passe comme il faut. Est-ce un problème de caractères spécial?
 
Merci pour vos suggestions.

Reply

Marsh Posté le 10-10-2005 à 19:56:46   

Reply

Marsh Posté le 10-10-2005 à 20:03:31    

Il n'y a pas de raison a priori.
 
Fait voir comment tu insères/récupères tes données.

Reply

Marsh Posté le 10-10-2005 à 20:36:53    

sielfried a écrit :

Il n'y a pas de raison a priori.
 
Fait voir comment tu insères/récupères tes données.


Bonsoir et merci de ton aide.
 
 
Je les insère de cette façon avec une simple requête SQL :  

Code :
  1. $query="INSERT INTO User(login,tel,telPortable,adresse) values ('$login','$tel','$telPor','$adresse')";

 
 
Pour les récupérer :  

Code :
  1. $user=mysql_query("Select * from User where login='$login'" );
  2. $a_row=mysql_fetch_row($user);
  3. .....
  4. document.formulaire.adresse.value='<? echo $a_row[7] ?>';


 
Bizarre, non?

Reply

Marsh Posté le 10-10-2005 à 20:43:42    

Il y a combien de colones dans ta table et dans quel ordre?

Reply

Marsh Posté le 10-10-2005 à 20:44:59    

fait un addslashes($a_row[7]) déjà pour evité si y'a des " ' que ca bug lors du document...value= et verifie dans les sources de la page générée ce que ca donne.

Reply

Marsh Posté le 10-10-2005 à 20:45:39    

Ma question peut paraître stupide et hors de propos, mais...
Pourquoi du javascript ?


---------------
Martin
Reply

Marsh Posté le 10-10-2005 à 20:46:16    

Aprés coup, me suis posé la même question. :lol:

Reply

Marsh Posté le 10-10-2005 à 20:49:20    

ben il veut mettre a jour le champ d'un formulaire
c sur qu'il pourrait directement faire un echo du formulaire entier en affectant les valeurs directement

Reply

Marsh Posté le 10-10-2005 à 21:03:08    

franchement javascript c'est le mal

Reply

Marsh Posté le 10-10-2005 à 21:20:51    

Merci pour vos réponses. Le javascript, c'est pour mettre à jour les données de mon formulaire. Maitenant, je peux éventuellement mettre seulement du php...
 
Sinon, ma table a 9 colonnes, et celle qui pose pb est avant dernière :  pourquoi cette question, je ne comprends pas trop?
 
 
 

Reply

Marsh Posté le 10-10-2005 à 21:20:51   

Reply

Marsh Posté le 10-10-2005 à 21:22:17    

joquetino a écrit :

Merci pour vos réponses. Le javascript, c'est pour mettre à jour les données de mon formulaire. Maitenant, je peux éventuellement mettre seulement du php...


si tu peux c'est mieux  :)
 

joquetino a écrit :

Sinon, ma table a 9 colonnes, et celle qui pose pb est avant dernière :  pourquoi cette question, je ne comprends pas trop?


je vois pas trop pourquoi non plus [:petrus75]


Message édité par betsamee le 10-10-2005 à 21:23:28
Reply

Marsh Posté le 10-10-2005 à 21:26:03    

Y'aurait pas des quotes simples dans ta string ?
 
echo $a_row[7]; hors du JS ca affiche quoi ?
 
Sinon va faire un tour du côté de :
http://php.net/mysql_real_escape_string
http://php.net/mysql_fetch_assoc
 
Pas forcément à voir avec le problème, mais ça ferait pas de mal.

Reply

Marsh Posté le 10-10-2005 à 21:27:37    

betsamee a écrit :

franchement javascript c'est le mal


Si c'est pour dire ça, autant ne rien écrire :|

Reply

Marsh Posté le 10-10-2005 à 21:32:31    

joquetino a écrit :

Merci pour vos réponses. Le javascript, c'est pour mettre à jour les données de mon formulaire. Maitenant, je peux éventuellement mettre seulement du php...
 
Sinon, ma table a 9 colonnes, et celle qui pose pb est avant dernière :  pourquoi cette question, je ne comprends pas trop?


 
Ton problème vient de javascript.
En effet, lorsque tu as une seule ligne, aucun problème.
Par contre, quand tu as plusieurs lignes dans ton texte, le PHP va donc envoyer plusieurs lignes dans l'HTML.
Et javascript n'aime pas :(
En fait, les retours chariots sont stockés de la manière suivante dans ta base sql : \n, et non <br /> comme le voudrait l'HTML.
le symbole \n indique un retour à la ligne, et dans le document que tu genères, ça ne sera pas un retour à la ligne HTML, mais de fichier, d'où le dysfonctionnement avec Javascript.
 
Exemple :
1 ligne donne :  
 
document.value = 'blabla';
 
dans ton cas, avec 2 lignes, cela donne :  
 
document.value = 'salut
toto';
 
=> Erreur javascript.
 
Il est préférable que tu mettes ton champ à jour de la façon suivante :  
<textarea>'.$a_row[7].'</textarea>
 
car :  
<textarea>salut
toto</textarea>
 
=> Pas d'erreurs , ça fonctionne.
A+


Message édité par skylight le 10-10-2005 à 21:33:30
Reply

Marsh Posté le 10-10-2005 à 21:33:41    

joquetino a écrit :

Sinon, ma table a 9 colonnes, et celle qui pose pb est avant dernière :  pourquoi cette question, je ne comprends pas trop?


pour vérifer que l'index 7 était cohérant je suppose...


---------------
Martin
Reply

Marsh Posté le 10-10-2005 à 21:36:29    

Ok merci pour vos conseils.

Reply

Marsh Posté le 10-10-2005 à 21:38:22    

skylight a écrit :

Si c'est pour dire ça, autant ne rien écrire :|


excuses moi de conseiller d'eviter d'utiliser le javascript quand il n'a aucun interet  
je ne suis pas un specialiste du web de ton calibre j'en suis sur  :lol:  mais j'ai le droit de dire ce que je pense  

Reply

Marsh Posté le 10-10-2005 à 21:39:13    

betsamee a écrit :

excuses moi de conseiller d'eviter d'utiliser le javascript quand il n'a aucun interet  
je ne suis pas un specialiste du web de ton calibre j'en suis sur  :lol:  mais j'ai le droit de dire ce que je pense


Dans ce cas, précise, mais ne dit pas tout betement que c'est le mal.

Reply

Marsh Posté le 10-10-2005 à 21:43:54    

skylight a écrit :

Dans ce cas, précise, mais ne dit pas tout betement que c'est le mal.


je suis bete c'est pas ma faute [:petrus75]
 
[chuchotement fourbe]
je peux plus me les voir ces webeux avec leur w3c et leur arrogance
[/chuchotement fourbe]

Reply

Marsh Posté le 10-10-2005 à 22:06:46    

En tout cas, mon pb venait bien du Javascript. En oubliant le Javascript et en passant au PHP, tout est réglé. Merci.

Reply

Marsh Posté le 10-10-2005 à 22:48:54    

joquetino a écrit :

Sinon, ma table a 9 colonnes, et celle qui pose pb est avant dernière :  pourquoi cette question, je ne comprends pas trop?

je posais la question, par ce que t'en remplis que 4 d'aprés la requette (les autres ayant peut être une valeur par défaut) et que tu lis la valeur contenu dans la 7éme colone. (dans l'ordre réel des colones d'aprés la base de donnée) Comme tu nous avais pas donné le nombre de colone ni leur ordre, il était possible que tu récupéres une colone vide (ou une valeur en dehors de la table) au lieu de la bonne colone. Du coup, on pouvait pas savoir si la récupération était bonne.

Reply

Marsh Posté le 10-10-2005 à 23:07:18    

Je viens vous embêter une nouvelle fois, mais j'ai un autre problème avec ma base de données MySql.
Je rentre, via un textarea, un texte, qui contient des retours à la ligne, voir plusieurs saut de lignes. J'ai vérifié dans ma base de données MySql, ces saut de lignes sont bien pris en compte.
Cependant, quant je réaffiche ce texte, les sauts de ligne ont disparu. C'est assez gênant.
Voici comment je récupère mon texte :
 

Code :
  1. $result=mysql_query("Select login,theme,titre,Date_Format(date, '%d/%m/%Y') AS date,commentaire from News order by date DESC" );
  2. while ($a_row=mysql_fetch_row($result)){
  3. $login=$a_row[0];
  4. $theme=$a_row[1];
  5. $titre=$a_row[2];
  6. $date=$a_row[3];
  7. $commentaire=$a_row[4];
  8. ?>
  9. <div id="divNews">
  10. <h3><? echo $titre ?></h3>
  11. <h4><? echo $theme?></h4><h5>, <? echo $date ?> - <? echo $login ?></h5>
  12. <br/>
  13. <p><? $commentaire ?></p>
  14. </div>


N'auriez vous pas une ch'tite idée du pb, sinon... tant pis, je laisserai le texte tel quel même si c'est pas superbe.
 
Merci encore.

Reply

Marsh Posté le 10-10-2005 à 23:11:02    

voir doc : nltobr

Reply

Marsh Posté le 10-10-2005 à 23:11:31    

nl2br($commentaire)


---------------
Martin
Reply

Marsh Posté le 10-10-2005 à 23:14:46    

oups autant pour moi. [:gzk]

Reply

Marsh Posté le 10-10-2005 à 23:32:20    

Merci bcp, je vous embête plus c'est promis.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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