PHP / MYSQL ajout de % dans un champs BDD

PHP / MYSQL ajout de % dans un champs BDD - PHP - Programmation

Marsh Posté le 24-11-2006 à 11:13:08    

Bonjour  
 
voila je viens vers vous car je me fait chauffer les neuronnes sur un probleme et j'arrive pas a resoudre.
Je fais un posteur PHP  / MYSQL
Jusque la pas de souci tout fonctionne bien caractère spéciaux tel que é è > < " / \ et compagnie sont bien en bdd et je l'ai retrouve egalement lors de l'affichage
 
Seulement avec un caractère cela passe pas par exemple si dans un textarea je met du text avec le signe pourcentage %
et bien il me retourne une erreur mysql ci dessous
 

Citation :


Warning: sprintf(): Too few arguments in c:\easyphp1-8\www\.......\admin\send_news.php on line 143
Query est vide


 
Je fais bien divers conversion avant envoie y compris le remplacer des BR pour le textarea mais bon rien n'y fait
 
voici le bout de code de conversion
 

Code :
  1. $descriptif1 = htmlspecialchars($news_descript,ENT_QUOTES);
  2. $descriptif2=ereg_replace(chr(13),'<br>',$descriptif1);


 
Merci d'avance

Reply

Marsh Posté le 24-11-2006 à 11:13:08   

Reply

Marsh Posté le 24-11-2006 à 11:36:49    

montre nous la ligne 143 avec le sprintf
 
sinon pas besoin de ereg juste pour remplacer un caractère, str_replace sera plus performant

Reply

Marsh Posté le 24-11-2006 à 11:45:57    

voici la partie enregistrement en bdd (dont la ligne 143)
 

Code :
  1. $add_news = sprintf("INSERT INTO $table_name ($champs2, $champs3, $champs4, $champs5, $champs6, $champs7, $champs8, $champs9, $champs10, $champs11, $champs12) VALUES ('$news_cat_id', '$news_titre', '$descriptif2', '$contenu2', '$news_source', '$news_date', '$news_time', '$news_day', '$news_month', '$news_years', '$news_auteur')" );
  2.  mysql_select_db($sql_bdd, $db_link);
  3.  $result = mysql_query($add_news, $db_link) or die(mysql_error());


Message édité par hyptnos le 24-11-2006 à 11:46:05
Reply

Marsh Posté le 24-11-2006 à 11:51:55    

je ne comprend pas pourquoi tu utilises sprintf ??

Reply

Marsh Posté le 24-11-2006 à 11:52:45    

euh j'ai toujours fait comme ca a vrai dire :(  
tu veux que j'utilise quoi?

Reply

Marsh Posté le 24-11-2006 à 11:56:16    

hyptnos a écrit :

tu veux que j'utilise quoi?

rien vu que ton sprintf ne fait rien et que ton erreur avec le % vient de là

Code :
  1. $add_news = "INSERT INTO $table_name ($champs2, $champs3, $champs4, $champs5, $champs6, $champs7, $champs8, $champs9, $champs10, $champs11, $champs12) VALUES ('$news_cat_id', '$news_titre', '$descriptif2', '$contenu2', '$news_source', '$news_date', '$news_time', '$news_day', '$news_month', '$news_years', '$news_auteur')";


Reply

Marsh Posté le 24-11-2006 à 12:03:09    

oki merci en effet ca marche niquel comme ca ^^
Pour info le sprintf sert a quoi?


Message édité par hyptnos le 24-11-2006 à 12:12:40
Reply

Marsh Posté le 24-11-2006 à 13:10:37    

comme en langage C : à formater des chaînes de caractères.
 
ex : $String = sprintf("Il a %d bonbons", $NbBonbons);
 
si tu fais un echo $String; tu vas avoir en sortie : "Il a 5 bonbons" si $NbBonbons = 5...

Reply

Marsh Posté le 24-11-2006 à 13:25:06    

Oki oki :)
oui en effet cela servait a rien dans mon cas ^^

Reply

Sujets relatifs:

Leave a Replay

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