j'ai un fichier csv que je dois enregistré dans une base de données, jusque la pas de soucis ça fonction.
Puis à partir de ma base de donner que dois afficher les données de la base de données en fonction de la date.
dans mon cas je dois faire apparaitre les données des deux journées suivantes.
j'ai un message d'erreur sur la ligne : while ($row = $result->fetch_array())
Fatal error: Uncaught Error: Call to a member function fetch_array() on bool in C:\code\projet_meteo\index.php on line 42
( ! ) Error: Call to a member function fetch_array() on bool in C:\code\projet_meteo\index.php on line 42
je ne comprend pas l'erreur vient elle que je veux faire la sélection dans ma base par rapport à une date? et que je fais une erreur de saisie.
merci de votre aide
voici mon code
<?php
//connexion erveur
$mysqli = new mysqli('localhost', 'root', '', 'bdd_meteo');
$mysqli->set_charset("utf8");
if ($mysqli->connect_errno) {
echo 'Echec de la connection' . $mysqli->connect_error;
exit();
}
//traitement des données csv pour les insérer dans la bdd
if (($handle = fopen("meteo.csv", "r")) !== FALSE)
{
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE)
{
$data_utf8=[];
foreach($data as $item_data)
{
$var=str_replace('é','e',$item_data);
$data_utf8[]=str_replace('è','e',$var);
}
$date = $data_utf8[0];
$ville = $data_utf8[1];
$periode = $data_utf8[2];
$resume = $data_utf8[3];
$id_resume = $data_utf8[4];
$temp_min = $data_utf8[5];
$temp_max = $data_utf8[6];
$commentaire = $data_utf8[7];
$mysqli->query('INSERT INTO infos_meteo (jour, ville, periode, resume, id_resume, temp_min, temp_max, commentaire)
VALUES ("'. $date .'" , "'. $ville .'" ,"'. $periode .'" , "'. $resume .'" , "'. $id_resume .'" , "'. $temp_min .'" , "'. $temp_max .'" , "'. $commentaire .'")');
}
fclose($handle);
}
$day='2100-12-05';
$result = $mysqli->query('SELECT info_meteo_id, jour, ville, periode, resume, id_resume, temp_min, temps_max, commentaire FROM infos_meteo WHERE jour > "'.$day.'"');
//création du nouvel array
while ($row = $result->fetch_array())
{
$jours[$row['info_meteo_id']] = $row['jour'];
$villes[$row['info_meteo_id']] = $row['ville'];
$periodes[$row['info_meteo_id']] = $row['periode'];
$id_resumes[$row['info_meteo_id']] = $row['id_resume'];
$temp_mins[$row['info_meteo_id']] = $row['temp_min'];
$temp_maxs[$row['info_meteo_id']] = $row['temp_max'];
$commentaires[$row['info_meteo_id']] = $row['commentaire'];
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<ul>
<?php foreach($jours as $info_meteo_id => $jour) : ?>
<li> <?php echo $jour ?></li>
<?php endforeach ?>
</ul>
</body>
</html>