Insert code ASCII dans une table mysql

Signaler
Messages postés
9
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
26 avril 2008
-
Messages postés
9
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
26 avril 2008
-
bonjour,
j'ai du code hexa que je transforme en texte(la fonction marche parfaitement), et lorsque j'insere le résultat dans une table mysql, il m'insere du code ASCII? ( Guade.......) alors que si j'affiche la requete avant l'insertion il m'affiche du texte?
aidez moi svp.
merci

12 réponses

Messages postés
38
Date d'inscription
jeudi 8 novembre 2007
Statut
Membre
Dernière intervention
25 avril 2008

Bonjour
tu peux choisir quand tu créer tes tables leur format;
Il te suffit de mette ascii et le tour est joué
Messages postés
9
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
26 avril 2008

merci, ça ne marche toujours pas, j'ai changé l'interclassement en ASCII, mais il insere toujours des caractere ascii
Messages postés
38
Date d'inscription
jeudi 8 novembre 2007
Statut
Membre
Dernière intervention
25 avril 2008

Ta fonction qui transforme tu peux la mettre???
Messages postés
9
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
26 avril 2008

voici la fonction:
function hex2str($hex)
{
  $str ='';
  for($i=0;$i<strlen($hex);$i+=4)
  {
    $st=substr($hex,$i+2,2);
    $st=$st.substr($hex,$i,2);
    $str.="&#".(hexdec($st)).";";

  }
 
  return $str;
}
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
en meme temps, ta fonction renvoie exactement ce qui entre dans ta table... ce que tu mets la, c'est pas de l'ascii brut, c'est l'entite html qui correspond a cet ascii...

function hex2str($hex)
{
$str ='';
for($i=0;$i<strlen($hex);$i+=4)
{
$st=substr($hex,$i+2,2);
$st=$st.substr($hex,$i,2);
$str.=chr(hexdec($st));
}
return $str;
}
Messages postés
9
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
26 avril 2008

oui, c'est pas de l'ASCII. je veux avoir la chaine de caratere a partir de l'ascii
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
http://fr.php.net/manual/en/function.chr.php

je t'ai mis la reponse plus haut...
Messages postés
9
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
26 avril 2008

mais ça ne m'affiche pas le même résultat, &# me donne l bon résultat alors que chr me donne n'importe quoi, entout les cas pas le résultat attendu
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
ce que tu regardes, c'est le resultat html... regarde les sources de ton html, (c'est a dire ce qui ira en bdd) c'est ca qui importe...
Messages postés
9
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
26 avril 2008

oui,


donc pour mon probleme,l'afichageest bon mais le source pas bon,


mais avec chr(), ni le source, ni l'affichage n'est bon
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
faudrait que tu donnes un exemple parce-que la...
Messages postés
9
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
26 avril 2008

voici le code :

$requete1 = "SELECT * FROM ".$table;        
$res = mysql_db_query("test00", $requete1);
$nbchamps=mysql_num_fields($res);
$requete2 = "delete from ".$table;                          //je supprime le contenu de table
$result2 = mysql_db_query("test00", $requete2);
while ($voir = mysql_fetch_array($res))
{
$x="($voir[0]";
$voir[1]= hex2str($voir["LIBELLE_HEX"]);    

    for ($i=1; $i<$nbchamps; $i++)
     {
     $meta = mysql_fetch_field($res, $i);
     //echo $meta->type;
     
     if ($meta->type == 'string'or $meta->type=='blob')
     {
      $voir[$i]="'".$voir[$i]."'";
      }
      if ($voir[$i]==null) {$voir[$i]='null';}
      $x=$x.",$voir[$i]";
      }
      $x=$x.")";
      
      $requete7 = "insert into ".$table." values ".$x;
      echo $requete7;
      $result4 = mysql_db_query("test00", $requete7);
      echo mysql_error();      
}
quand je fait echo $requete7 ça m'affiche le bon resultat ( je travaille sur une base multilangue) donc pour le serbe par xemple:  ça m'affiche : insert into alias_sr values (17,'?????????',17,308,1,5,0,'2404400430043D044604430441043A043004')
alors que dans la base je trove: &#1060;&#1088;&#1072;&#1085;&#1094;&#1091;&#1089;&... pourl champs qui n cirylique.