8721 sujets

Développement web côté serveur, CMS

Bonsoir à tous,

J'ai la requête suivante qui fonctionne mais dont la syntaxe n'est pas propre et j'ai
beau tourner les ', les . ' et les " dans tous les sens je n'y arrive pas.
(Ce qui me gène, c'est le fait de devoir passer par une variable $x pour m'en sortir...)
Pouvez vous m'aider à la coder comme un pro ?


<?php
$x = $ingredient['ingredient_idaliment'];
$requete4 = mysql_query("SELECT aliment_nom FROM menu_aliments WHERE aliment_id = [b]'$x'[/b] ") or die(mysql_error());
$nom = mysql_fetch_array($requete4);
?>

Modifié par etienne69 (30 Oct 2014 - 22:24)
Salut,

Le mieux, côté lisibilité du code, est d'utiliser l'opérateur de concaténation, comme suit :
$q = 'SELECT aliment_nom FROM menu_aliments WHERE aliment_id = '.$x;


Soit dit en passant, oublie les fonctions mysql_* (), qui font d'une extension désormais obsolète, et ce depuis PHP 5.5, et regarde du côté de l'extension mysqli ou, mieux encore, de PDO : coder comme un pro, c'est aussi coder en étant le plus à jour possible du langage utilisé. Smiley cligne
Merci Victor pour ce bout de réponse...
Tu n'es pas le premier à me conseiller d’utiliser PDO, je vais y jeter un oeil, promis.

En attendant, je recherchais effectivement une solution avec une concaténation mais
aussi le moyen d'intégrer $x dans la requête en neutralisant les '
Je crois que l'on peut le faire avec des \ mais je ne trouve aucune info nulle part là dessus...

Un truc comme ce bout de code piqué ailleurs :
WHERE ip=\' ' . $_SERVER['REMOTE_ADDR'] . '\' ')