[RESOLU] affiche données d'une base de données avec une requête

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] affiche données d'une base de données avec une requête

Re: affiche données d'une base de données avec une requête

par elevedavid » 05 juil. 2023, 22:51

j'ai trouver la solution !!
encore merci de votre aide

Re: affiche données d'une base de données avec une requête

par or 1 » 01 juil. 2023, 23:51

echo 'SELECT infos_meteo_id, jour, ville, periode, resum, id_resume, temp_min, temp_max, commentaire FROM infos_meteo WHERE jour > "'.$day.'"';
cela affiche bien
SELECT infos_meteo_id, jour, ville, periode, resum, id_resume, temp_min, temp_max, commentaire FROM infos_meteo WHERE jour = 2100-12-05
???????????

Re: affiche données d'une base de données avec une requête

par elevedavid » 01 juil. 2023, 23:27

merci pour l'idée j'ai pas les bons reflexes....

voici ma requete :

SELECT infos_meteo_id, jour, ville, periode, resum, id_resume, temp_min, temp_max, commentaire FROM infos_meteo WHERE jour = 2100-12-05;

voici le message d'erreur :
Warning: #1292 Incorrect date value: '2083' for column 'jour' at row 1

voici ma requete en php
$day='2100-12-06';

$result = $mysqli->query('SELECT infos_meteo_id, jour, ville, periode, resum, id_resume, temp_min, temp_max, commentaire FROM infos_meteo WHERE jour > "'.$day.'"');

Re: affiche données d'une base de données avec une requête

par or 1 » 01 juil. 2023, 23:00

il faut afficher la requête sql et l'exécuter dans phpmyadmin pour savoir pourquoi la requête retourne une erreur.

Re: affiche données d'une base de données avec une requête

par elevedavid » 01 juil. 2023, 21:56

ayant un problème de Boolean j'ai modifier mon code mais toujours le même message d'erreur !!

est ce que le format d'une date dans un bdd est un string??

voici mon nouveau 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);
}




?>

<!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>

<?php
$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
$row = $result->fetch_array();
if ($row[0] <= 0)
{
    echo ' n\'est pas dans notre base.';
}   
else 
{
       
        $result = $mysqli->query('SELECT info_meteo_id, jour, ville, periode, resume, id_resume, temp_min, temps_max, commentaire FROM infos_meteo');
       
        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'];
        }
        
}

?>

    <ul>
        <?php foreach($jours as $info_meteo_id => $jour) : ?>
            <li> <?php echo $jour ?></li>
            <?php endforeach ?>
    </ul>
    
</body>
</html>

affiche données d'une base de données avec une requête

par elevedavid » 01 juil. 2023, 21:21

Bonjour,

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>