Mouais, collections de mauvaises habitudes qui aboutissent toujours à ce genre de questionnement existentiel un peu stérile et surtout qui font perdre un temps considérable.
Reprenons à la base voulez-vous ? Partons de la requête SQL de départ et supposant que l'identifiant recherché soit par exemple 12. La requête sera donc :
SELECT * FROM affectation WHERE id_aff = 12
Bien, maintenant, si on veut affecter cette requête comme valeur d'une variable, on va encadrer le requête comme on ferait de n'importe quelle chaine de caractère :
$sql = "SELECT * FROM affectation WHERE id_aff = 12";
Notez au passage que j'ai encadré la chaine de caractère de guillemets et non d'apostrophes.
Remplaçons maintenant notre valeur « 12 » écrite en dur par une variable PHP. Les mauvaises habitudes feront écrire ceci :
$sql = "SELECT * FROM affectation WHERE id_aff = $id_aff";
Maintenant la bonne pratique : Nous avons une chaine de caractère, elle n'est pas interprétée par PHP, mais s'il y a une variable PHP et que la chaine est encadrée de guillemets et non d'apostrophes, une variable sera correctement interprétée. Prenez l'habitude
systématique de bien séparer le PHP de ce qui n'en est pas, donc :
$sql = "SELECT * FROM affectation WHERE id_aff = ". $id_aff;
Petit complément. Si la valeur de notre identifiant était une chaine de caractère et non un entier, par exemple «
douze », alors il faudrait écrire la requête SQL :
SELECT * FROM affectation WHERE id_aff = 'douze'
Ce qui donnerait en PHP :
$sql = "SELECT * FROM affectation WHERE id_aff = 'douze'";
Notez que comme j'ai encadré la chaine de caractère de guillemets et dans la requête SQL la valeur de l'identifiant à tester d'apostrophes, il n'y a pas de conflit.
Remplaçons enfin la valeur « douze » en dur par une variable :
$sql = "SELECT * FROM affectation WHERE id_aff = '". $id_aff ."'";
Voilà, là c'est propre, la coloration syntaxique des éditeurs ne se mélange pas les crayons et il n'y aura pas d'erreur à l'exécution.
On prend de bonnes habitudes et on se discipline ! Je repasse tout à l'heure pour ramasser les copies

Mouais, collections de mauvaises habitudes qui aboutissent toujours à ce genre de questionnement existentiel un peu stérile et surtout qui font perdre un temps considérable.
Reprenons à la base voulez-vous ? Partons de la requête SQL de départ et supposant que l'identifiant recherché soit par exemple 12. La requête sera donc :
[sql]SELECT * FROM affectation WHERE id_aff = 12[/sql]
Bien, maintenant, si on veut affecter cette requête comme valeur d'une variable, on va encadrer le requête comme on ferait de n'importe quelle chaine de caractère :
[php]$sql = "SELECT * FROM affectation WHERE id_aff = 12";[/php]
Notez au passage que j'ai encadré la chaine de caractère de guillemets et non d'apostrophes.
Remplaçons maintenant notre valeur « 12 » écrite en dur par une variable PHP. Les mauvaises habitudes feront écrire ceci :
[php]$sql = "SELECT * FROM affectation WHERE id_aff = $id_aff";[/php]
Maintenant la bonne pratique : Nous avons une chaine de caractère, elle n'est pas interprétée par PHP, mais s'il y a une variable PHP et que la chaine est encadrée de guillemets et non d'apostrophes, une variable sera correctement interprétée. Prenez l'habitude [u]systématique[/u] de bien séparer le PHP de ce qui n'en est pas, donc :
[php]$sql = "SELECT * FROM affectation WHERE id_aff = ". $id_aff;[/php]
Petit complément. Si la valeur de notre identifiant était une chaine de caractère et non un entier, par exemple « [i]douze[/i] », alors il faudrait écrire la requête SQL :
[sql]SELECT * FROM affectation WHERE id_aff = 'douze'[/sql]
Ce qui donnerait en PHP :
[php]$sql = "SELECT * FROM affectation WHERE id_aff = 'douze'";[/php]
Notez que comme j'ai encadré la chaine de caractère de guillemets et dans la requête SQL la valeur de l'identifiant à tester d'apostrophes, il n'y a pas de conflit.
Remplaçons enfin la valeur « douze » en dur par une variable :
[php]$sql = "SELECT * FROM affectation WHERE id_aff = '". $id_aff ."'";[/php]
Voilà, là c'est propre, la coloration syntaxique des éditeurs ne se mélange pas les crayons et il n'y aura pas d'erreur à l'exécution.
[u]On prend de bonnes habitudes et on se discipline[/u] ! Je repasse tout à l'heure pour ramasser les copies :mrgreen: