bonjour quelu'un peut m'expliquer cette requete ?
Code:SELECT s.* FROM (select @p1:='" . $a . "' p) parm ,client s WHERE id_client = '" . $idc . "' ")
surtout ce qui est entre les parenthèse
Version imprimable
bonjour quelu'un peut m'expliquer cette requete ?
Code:SELECT s.* FROM (select @p1:='" . $a . "' p) parm ,client s WHERE id_client = '" . $idc . "' ")
surtout ce qui est entre les parenthèse
là vous nous montrez une morceau de code qui construit une requête.
si vous voulez une information sur une requête il faudrait nous montrer la requête entière et créer la discussion dans le forum correspondant à la base de données utilisée.
DESOLEE la requete est claire pour moi ce que je n'ai pas compris c'est : FROM (select @p1:='" . $a . "' p) parm
Bonjour,
Là, il s'agit manifestement d'une requête SELECT imbriquée (SQL Sous-requête) dans un autre SELECT.Code:(select @p1:='" . $a . "' p)
De là à savoir exactement ce que ça fait...
A priori, ça sélectionne une table définie par $a (?), et à laquelle on attribue l'alias "p".
du genre :
CELA DIT... il n'y a pas de virgule avant " parm ," ce qui est étrange...Code:(SELECT @p1:=XXXX AS p)
mais apparemment client c'est une vue, si c'est le cas cela veut dire quoi ?
le P1 ca doit etre ou ?Code:
1
2
3
4
5
6
7
8
9
10
11
12 /*!50001 DROP TABLE IF EXISTS `client`*/; /*!50001 DROP VIEW IF EXISTS `client`*/; /*!50001 SET @saved_cs_client = @@character_set_client */; /*!50001 SET @saved_cs_results = @@character_set_results */; /*!50001 SET @saved_col_connection = @@collation_connection */; /*!50001 SET character_set_client = utf8mb4 */; /*!50001 SET character_set_results = utf8mb4 */; /*!50001 SET collation_connection = utf8mb4_unicode_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ /*!50001 VIEW `client` AS select............= `P1`())..
je bloque...
Oui on a une vue qui s'appelle "client".Citation:
mais apparemment client c'est une vue
Je ne sais pas ce que signifie ceci :
... et je ne suis pas sûr qu'il y ait un rapport entre @p1 et `P1`(). Il faudrait un peu plus que des bouts de SQL pour voir ce qui se trame.Code:/*!50001 VIEW `client` AS select............= `P1`())..
Je ne comprends pas la question.Citation:
le P1 ca doit etre ou ?
P1 c'est une function dans la BD
au niveau du code php j'ai :
Code:select s.* from (select @p1:='" . $h. "' p) parm ,viewclient s WHERE id_client = '" . $user->id_client . "'
au niveau du view ily a :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 -- -- Final view structure for view `client` -- /*!50001 DROP TABLE IF EXISTS `client`*/; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ /*!50001 VIEW `client` AS select '' ....idColi` = `P1`()) */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; --
donc a votre avis la fonction P1 comment ca va etre définie
Tu peux retrouver les définitions de fonction du fichier en y cherchant la mention "FUNCTION"Citation:
donc a votre avis la fonction P1 comment ca va etre définie
Pour voir ce que contient P1(), tu peux exécuter sur ta console SQL :
Code:SHOW CREATE FUNCTION P1;
je n'ai pas cette function je veux la créer
cette function doit passer un parametre a une vue
et elle s'appelle comme ca P1()
et dans le code elle les appelle comme ca :vue :Code:select s.* from (select @p1:='" . $idColis. "' p) parm
je veux deduire son codeCode:/*!50001 VIEW `client` AS select............= `P1`())..
parce que on ne peux pas passer des parametre a une vue donc ils ont utilisé cette fonction
son but est lui retourné une seule donnée
donc je deduit que P1 est select idcolis from matablequejeconnais
desolée pour cette saladeCode:je ne comprend pas ca (select @p1:='" . $idColis. "' p est ce qu'il spécifie les parametre ou quoi ?
On ne passe pas de paramètre à une vue.Citation:
cette function doit passer un parametre a une vue
=> https://www.developpez.net/forums/d2...etre-view-sql/
Je ne vois pas d'appel de fonction ici, et ni de vue.Citation:
et elle s'appelle comme ca P1()
et dans le code elle les appelle comme ca :Code:select s.* from (select @p1:='" . $idColis. "' p) parm
Je ne sais pas ce que tu veux faire ici. Tu caches ton code et tu ne dis pas ce que tu veux faire au final.Citation:
vue :
Code:/*!50001 VIEW `client` AS select............= `P1`())..
Elle fait quoi cette fonction ?Citation:
je veux deduire son code
À moins de savoir précisément ce qu'on fait, ce n'est pas une bonne idée, généralement, de mettre des requêtes dans une fonction.Citation:
parce que on ne peux pas passer des parametre a une vue donc ils ont utilisé cette fonction
P1() existe encore ? Plutôt que "déduire" son contenu tu peux le consulter, comme indiqué plus haut.Citation:
son but est lui retourné une seule donnée
donc je deduit que P1 est select idcolis from matablequejeconnais
Dis-nous plutôt ce que tu veux au final. J'ai l'impression de jouer aux devinettes sur un problème très mal exprimé :mouarf:
la fonction P1 je ne l'ai pas sur mon code je dois la définir pour faire exécuter la vue
Et sur le serveur SQL ? Elle y est ?Citation:
la fonction P1 je ne l'ai pas sur mon code
C'est signe de mauvaise modélisation.Citation:
je dois la définir pour faire exécuter la vue
oui sur le serveur elle existe mais maintenant je n'ai pas le serveur en main je dois doit faire mes test avant lundi