Nouveau WRInaute
Bonjour, d'habitude je ne poste pas pour ce genre de chose mais la je tourne en rond ...
Dans ma base mySql lors d'un insert, mes données ne sont pas rentré correctement, c'est un problème d'encodage.
Sur ma page web tout est bien affiché, cependant dans la base les accents sont correct mais l'apostrophe pose problème.
Et ma table est en Interclassement : utf8_general_ci.
J'ai essayer pas mal de truc et rien ne passe
Exemple de ce que ça me met : Argent (nitrate d'
Dans ma base mySql lors d'un insert, mes données ne sont pas rentré correctement, c'est un problème d'encodage.
Sur ma page web tout est bien affiché, cependant dans la base les accents sont correct mais l'apostrophe pose problème.
Code:
function config()
{
header("Content-Type: text/html; charset=utf-8");
ini_set("max_execution_time", 0);
$serveur = "localhost";
$nom_base = "veto";
$login = "root";
$pwd = "";
mysql_connect ($serveur,$login,$pwd) or die ('ERREUR '.mysql_error());
if (mysql_connect ($serveur,$login,$pwd)) {
echo 'connexion réussie';
}
else {
echo 'connexion impossible...'.mysql_error();
}
// sélection de la base de données
mysql_select_db ($nom_base) or die ('ERREUR '.mysql_error());
mysql_query("SET NAMES UTF8");
require_once 'simple_html_dom.php';
}
Code:
function parserSubstances_temp ()
{
$html = new simple_html_dom();
$id = 7;
// Boucle sur tout les éléments de la base extranet
while($id <= 8)
{
$url = "https://extranet.edqm.eu/4DLink1/4DCGI/web_view/mono/$id";
$file = @fopen($url, 'r');
// On test si le fichier existe ou non
if ($file)
//Si il exite en commencer à parser la page et récupérer les données
{
$html->load_file($url);
// Sur ces 5 je parcours les lignes du tableau pour me positionner sur l'élément souhaité.
$monoNumber = $html->find('td', 5)->plaintext;
$englishName = $html->find('td', 7)->plaintext;
$frenchName = $html->find('td', 9)->plaintext;
$latinName = $html->find('td', 11)->plaintext;
$PhEurStatus = $html->find('td', 17)->plaintext;
echo $frenchName ;
// On test si le status n'est pas plus grand que 1, cela nous permet de savoir si un texte est aussi présent.
if(strlen($PhEurStatus) > 1 ){$PhEurDeleted = 1;} else {$PhEurDeleted = 0;}
}
// Ligne de test(désactivé)
// echo $monoNumber." ".$englishName." ".$frenchName. " ".$latinName." ".$PhEurStatus."<br/>"; // Pour test
// Requète d'ajout de no données et gestion des doublons avec ON DUPLICATE KEY UPDATE, si un doublon
// est détécté la requète se transforme en update.
$query = "INSERT INTO substances_temp(PhEurMonograph,TermName_FR,TermName_EN,Termname_LA,PhEurStatus,PhEurDeleted) VALUES('$monoNumber','$frenchName','$englishName','$latinName','$PhEurStatus', '$PhEurDeleted')
ON DUPLICATE KEY UPDATE PhEurMonograph=$monoNumber";
// On execute la fonction
$result = mysql_query($query);
// On ferme le fichier et livère la mémoire.
fclose($file);
// On incrément l'id de 1 pour changer de document.
$id++;
}
}
Et ma table est en Interclassement : utf8_general_ci.
J'ai essayer pas mal de truc et rien ne passe
Exemple de ce que ça me met : Argent (nitrate d'