bonjour,
je vous explik mon souci :
j'ai une fonction qui me trouve une catégorie en matchant une phrase avec de smots clé :
donc j'appelle cette fonction. ensuite, je veux envoyer l'Id de la catégorie vers ma base.
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 function Categorie($titre) { $mots = explode(" ",$titre); // Vérification de chaque mot du titre avec les mots clé $nbMots = count($mots); foreach($mots as $keyword) { // Passe chaque mot en minuscule $keyword = strtolower($keyword); // supprimer les caratères accentués $keyword = strtr($keyword, "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ", "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn"); // Ajoute \ devant les caractères spéciaux $keyword = addslashes($keyword); // Verifie si un des mots du titre ne fait pas partie de la liste de mots à exclure $sql_mots = mysql_query("SELECT * FROM `mots_out` WHERE `mots_out` LIKE '%" . $keyword ."%'") or die ("Erreur dans la requête des mots à exclure."); $res_mots = mysql_fetch_array($sql_mots); // Si le mot fait partie de la liste, ne pas le prendre en compte if($res_mots != TRUE ) { $sql = mysql_query("SELECT * FROM `categories` WHERE `keywords` LIKE '%" . $keyword ."%'") or die ("Erreur dans la requête"); $res = mysql_fetch_array($sql); $id = $res['id']; if($res['id'] != FALSE) { return $id; } } } }
mais parfois, la fonctione trouve plusioeurs catégories.
Dans ce cas, je voudrais créer une nouvelle ligne avec exactement la meme annonce, seul l'Id de la catégorie (cty_id) changerais
Or, pour le moment, un seul ID par phrase est entré dans la base et je ne comprends pas pourquoi...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 mysql_query("INSERT INTO `emb_advertisement` (`insert_date`, `offer_id`, `cty_id`, `adv_title`, `adv_description`, `adv_position_description`, `adv_organization`, `adv_recruiter_name`, `adv_email`, `adv_creation_date`, `adv_modification_date`, `adv_address`, `adv_city`, `adv_localisation`, `adv_post_code`, `adv_position_number`, `adv_salary_per_year`, `adv_start_date`, `adv_contract_type`) VALUES (NOW(), '$row', '$id_categorie', '$titre', '$description', '$desc_profil_recherche', '$entreprise', '$contact', '$mail', '$date_creation', '$date_modif', '$adresse', '$ville', '$localisation', '$code_postal', '$nbr_postes', '$salaire', '$debut_poste', '$type_contrat')") or die("Impossible d'envoyer la donnée dans la base. L'erreur est : " . mysql_error());
Merci
Partager