Bonjour à tous,
Je m'embete avec un truc de bete.
Je fais une requete pour extraire des positions d'une base de donnée MySL. Je fais donc un select
Code PHP : 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 if(isset($_POST['h'])) { $hour = intval($_POST['h']); }else{ $hour = 1; } if(isset($_POST['devise_id'])) { $devise_id = $_POST['devise_id']; // J'ai aussi essayé avec intval() come pour l'heure }else{ $devise_id = 0; } try{ $conn = new PDO('mysql:host='.$cfg_db_host.';charset=utf8;dbname='.$cfg_db_db, $cfg_db_user , $cfg_db_password); } catch (Exception $e){echo json_encode(array("retour"=>'Erreur de connexion à la bdd', "e" => $e )); die();} $sql = 'SELECT * FROM positions WHERE devise_id LIKE 1 AND timestamp >= DATE_SUB(NOW(), INTERVAL '.$hour.' HOUR) ORDER BY timestamp ASC'; //$sql = 'SELECT * FROM positions WHERE devise_id LIKE '.$devise_id.' AND timestamp >= DATE_SUB(NOW(), INTERVAL '.$hour.' HOUR) ORDER BY timestamp ASC';
Comme indiqué ci-dessus, ca fonctionne.
En revanche que j'inverse mon sélect en décommentant la premiere
Ca ne mearche plus.
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // Premiere ligne: //$sql = 'SELECT * FROM positions WHERE devise_id LIKE 1 AND timestamp >= DATE_SUB(NOW(), INTERVAL '.$hour.' HOUR) ORDER BY timestamp ASC'; // Deuxième ligne: $sql = 'SELECT * FROM positions WHERE devise_id LIKE '.$devise_id.' AND timestamp >= DATE_SUB(NOW(), INTERVAL '.$hour.' HOUR) ORDER BY timestamp
Par exemple, j'ai des position enregistrée il y a 12 heures. Si hour prend la valeur de 12, il m'affiche qu'une seule position, alors que si je commente la deuxième ligne et décommente la premiere, comme avant, ca marche.
Qu'es-ce qu'il y a de faux dans mon $sql?
J'utlise sublime et il me colorise le texte pour distinguer le code
Il doit avoir un bug, car quand j'utilise ma deuxième ligne, le AND après '.$devise_id.', n'est plus rouge alors qu'il est dans ma premiere ligne
Merci pour votre avis
Partager