Requetes variables contenant des variables

Eléphanteau du PHP | 24 Messages

29 mars 2007, 18:00

Bonjour,
J'ai ma page principale qui peut effectuer différentes requetes sur ma base.
En bref pour exemple ça fait :

Code : Tout sélectionner

if($_POST['song_titre']=='')$query=$query03; else $query=$query04;
J'ai codé dans un include les requetes que j'appel dans le head de ma page via un basique :

Code : Tout sélectionner

require 'requetes.php';
Ces requêtes donnent par exemple

Code : Tout sélectionner

$query03 = "select a.titre_id, a.mix_name, a.time, b.titre, b.id_titre from mixs a, titres b where a.time = '$duree_max' and a.titre_id = b.id_titre order by b.titre"; $query04 = "select a.titre_id, a.mix_name, a.time, b.titre, b.id_titre from mixs a, titres b where a.time = '$duree_max' and a.titre_id = b.id_titre and b.titre='$titre_select'";
Ca marche pas car j'ai une requête variable contenant bien sûr des variables par exemple :
Notice: Undefined variable: duree_max in c:\program files\easyphp1-8\www\dm\requetes.php on line 13
Comment faire ce genre de truc proprement ?
Merci.
Modifié en dernier par vincilian le 29 mars 2007, 21:43, modifié 1 fois.

Eléphant du PHP | 445 Messages

29 mars 2007, 18:29

Bonjour,
$query03 = "SELECT a.titre_id, a.mix_name, a.time, b.titre, b.id_titre
FROM mixs a, titres b
WHERE a.time = '".$duree_max."' AND a.titre_id = b.id_titre
ORDER BY b.titre";

$query04 = "SELECT a.titre_id, a.mix_name, a.time, b.titre, b.id_titre
FROM mixs a, titres b
WHERE a.time = '".$duree_max."' AND a.titre_id = b.id_titre AND b.titre='$titre_select'";
L'erreur indiquée est simplement que la variable $duree_max n'est pas défini.

Pour plus de clarté, préfère mettre les clauses SQL en majuscule.

En tout cas, il n'y a pas de raison que cela ne fonctionne pas...
LLDC
Ulti

Eléphanteau du PHP | 24 Messages

29 mars 2007, 19:40

Salut,
Ben j'avais déjà fait ce que tu me dis... ça marche pas plus...
j'ai tracé la requête par un echo ça me dit

Code : Tout sélectionner

select a.titre_id, a.mix_name, a.time, b.titre, b.id_titre from mixs a, titres b where a.time <= '' and a.time > '' and a.titre_id = b.id_titre order by b.titre
ça dit tjs :
Notice: Undefined variable: duree_max in e:\easyphp\easyphp1-8\www\dm\requetes.php on line 12
Mes variables sont blaches (='')!
Y'aurait pas une histoire de variables locales/globales...

Eléphanteau du PHP | 24 Messages

29 mars 2007, 21:42

Ok c'est résolu, y'avait juste un problème de variables non initialisées...
J'ai donc fait un init de l'ensemble des variables utilisées dans les divers requête à blanc dans l'include contenant les requêtes et ça fonctionne nickel...
merci Ultim4T0m.