Bonjour,
Voici mon problème :
A chaque appel d'une API, je récupère 3 proverbes aléatoirement, avec les champs idproverbe et proverbe.
Je souhaite enregistrer dans une table, les proverbes qui ne sont pas encore présents dans cette table.
Comment comparer les idproverbe présents dans la table avec ceux que retourne l'API, de manière à enregistrer seulement les nouveaux proverbes ?
Je complète mon explication par le code que j'ai tenté de mettre en place.
Je vous remercie de votre aide.
Modifié par Agold (01 Nov 2018 - 12:31)
Voici mon problème :
A chaque appel d'une API, je récupère 3 proverbes aléatoirement, avec les champs idproverbe et proverbe.
Je souhaite enregistrer dans une table, les proverbes qui ne sont pas encore présents dans cette table.
Comment comparer les idproverbe présents dans la table avec ceux que retourne l'API, de manière à enregistrer seulement les nouveaux proverbes ?
Je complète mon explication par le code que j'ai tenté de mettre en place.
//Je commence par sélectionner les identifiants de proverbes déja présents dans la table.
$select = 'SELECT idproverbe FROM proverbes';
$res = mysqli_query($connexion, $select);
while ($data = mysqli_fetch_assoc($res))
{
$tousIdproverbe .= ''.$data['idproverbe'].',';
}
// Je les regroupe sous cette forme : 1547, 14565, 2145
$tousIdproverbe = substr($tousIdproverbe, 0, -1);
// Ensuite je récupère les infos provenant de mon API
$url = '... apis/export.php?num=3';
$json = file_get_contents($url);
$json_data = json_decode($json, true);
for ($i=1; $i<4; $i++) {
$fluxidproverbe = $json_data[$i]["idproverbe"];
$fluxproverbe = $json_data[$i]["proverbe"];
// C'est ici que j'ai un problème pour définir la manière de comparer les identifiants pour permettre ou non l'exécution de l'enregistrement dans la table
//J'ai tenté ceci sans succès:
$ids = Array($tousIdproverbe);
if (!in_array($fluxidproverbe, $ids) )
{
$sql = "INSERT INTO proverbes (id, idproverbe, proverbe) VALUES ('', '$fluxidproverbe', '$fluxproverbe')";
if (mysqli_query($connexion, $sql)) { echo "enregistrement effectué"; } else { echo "Erreur: " . mysqli_error($connexion); }
}
}
Je vous remercie de votre aide.
Modifié par Agold (01 Nov 2018 - 12:31)