Ma requet SELECT ne fonctionne pas avec un AND
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:
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
Code:
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 |
Ca ne mearche plus.
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