Insert code ASCII dans une table mysql

studenttours Messages postés 9 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 26 avril 2008 - 25 avril 2008 à 10:56
studenttours Messages postés 9 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 26 avril 2008 - 26 avril 2008 à 11:16
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

cephalic Messages postés 38 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 25 avril 2008
25 avril 2008 à 11:50
Bonjour
tu peux choisir quand tu créer tes tables leur format;
Il te suffit de mette ascii et le tour est joué
0
studenttours Messages postés 9 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 26 avril 2008
25 avril 2008 à 11:59
merci, ça ne marche toujours pas, j'ai changé l'interclassement en ASCII, mais il insere toujours des caractere ascii
0
cephalic Messages postés 38 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 25 avril 2008
25 avril 2008 à 12:55
Ta fonction qui transforme tu peux la mettre???
0
studenttours Messages postés 9 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 26 avril 2008
25 avril 2008 à 13:01
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;
}
0

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

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
25 avril 2008 à 13:26
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;
}
0
studenttours Messages postés 9 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 26 avril 2008
25 avril 2008 à 14:32
oui, c'est pas de l'ASCII. je veux avoir la chaine de caratere a partir de l'ascii
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
25 avril 2008 à 14:42
http://fr.php.net/manual/en/function.chr.php

je t'ai mis la reponse plus haut...
0
studenttours Messages postés 9 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 26 avril 2008
25 avril 2008 à 17:03
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
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
25 avril 2008 à 17:14
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...
0
studenttours Messages postés 9 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 26 avril 2008
25 avril 2008 à 17:17
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
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
25 avril 2008 à 17:29
faudrait que tu donnes un exemple parce-que la...
0
studenttours Messages postés 9 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 26 avril 2008
26 avril 2008 à 11:16
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.
0
Rejoignez-nous