Aloha
Mon utilisateur choisit un objet dans une liste déroulante. Le nom est bien affiché (accentué et tout).
Quand je fais un "echo" sur la requête sql qui est générée pour récupérer les infos, je découvre que l'accent est remplacé par �. Cela fausse le résultat de la requête. Etrangement, les accents "passés en dur" dans la requête ne sont pas concernés.
Ma page principale a une balise
J'ai réenregistré toutes mes pages en UTF8 (était-ce logique ?)
Code : Sélectionner tout - Visualiser dans une fenêtre à part <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
J'ai le même comportement quelque soit le navigateur. Et il ne me reste a priori que ce problème. D'avance, merci,
Voici la fin de mon code :
//affiche BT_COMMU|Aub�rive
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php error_reporting(E_ALL || E_NOTICE); /* On récupère l'identifiant (TABLE|NOM)de l'objet choisi. */ $_idObj = isset($_GET['_idObj']) ? $_GET['_idObj'] : false; echo $_idObj;
// affiche BT_COMMU|Aub?rive
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo utf8_decode($_idObj);
// affiche : SELECT B.NOM "Commune", B.CO_INSEE "Code Insee", B.ARRONDIS "Arrondissement", B.CANTON "Canton", T.NOM AS EPCI FROM BT_COMMU B, TH_LIMAD T WHERE B.NOM = 'Aub�rive' AND SDO_ANYINTERACT(B.GEOMETRY, T.GEOMETRY) ='TRUE' AND (round(SDO_GEOM.SDO_AREA(SDO_GEOM.SDO_INTERSECTION(T.GEOMETRY,B.GEOMETRY, 0.001),0.010),3))>0.5 AND round((SDO_GEOM.SDO_AREA(SDO_GEOM.SDO_INTERSECTION(T.GEOMETRY,B.GEOMETRY, 0.001),0.010)/(SDO_GEOM.SDO_AREA(B.GEOMETRY,0.010)))*100,3)>5 AND T.GENRE = 'intercommunalité'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 /* Si on a un objet, on procède à la requête */ if(false !== $_idObj) { require_once './../fonctions.php'; list($table_, $idr) = split('[|]', $_idObj); /* Création de la requête pour avoir la fiche d'objet*/ switch ($table_) { ... case 'BT_COMMU': $sql3 = "SELECT B.NOM \"Commune\", B.CO_INSEE \"Code Insee\", B.ARRONDIS \"Arrondissement\", B.CANTON \"Canton\", T.NOM AS EPCI ". "FROM BT_COMMU B, TH_LIMAD T ". "WHERE B.NOM = '".$idr."' ". "AND SDO_ANYINTERACT(B.GEOMETRY, T.GEOMETRY) ='TRUE' ". "AND (round(SDO_GEOM.SDO_AREA(SDO_GEOM.SDO_INTERSECTION(T.GEOMETRY,B.GEOMETRY, 0.001),0.010),3))>0.5 ". "AND round((SDO_GEOM.SDO_AREA(SDO_GEOM.SDO_INTERSECTION(T.GEOMETRY,B.GEOMETRY, 0.001),0.010)/(SDO_GEOM.SDO_AREA(B.GEOMETRY,0.010)))*100,3)>5 ". "AND T.GENRE = 'intercommunalité'"; break; ... default: die("objet inconnu"); break ; } echo $sql3;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 $connexion = oci_connect("*****","$$$$$","%%%%%"); $nd = 0; $results=select_to_array($connexion, $sql3); /* On crée un tableau pour placer les résultats */ echo '<table class="resultat">'; if (count($results)) // Si y'a des résultat { reset($results); // se placer à la première ligne du tableau $results //echo "<br>"; $i = 0; foreach($results as $key=>$value) // Parcourir le tableau $results { if ($i===0) { echo "<tr>"; foreach(array_keys($value) as $key) { echo "<th>".sort_link($key,$key)."</th>"; } echo "</tr>"; ++$i; echo "<tbody>"; } echo "<tr>"; foreach(array_values($value) as $val) { echo "<td>"; if (is_null($val)) {echo '--';} else { if (empty($val)) {echo '--';} else {echo $val;}} echo "</td>"; } echo "</tr>"; } } else // Pas de résultat { echo "Y'a personne"; } echo "</tbody>"; echo "</table>"; /* Un petit coup de balai */ oci_close($connexion); } /* Sinon on retourne un message d'erreur */ else { echo("<p>Une erreur s'est produite. La région sélectionnée comporte une donnée invalide.</p>\n"); } ?>
Partager