Problème: requête SQL passant des variables

Fermé
Thierry - 12 janv. 2004 à 16:45
 thierry - 12 janv. 2004 à 17:04
Bonjour,

J'ai un problème, je n'arrive pas à faire passer des variables dans une requête SQL via une page PHP.

J'ai remarqué qui si je donnais des valeurs réelles à la place des variables dans la requête de la page cela fonctionnait, mais cela n'est pas le cas quant c'est uniquement des variables. Dans le code que ci-dessous on peut remarquer que la première requête qui se trouvant en commentaires est celle qui fonctionne avec des valeurs réelles et la second est celle qui n'est pas en commentaire et c'est aussi celle-ci qui ne fonctionne pas. Les valeurs réelles ont été remplacées par des variables qui se trouvent dans la condition WHERE.

Il doit y avoir un problème avec les variables qui n'arrive pas à passer, pourtant je les ai déclaré juste avant de le faire la requête. Là, je ne comprends pas, elle devrait normalement passer. AU SECOURS.....

Voici le code de la page
<?

// déclaration des variables
$lieu = 'Crissier';
$endroitcamera = 'Escalator';
$nom = 'Migros';
$date_debut = '20031211';
$heure_debut = '090000';
$date_fin = '20031211';
$heure_fin = '090000';

// déclaration de variables pour la connexion
$db_user = 'xxx';
$db_pass = 'xxx';

// Connection à la BD et sélection de la base "limarho"
$connection = mysql_connect('localhost', $db_user, $db_pass) or
die(mysql_error());
mysql_select_db('limarho', $connection) or die(mysql_error());

//****************************************************
Cette requête fonctionne, mais j'ai du mettre à la place des variables($lieu, $endroitcamera, $nom, $date_debut, $heure_debut, $date_fin, $heure_fin) les valeurs réelles de ces variables.
//****************************************************
//$query3 = "INSERT INTO tmp (id_time_table,timedebut)
SELECT id_time_table,timestamp
FROM time_table
WHERE lieu = 'Crissier'
AND endroitcamera = 'Escalator'
AND nom = 'Migros'
AND timestamp
BETWEEN '20031211090000' AND '20031211100000'";
// Exécution de la requête mySQL
//mysql_query($query3, $connection) or die('error making query');


// Cette requête est celle ou des variables sont intégrer dedans
$query3 = "INSERT INTO tmp (id_time_table,timedebut)
SELECT id_time_table,timestamp
FROM time_table
WHERE lieu = '$lieu'
AND endroitcamera = '$endroitcamera'
AND nom = '$nom'
AND timestamp
BETWEEN '$date_debut.$heure_debut' AND '$date_fin.$heure_fin'";
// Exécution de la requête mySQL
mysql_query($query3, $connection) or die('error making query');

// on ferme la connexion
mysql_close();

?>

Merci d'avance pour votre aide, parce que là je suis en train de pêter un cable....

Thierry

3 réponses

Utilisateur anonyme
12 janv. 2004 à 16:53
$query3 = "INSERT INTO tmp (id_time_table,timedebut)
SELECT id_time_table,timestamp
FROM time_table
WHERE lieu = '" . $lieu . "'
cà irait peu-être ?
pas d'ambiguïté : lieu = doubles guillemets simple guillemet . $lieu . doubles guillemets simple guillemet
0
Utilisateur anonyme
12 janv. 2004 à 16:54
$query3 = "INSERT INTO tmp (id_time_table,timedebut)
SELECT id_time_table,timestamp
FROM time_table
WHERE lieu = '" . $lieu . "'
cà irait peu-être ?
pas d'ambiguïté : lieu = simple guillemet doubles guillemets . $lieu . doubles guillemets simple guillemets.
0
merci bcp,ça marche...

Cela faisait depuis ce matin 10 heures que je tournais mon code dans tous les sens pour le faire fonctionner.
0