s'il vous plaît aidez-moi au sujet de cette requête:clause where jointure interne requête
function viewServices($userpno)
{
echo $userpno;
$this->query = "
SELECT task.employee_id , task.user_id , task.service_id, service.name AS servicename ,
service.description AS servicedescription, employee.name AS employeename, employee.pic_path AS employeepicture,
employee.pic_path
FROM task where task.user_id = '$userpno'
INNER JOIN employee ON employee.pno = task.employee_id
INNER JOIN user ON user.pno = task.user_id
INNER JOIN service ON service.service_id = task.service_id
";
}
La requête fonctionne parfaitement sans:
WHERE task.user_id = '$userpno'
J'ai essayé de cette façon aussi:
WHERE task.user_id = $userpno
Mais cela ne fonctionne pas.
L'erreur est:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\admin\classes\Task.php on line 22
S'il vous plaît me quide comment puis-je mettre la clause WHERE.
Saviez-vous ce que vous faites ici est une attaque potentielle d'injection SQL? Vous * devez * envoyer la valeur userpno via mysql_real_escape_string. Voir http://php.net/manual/fr/function.mysql-real-escape-string.php et http://en.wikipedia.org/wiki/SQL_injection. –
@ François Beausoleil Nous ne savons pas exactement d'où vient $ userpno, donc nous ne pouvons pas le dire avec certitude. Peut-être que cette fonction est passée directement par les ID utilisateur d'un autre résultat de requête. Mais si sa valeur provient d'une manière ou d'une autre de l'entrée de l'utilisateur, vous avez absolument raison. – Wiseguy