La syntaxe SQL permet-elle plusieurs mots-clefs dans une (sous-)requête identique ?

WRInaute accro
Bonjour

Je termine ma version de l'ORM Eloquent.

Actuellement, j'ai deux boucles imbriquées, que j'aimerais réduire à une boucle ( O(n) ).

D'après la syntaxe SQL, est-il possible de mettre au moins 2 tokens identiques ( par ex. WHERE, ou bien SELECT, etc.. ) dans la même requête SQL, ceci dans la même requête ( ou sous-requête ) ?

Evidemment, pour deux requêtes SQL imbriquées c'est possible, mais à l'intérieur d'une même sous-requête ou requête ?

Si c'est impossible, celà me permettrait d'avoir une logique en O(n). ;)

Merci beaucoup de vos réponses.
 
WRInaute accro
Pardon Bossboss

Par "boucles", j'entendais des boucles du type :
Code:
 for($i = 0; $i <= $i_max; $i++){ for($j = 0; $j <= $j_max; $j++){ /* Le code PHP  */}  }

Je travaille ce moment, ( s'il on peut appeler çà un travail ), sur une implémentation personnelle de l'ORM Eloquent en PHP.

Il s'agit purement et simplement, de la syntaxe d'une instruction MySQL brute ( pas Eloquent ).

Cette syntaxe, autorise-t-elle le même token identique ( exemple WHERE , ou bien SELECT, ou autre... ), plus que une fois par profondeur de sous-requête ?

Par exemple, pour une requête simple ( sans sous-requête ) :

Code:
  SELECT `Column1`, `Column2` FROM `Table` WHERE `Id`=value;

Est-ce qu'il se pourrait, que soit un SELECT, soit un WHERE, apparaisse plusieurs fois dans la même instruction MySQL, et ( évidemment ), dans la même requête, ( ou bien ) dans la même sous-requête ?

Je dis pour l'un ou l'autre de ces token, mais ma question est valable pour n'importe quel token MySQL.

Pour spout ;) : Mon ORM est quasiment fait, je termine les closures et la prise en compte MySQL.

Merci beaucoup de ton aide.
 
WRInaute passionné
Je ne comprends pas ce que tu cherches, s'il y a 2 SELECT par exemple, c'est forcément que l'une est une sous-requête de l'autre. SELECT Truc, (SELECT * FROM table2) FROM table1;...
Ou alors un UNION entre 2 requêtes SELECT...
Mais en mettre 2 dans une requête, pour quoi faire ? Quel est ton but ? Les mot-clés SELECT/FROM/WHERE/etc... ne peuvent être qu'une seule fois dans une requête, c'est qu'il n'y a pas de raison qu'ils y soient plusieurs fois...
 
WRInaute accro
Bonjour Rick38

C'est super, tu m'apporte la réponse que je cherchais. ;)

Je vais pouvoir faire une bijection de l'ordre des tokens rencontrés ( dans Eloquent ), à l'ordre des tokens de l'instruction MySQL produite.

Donc, à chaque fois qu'un token Eloquent ( $token ) est rencontré, j'incrémente $this->indice, puis je fais :
Code:
 $this->index[$this->indiceSubQuery][$token] = $this->indice;

J'alimente $this->arrayArgs[$this->indiceSubQuery][$token][$this->indice] d'après les arguments de la fonction $token().

Au moment de la reconstruction du MySQL résultant, je ferai :

Code:
  /*
   * TABLE ( tous les tokens Eloquent  ),
   *  sont des const de 0 ( TABLE ) à 52 ( GET ).
   *
   * L'ordre définit l'ordre séquentiel
   * d'apparition des tokens
   * du MySQL résultant. 
   */
  for($key = self::TABLE; $key <= self::GET; $key++)
  {
      $tmp_indice = $this->index[$this->indiceSubQuery][$key];

     /*
      *   Utilisation des variables enregistrées dans : $arrayArgs[$this->indiceSubQuery][$key][$tmp_indice]
      * ( si différent de null ). 
      */

  }


Comme celà, j'ai une boucle au lieu de deux boucles imbriquées.

Merci beaucoup de ton aide !

Respectueusement.
 
WRInaute accro
Et voilà ;)

Code:
        Syntaxe Eloquent :
        ****************

        $connexion->TABLE('CHEVAUX')
                        ->SELECT(['NUMCH', 'NOMCH'])
                        ->WHERE_BETWEEN(
                        ['NUMCH', [1000, 1010]]
                        ->GET()


      Syntaxe Eloquent interprétée :
      ****************************

                TABLE(CHEVAUX)
                ->SELECT `NUMCH`, `NOMCH`
                ->WHERE `NUMCH` BETWEEN 1000 AND 1010

      Résultat :
      ********

Array
(
    [0] => Array
        (
            [NUMCH] => 1000
            [NOMCH] => NENDI
        )

    [1] => Array
        (
            [NUMCH] => 1001
            [NOMCH] => COLONEL:DzORENS
        )

    [2] => Array
        (
            [NUMCH] => 1002
            [NOMCH] => PATIENT
        )

    [3] => Array
        (
            [NUMCH] => 1003
            [NOMCH] => PANACHE:DzHA
        )

    [4] => Array
        (
            [NUMCH] => 1004
            [NOMCH] => PICSOU:DE:LA:FARGE
        )

    [5] => Array
        (
            [NUMCH] => 1005
            [NOMCH] => ORLYHEART
        )

    [6] => Array
        (
            [NUMCH] => 1006
            [NOMCH] => TON:JEU
        )

    [7] => Array
        (
            [NUMCH] => 1007
            [NOMCH] => GIANCARLO
        )

    [8] => Array
        (
            [NUMCH] => 1008
            [NOMCH] => TIME:FOR:PADDY
        )

    [9] => Array
        (
            [NUMCH] => 1009
            [NOMCH] => FORLIPRAL:(SPA)
        )

    [10] => Array
        (
            [NUMCH] => 1010
            [NOMCH] => HILLRIYA
        )

)
 
WRInaute accro
Bonjour

J'ai tout fait, sauf les fonctions When() ( WHEN() dans mon ORM ) .

J'ai testé les choses suivantes :

Avec GET() ou CHUNK() , et WHERE avec OR_WHERE ( sous-requête avec Closure et deux WHERE ), et LIMIT 5,

Avec INSERT() et WHERE(),

Avec UPDATE() et WHERE(),

Avec DELETE() et WHERE().

Les sous-requêtes ont l'air de fonctionner, avec une seule fonction ( récursive ) qui produit le SQL classique à partir de la syntaxe de départ Eloquent, et rend cette instruction SQL.

Les deux seuls prérequis : Mettre TABLE() au début, et les instructions de lecture ( GET() | FIRST() | PLUCK() | CHUNK() ) ou d'écriture-modification ( INSERT() | INSERT_GET_ID() | REPLACE() | REPLACE_GET_ID() | UPDATE() ) à la fin de l'instruction PHP Eloquent.

Ceci, parce que ces fonctions déclenchent la fonction CONSTRUCT_SQL($indiceQuery = 0) , qui rend le SQL.

Les autres fonctions, peuvent être mises dans n'importe quel ordre.

Je vais tester soigneusement, et prochainement proposer une interface sur mon site, pour tester toutes les possibilités de la syntaxe Eloquent.

Il sera possible, d'entrer dans un champ de saisie le code Eloquent ( n'importe lequel ) , puis appui sur Enter, puis affichage du SQL.

Ce devrait être prêt dans une semaine.

Bien amicalement.

Jean François Ortolo
 
WRInaute accro
Bonjour

Pour l'interface de test, je n'arrive pas à déclencher l'instruction Eloquent, avec le handle de la classe Database pointant sur l'instruction Eloquent.

Je dispose d'une simple chaîne de caractères ( transmise par $_POST ) genre :

$sql = "TABLE('CHEVAUX')->SELECT['NUMCH', 'NOMH'])->WHERE('NUMCH', 1000)->GET();"

Je voudrais déclencher :

$connexion = newDatabase('');

echo $connexion->$sql;

Que ce soit en direct ou avec passthru() , exec(), shell_exec() ou eval() ou les guillemets obliques rien à faire, il me rejette.

C'est pour l'interface de test promise dans mon précédent message.

Je ne sais pas quoi faire.

Merci beaucoup de votre aide.

Respectueusement.
 
WRInaute accro
Rebonjour

Help, help, je n'arrive pas à rabouter le handle de la classe Database(""), à la chaîne ( en $_GET ), contenant les fonctions Eloquent.


Code:
$sql = "TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMH')->WHERE('NUMCH', 1000)->GET();"

 /*
  * Essai 1 :
  */

  $connexion = new Database("");  // Fonctionne, connexion avec ma database locale "turf".

  echo $connexion->$sql;       // Me rejette, $connexion est un objet, $sql une string. 


 /*
  *  Essai 2 :
  */
 $connexion = new Database("");  // Fonctionne, connexion avec ma database locale "turf".

  echo `$connexion->$sql`;       //  Pas d'erreur,  rien ne n'affiche. 

  /*
  * Essai 3 :
  */

 passthru('/usr/bin/php -R $connexion = new Database(""); $connexion->$sql; 2>&1');

  /*
  Résultat :
Catchable fatal error: Object of class Database could not be converted to string in /var/www/html/Eloquent/interface_orm.php on line 5749     

  Même chose pour exec() et shell_exec().
  */

Que faire ?

Merci.
 
WRInaute accro
Bonjour

Je suis en train de faire un mini mini compilateur de l'instruction Eloquent, mettant les fonctions et arguments dans des array.

Ceci, pour pouvoir déclencher l'instruction Eloquent, à partir de la variable $sql rendue en GET par mon formulaire de test.

Théoriquement, par exemple avec :

Code:
  $func = array("TABLE", "SELECT", "WHERE", "GET");

  $args = array("'CHEVAUX'", array('NUMCH', 'NOMCH'), array('NUMCH', 2000), null);

  $tmp_count = count($func);

 /*
  * Là, il y a $tmp_count = 4 fonctions, et deux arguments par fonction.
  */

  $conn = new Database("");

  echo $conn->$func[0]($args[0])->$func[1]($args[1][0], $args[1,1])->$func[2]($args[2][0], $args[2,1])->$func[3]();


Là mes questions :

1) Ce procédé fonctionne-t-il ?

2) Comment automatiser les différentes valeurs de $tmp_count et de nombres d'arguments ?

J'ai déjà prévu le cas des arrays dans les arguments, pour l'instant je dispose ( pas testé ), des $func, $args, et je suis capable d'affecter les arguments sous forme d'array.

Merci beaucoup de vos réponses.

Amicalement.
 
WRInaute accro
Hé bé

C'est seulement pour les tests.

J'ai fait un micro compilateur, qui traduise le champ de saisie ( syntaxe Eloquent ) , en instruction Eloquent pouvant passer à la moulinette de mon ORM.

Tous les tokens sont dans des variables indicées, je peux m'en servir pour déclencher les fonctions de manière dynamique.


Voici ce que celà donne pour l'instant :

Avant interprétation = tel que inscrit dans le champ de saisie.

Après interprétation ( string ) = après passage au compilateur, en essayant de traduire les array en chaînes de caractères.

Après interprétation ( array ) = après passage au compilateur, prêt théoriquement ( pas testé ) à être interprété par mon ORM.

La difficulté, provient de prévoir tous les cas, je ferai plus de tests demain.

En même temps que les tests, j'essaierai de passer la version interprétée array à mon ORM, en le configurant pour qu'il exécute les sql résultants.

Je me demande seulement, si ce sera possible de faire plusieurs requêtes indépendantes dans des boucles imbriquées.

Ceci, avec des CHUNK() en boucle externe.

Code:
/*
 * Champ de saisie tel quel.
 */
Instruction Eloquent avant interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE(['NUMCH', 30])->GET()

/*
 * Après passage au compilateur, version string.
 */
Instruction Eloquent ( string ) après interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE('NUMCH', 30)->GET()

/*
 * Après passage au compilateur, version array.
 */
Instruction Eloquent ( array ) après interprétation : TABLE('CHEVAUX')=>SELECT('NUMCH', 'NOMCH')=>WHERE(Array ( [0] => 'NUMCH' [1] => 30 ) =>GET()

Je sais que la syntaxe présentée est fausse pour le WHERE, mais çà marche comme celà pour toutes les fonctions.

Merci me dire ce que vous en pensez.

Respectueusement.
 
WRInaute accro
Rebonjour

Suis en train de me colleter avec les index des arrays paramètres des fonctions Eloquent pour le formulaire de test.

Quasiment fini ce formulaire de test

Vais dormir un peu, car trop de soirée après 11h c'est pas terrible. ;)

Sur le plan technique, c'est du petit data-mining ou du finite state machine, mais je récupère d'abord.

Excusez-moi de l'attente avant de mettre le formulaire de test sur mon site.

Respectueusement.
 
WRInaute accro
Dur, dur...

Voilà le résultat pour faire des instructions Eloquent exécutables à partir d'énoncés sous forme de chaînes de caractères :

Je n'ai pas encore testé de passer les résultats interprétables à la moulinette de mon orm.

Pour l'instant, je cherche à corriger les keys des arrays résultantes, là où c'est nécessaire : ( INSERT, UPDATE , etc... ).

Je vais tester pour la fonction CHUNK() prochainement.

En effet cette fonction contient un premier paramètre plat ( nombres de lignes des boucles ), et une Closure ( fonction anonyme ), je ne vois pas comment la reproduire sous forme exécutable ( pour les tests ).

Ceci, en vue de vous présenter ce formulaire de saisie sur mon site , pour que vous testiez mon orm.

Merci de vos suggestions.


Code:
	Instruction Eloquent 1 avant interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE('NUMCH', 2000)->GET()

	Instruction Eloquent 1 ( string ) après interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE('NUMCH', 2000)->GET()

	Instruction Eloquent 1 ( array ) interprétable : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE('NUMCH', 2000)->GET()



	Instruction Eloquent 2 avant interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE([['NUMCH', '>', 2000],['NOMCH', 'LIKE', 'C%']])->GET()

	Instruction Eloquent 2 ( string ) après interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE([['NUMCH', '>', 2000],['NOMCH', 'LIKE', 'C%']])->GET()

	Instruction Eloquent 2 ( array ) interprétable : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE(Array
(
    [0] => Array
        (
            [0] => 'NUMCH'
            [1] => '>'
            [2] => 2000
        )

    [1] => Array
        (
            [0] => 'NOMCH'
            [1] => 'LIKE'
            [2] => 'C%'
        )

)
->GET()


	Instruction Eloquent 3 avant interprétation : TABLE('CHEVAUX')->INSERT(['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'])

	Instruction Eloquent 3 ( string ) après interprétation : TABLE('CHEVAUX')->INSERT(['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'])

	Instruction Eloquent 3 ( array ) interprétable : TABLE('CHEVAUX')->INSERT(Array
(
    [0] => Array
        (
            [0] => 'NUMCH' => 2300
            [1] => 'NOMCH' => 'APLUSBEGALIX1'
        )

)


	Instruction Eloquent 4 avant interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2']])

	Instruction Eloquent 4 ( string ) après interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2']])

	Instruction Eloquent 4 ( array ) interprétable : TABLE('CHEVAUX')->INSERT(Array
(
    [0] => Array
        (
            [0] => 'NUMCH' => 2300
            [1] => 'NOMCH' => 'APLUSBEGALIX1'
        )

    [1] => Array
        (
            [0] => 'NUMCH' => 2301
            [1] => 'NOMCH' => 'APLUSBEGALIX2'
        )

)


	Instruction Eloquent 5 avant interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2'],['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX3']])

	Instruction Eloquent 5 ( string ) après interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2'],['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX3']])

	Instruction Eloquent 5 ( array ) interprétable : TABLE('CHEVAUX')->INSERT(Array
(
    [0] => Array
        (
            [0] => 'NUMCH' => 2300
            [1] => 'NOMCH' => 'APLUSBEGALIX1'
        )

    [1] => Array
        (
            [0] => 'NUMCH' => 2301
            [1] => 'NOMCH' => 'APLUSBEGALIX2'
        )

    [2] => Array
        (
            [0] => 'NUMCH' => 2302
            [1] => 'NOMCH' => 'APLUSBEGALIX3'
        )

)


	Instruction Eloquent 6 avant interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2'],['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX3'],['NUMCH' => 2303, 'NOMCH' => 'APLUSBEGALIXr4']])

	Instruction Eloquent 6 ( string ) après interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2'],['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX3'],['NUMCH' => 2303, 'NOMCH' => 'APLUSBEGALIXr4']])

	Instruction Eloquent 6 ( array ) interprétable : TABLE('CHEVAUX')->INSERT(Array
(
    [0] => Array
        (
            [0] => 'NUMCH' => 2300
            [1] => 'NOMCH' => 'APLUSBEGALIX1'
        )

    [1] => Array
        (
            [0] => 'NUMCH' => 2301
            [1] => 'NOMCH' => 'APLUSBEGALIX2'
        )

    [2] => Array
        (
            [0] => 'NUMCH' => 2302
            [1] => 'NOMCH' => 'APLUSBEGALIX3'
        )

    [3] => Array
        (
            [0] => 'NUMCH' => 2303
            [1] => 'NOMCH' => 'APLUSBEGALIXr4'
        )

)


	Instruction Eloquent 7 avant interprétation : TABLE('CHEVAUX')->WHERE('NUMCH', 2000)->UPDATE(['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX1'])

	Instruction Eloquent 7 ( string ) après interprétation : TABLE('CHEVAUX')->WHERE('NUMCH', 2000)->UPDATE(['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX1'])

	Instruction Eloquent 7 ( array ) interprétable : TABLE('CHEVAUX')->WHERE('NUMCH', 2000)->UPDATE(Array
(
    [0] => Array
        (
            [0] => 'NUMCH' => 2302
            [1] => 'NOMCH' => 'APLUSBEGALIX1'
        )

)
 
WRInaute accro
Bonjour

J'ai corrigé les keys des arrays.

Merci de me dire si les keys comportent des erreurs.

Pour la fonction CHUNK(), ( et en général pour les fonctions comportant une Closure : WHERE, WHEN ( pas encore fait ) ), je ne vois pas comment donner la possibilité de tester.

Sinon, je vais tester la possibilité d'exécuter les codes exécutables ci-dessous, le plus tôt possible.


Code:
	Instruction Eloquent 1 avant interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE('NUMCH', 2000)->GET()

	Instruction Eloquent 1 ( string ) après interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE('NUMCH', 2000)->GET()

	Instruction Eloquent 1 ( array ) après interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE('NUMCH', 2000)->GET()

	Instruction Eloquent 1 ( array ) interprétable : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE('NUMCH', 2000)->GET()



	Instruction Eloquent 2 avant interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE([['NUMCH', '>', 2000],['NOMCH', 'LIKE', 'C%']])->GET()

	Instruction Eloquent 2 ( string ) après interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE([['NUMCH', '>', 2000],['NOMCH', 'LIKE', 'C%']])->GET()

	Instruction Eloquent 2 ( array ) interprétable : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE(Array
(
    [0] => Array
        (
            [0] => 'NUMCH'
            [1] => '>'
            [2] => 2000
        )

    [1] => Array
        (
            [0] => 'NOMCH'
            [1] => 'LIKE'
            [2] => 'C%'
        )

)
->GET()



	Instruction Eloquent 3 avant interprétation : TABLE('CHEVAUX')->INSERT(['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'])

	Instruction Eloquent 3 ( string ) après interprétation : TABLE('CHEVAUX')->INSERT(['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'])

	Instruction Eloquent 3 ( array ) interprétable : TABLE('CHEVAUX')->INSERT(Array
(
    [0] => Array
        (
            ['NUMCH'] => 2300
            ['NOMCH'] => 'APLUSBEGALIX1'
        )

)




	Instruction Eloquent 4 avant interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2']])

	Instruction Eloquent 4 ( string ) après interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2']])

	Instruction Eloquent 4 ( array ) interprétable : TABLE('CHEVAUX')->INSERT(Array
(
    [0] => Array
        (
            ['NUMCH'] => 2300
            ['NOMCH'] => 'APLUSBEGALIX1'
        )

    [1] => Array
        (
            ['NUMCH'] => 2301
            ['NOMCH'] => 'APLUSBEGALIX2'
        )

)




	Instruction Eloquent 5 avant interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2'],['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX3']])

	Instruction Eloquent 5 ( string ) après interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2'],['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX3']])

	Instruction Eloquent 5 ( array ) interprétable : TABLE('CHEVAUX')->INSERT(Array
(
    [0] => Array
        (
            ['NUMCH'] => 2300
            ['NOMCH'] => 'APLUSBEGALIX1'
        )

    [1] => Array
        (
            ['NUMCH'] => 2301
            ['NOMCH'] => 'APLUSBEGALIX2'
        )

    [2] => Array
        (
            ['NUMCH'] => 2302
            ['NOMCH'] => 'APLUSBEGALIX3'
        )

)




	Instruction Eloquent 6 avant interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2'],['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX3'],['NUMCH' => 2303, 'NOMCH' => 'APLUSBEGALIXr4']])

	Instruction Eloquent 6 ( string ) après interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2'],['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX3'],['NUMCH' => 2303, 'NOMCH' => 'APLUSBEGALIXr4']])

	Instruction Eloquent 6 ( array ) interprétable : TABLE('CHEVAUX')->INSERT(Array
(
    [0] => Array
        (
            ['NUMCH'] => 2300
            ['NOMCH'] => 'APLUSBEGALIX1'
        )

    [1] => Array
        (
            ['NUMCH'] => 2301
            ['NOMCH'] => 'APLUSBEGALIX2'
        )

    [2] => Array
        (
            ['NUMCH'] => 2302
            ['NOMCH'] => 'APLUSBEGALIX3'
        )

    [3] => Array
        (
            ['NUMCH'] => 2303
            ['NOMCH'] => 'APLUSBEGALIXr4'
        )

)




	Instruction Eloquent 7 avant interprétation : TABLE('CHEVAUX')->WHERE('NUMCH', 2000)->UPDATE(['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX1'])

	Instruction Eloquent 7 ( string ) après interprétation : TABLE('CHEVAUX')->WHERE('NUMCH', 2000)->UPDATE(['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX1'])

	Instruction Eloquent 7 ( array ) interprétable : TABLE('CHEVAUX')->WHERE('NUMCH', 2000)->UPDATE(Array
(
    [0] => Array
        (
            ['NUMCH'] => 2302
            ['NOMCH'] => 'APLUSBEGALIX1'
        )

)


Merci beaucoup de votre aide.

Très respectueusement.
 
WRInaute accro
Rebond

J'ai corrigé le problème de la parenthèse fermante.

Merci de m'indiquer toutes les erreurs ayant pu se glisser dans ces arrays ci-dessous.

Je vais vérifier la possibilité d'exécuter le code résultant dès ce matin.

Amicalement.

Code:
	Instruction Eloquent 1 avant interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE('NUMCH', 2000)->GET()

	Instruction Eloquent 1 ( string ) après interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE('NUMCH', 2000)->GET()

	Instruction Eloquent 1 ( array ) interprétable : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE('NUMCH', 2000)->GET()



	Instruction Eloquent 2 avant interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE([['NUMCH', '>', 2000],['NOMCH', 'LIKE', 'C%']])->GET()

	Instruction Eloquent 2 ( string ) après interprétation : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE([['NUMCH', '>', 2000],['NOMCH', 'LIKE', 'C%']])->GET()

	Instruction Eloquent 2 ( array ) interprétable : TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE(Array
(
    [0] => Array
        (
            [0] => 'NUMCH'
            [1] => '>'
            [2] => 2000
        )

    [1] => Array
        (
            [0] => 'NOMCH'
            [1] => 'LIKE'
            [2] => 'C%'
        )

)
)->GET()



	Instruction Eloquent 3 avant interprétation : TABLE('CHEVAUX')->INSERT(['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'])

	Instruction Eloquent 3 ( string ) après interprétation : TABLE('CHEVAUX')->INSERT(['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'])

	Instruction Eloquent 3 ( array ) interprétable : TABLE('CHEVAUX')->INSERT(Array
(
    ['NUMCH'] => 2300
    ['NOMCH'] => 'APLUSBEGALIX1'
)
)



	Instruction Eloquent 4 avant interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2']])

	Instruction Eloquent 4 ( string ) après interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2']])

	Instruction Eloquent 4 ( array ) interprétable : TABLE('CHEVAUX')->INSERT(Array
(
    [0] => Array
        (
            ['NUMCH'] => 2300
            ['NOMCH'] => 'APLUSBEGALIX1'
        )

    [1] => Array
        (
            ['NUMCH'] => 2301
            ['NOMCH'] => 'APLUSBEGALIX2'
        )

)
)



	Instruction Eloquent 5 avant interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2'],['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX3']])

	Instruction Eloquent 5 ( string ) après interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2'],['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX3']])

	Instruction Eloquent 5 ( array ) interprétable : TABLE('CHEVAUX')->INSERT(Array
(
    [0] => Array
        (
            ['NUMCH'] => 2300
            ['NOMCH'] => 'APLUSBEGALIX1'
        )

    [1] => Array
        (
            ['NUMCH'] => 2301
            ['NOMCH'] => 'APLUSBEGALIX2'
        )

    [2] => Array
        (
            ['NUMCH'] => 2302
            ['NOMCH'] => 'APLUSBEGALIX3'
        )

)
)



	Instruction Eloquent 6 avant interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2'],['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX3'],['NUMCH' => 2303, 'NOMCH' => 'APLUSBEGALIX4']])

	Instruction Eloquent 6 ( string ) après interprétation : TABLE('CHEVAUX')->INSERT([['NUMCH' => 2300, 'NOMCH' => 'APLUSBEGALIX1'],['NUMCH' => 2301, 'NOMCH' => 'APLUSBEGALIX2'],['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX3'],['NUMCH' => 2303, 'NOMCH' => 'APLUSBEGALIX4']])

	Instruction Eloquent 6 ( array ) interprétable : TABLE('CHEVAUX')->INSERT(Array
(
    [0] => Array
        (
            ['NUMCH'] => 2300
            ['NOMCH'] => 'APLUSBEGALIX1'
        )

    [1] => Array
        (
            ['NUMCH'] => 2301
            ['NOMCH'] => 'APLUSBEGALIX2'
        )

    [2] => Array
        (
            ['NUMCH'] => 2302
            ['NOMCH'] => 'APLUSBEGALIX3'
        )

    [3] => Array
        (
            ['NUMCH'] => 2303
            ['NOMCH'] => 'APLUSBEGALIX4'
        )

)
)



	Instruction Eloquent 7 avant interprétation : TABLE('CHEVAUX')->WHERE('NUMCH', 2000)->UPDATE(['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX1'])

	Instruction Eloquent 7 ( string ) après interprétation : TABLE('CHEVAUX')->WHERE('NUMCH', 2000)->UPDATE(['NUMCH' => 2302, 'NOMCH' => 'APLUSBEGALIX1'])

	Instruction Eloquent 7 ( array ) interprétable : TABLE('CHEVAUX')->WHERE('NUMCH', 2000)->UPDATE(Array
(
    ['NUMCH'] => 2302
    ['NOMCH'] => 'APLUSBEGALIX1'
)
)
 
WRInaute accro
Bonjour

Cà marche en mettant les variables indicées "en dur" dans l'instruction Eloquent envoyée à mon orm.

Par exemple :

Code:
  // Ce code est fait automatiquement.
 
  $func1 = 'TABLE';
  $func2 = 'SELECT';
  $func3 = 'WHERE';
  $func4 = 'GET';

  $arg11 = 'CHEVAUX';

  $arg21 = 'NUMCH';
  $arg22 = 'NOMCH';

  $arg31 = 'NUMCH';
  $arg32 = 2000;

 //  Et voici l'instruction   Eloquent exécutable :

  $conn = new Database("");

  $conn->$func1($arg11)->$func2($arg21, $arg22)->$func3($arg21, $arg32)->$func4();

Cà marche, mais en dur, en fonction des nombres de paramètres par fonction.


Voici ma question :

Pour automatiser la mise en forme de l'ordre Eloquent, j'ai besoin de pouvoir appeler une fonction en spécifiant un nombre variable de paramètres.

Comment fait-on dans ce cas ?

Super merci pour votre réponse.

Respectueusement.
 
WRInaute accro
Bonjour

Le problème du nombre variable de paramètres a été résolu avec l'aide du site http://www.hardware.fr

Je n'ai pas encore testé d'exécuter ce que j'obtiens avec mon ORM, cependant lors d'essais précédents çà marchait.

Maintenant voilà ce que j'obtiens :

PHP:
<span class="syntaxdefault"><br />    Instruction Eloquent 1 avant interprétation </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">SELECT</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">WHERE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 2000</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">GET</span><span class="syntaxkeyword">()<br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 1 </span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> array </span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> interprétable </span><span class="syntaxkeyword">:</span><span class="syntaxdefault">         TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">SELECT</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">WHERE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">2000</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">GET</span><span class="syntaxkeyword">()<br /><br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 2 avant interprétation </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">SELECT</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">WHERE</span><span class="syntaxkeyword">([</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 2000</span><span class="syntaxkeyword">])-></span><span class="syntaxdefault">GET</span><span class="syntaxkeyword">()<br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 2 </span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> array </span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> interprétable </span><span class="syntaxkeyword">:</span><span class="syntaxdefault">         TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">SELECT</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">WHERE</span><span class="syntaxkeyword">(Array<br />(<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'NUMCH'<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2000<br /></span><span class="syntaxkeyword">)<br />)-></span><span class="syntaxdefault">GET</span><span class="syntaxkeyword">()<br /><br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 3 avant interprétation </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">INSERT</span><span class="syntaxkeyword">([</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 171030</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX1'</span><span class="syntaxkeyword">])<br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 3 </span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> array </span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> interprétable </span><span class="syntaxkeyword">:</span><span class="syntaxdefault">         TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">INSERT</span><span class="syntaxkeyword">(Array<br />(<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 171030<br />    </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX1'<br /></span><span class="syntaxkeyword">)<br />)<br /><br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 4 avant interprétation </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">SELECT</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">WHERE</span><span class="syntaxkeyword">([[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'>'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 2000</span><span class="syntaxkeyword">],[</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'LIKE'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'C%'</span><span class="syntaxkeyword">]])-></span><span class="syntaxdefault">GET</span><span class="syntaxkeyword">()<br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 4 </span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> array </span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> interprétable </span><span class="syntaxkeyword">:</span><span class="syntaxdefault">         TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">SELECT</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">WHERE</span><span class="syntaxkeyword">(Array<br />(<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'NUMCH'<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'>'<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2000<br />        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'LIKE'<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'C%'<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">)<br /><br />)<br />)-></span><span class="syntaxdefault">GET</span><span class="syntaxkeyword">()<br /><br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 5 avant interprétation </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">INSERT</span><span class="syntaxkeyword">([[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2300</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX1'</span><span class="syntaxkeyword">],[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2301</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX2'</span><span class="syntaxkeyword">]])<br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 5 </span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> array </span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> interprétable </span><span class="syntaxkeyword">:</span><span class="syntaxdefault">         TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">INSERT</span><span class="syntaxkeyword">(Array<br />(<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2300<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX1'<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2301<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX2'<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">)<br /><br />)<br />)<br /><br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 6 avant interprétation </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">INSERT</span><span class="syntaxkeyword">([[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2300</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX1'</span><span class="syntaxkeyword">],[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2301</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX2'</span><span class="syntaxkeyword">],[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2302</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX3'</span><span class="syntaxkeyword">]])<br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 6 </span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> array </span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> interprétable </span><span class="syntaxkeyword">:</span><span class="syntaxdefault">         TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">INSERT</span><span class="syntaxkeyword">(Array<br />(<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2300<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX1'<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2301<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX2'<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2302<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX3'<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">)<br /><br />)<br />)<br /><br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 7 avant interprétation </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">INSERT</span><span class="syntaxkeyword">([[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2300</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX1'</span><span class="syntaxkeyword">],[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2301</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX2'</span><span class="syntaxkeyword">],[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2302</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX3'</span><span class="syntaxkeyword">],[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2303</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX4'</span><span class="syntaxkeyword">]])<br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 7 </span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> array </span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> interprétable </span><span class="syntaxkeyword">:</span><span class="syntaxdefault">         TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">INSERT</span><span class="syntaxkeyword">(Array<br />(<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2300<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX1'<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2301<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX2'<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2302<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX3'<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2303<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX4'<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">)<br /><br />)<br />)<br /><br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 8 avant interprétation </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">WHERE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 2000</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">UPDATE</span><span class="syntaxkeyword">([</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2302</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'NOMCH'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX1'</span><span class="syntaxkeyword">])<br /><br /></span><span class="syntaxdefault">    Instruction Eloquent 8 </span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> array </span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> interprétable </span><span class="syntaxkeyword">:</span><span class="syntaxdefault">         TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">WHERE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">2000</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">UPDATE</span><span class="syntaxkeyword">(Array<br />(<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NUMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2302<br />    </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'NOMCH'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'APLUSBEGALIX1'<br /></span><span class="syntaxkeyword">)<br />)<br /><br /><br /></span><span class="syntaxdefault"></span>


Il me reste à faire ( pour le formulaire de test, pour l'ORM c'est fait ), la possibilité d'un argument de fonction plat ( nombre ), et d'une fonction anonyme comme deuxième paramètre. ( pour CHUNK() ).

Merci beaucoup de vos suggestions.

Amicalement.
 
WRInaute accro
Rebonjour

Merci de tester.

Cette url permet uniquement ( pour l'instant ), de traduire le champ de saisie ( instruction Eloquent ), en une string interprétable par mon ORM maison, mais sans passage à la moulinette de celui-ci.

J'ai simplement besoin de savoir, si la deuxième ligne ( interprétable string ), est rigoureusement identique à la ligne du dessus ( champ de saisie original ).

Ceci, dans tous les cas, quel que soit le contenu du champ de saisie ( syntaxe conforme Eloquent ).

Le champ de saisie est sur une seule ligne.

Exemple de syntaxe Eloquent :

Code:
  TABLE('CHEVAUX')->SELECT('NUMCH', 'NOMCH')->WHERE([['NUMCH', '>', 2000],['NOMCH', 'LIKE', 'DE%']])->GET();

Voici l'url :

https://www.pronostics-courses.fr/essai_mysql/interface_orm.php

Après les tests, j'adapterai pour que la deuxième ligne ( exécutable ) soit envoyée à l'ORM.

Merci beaucoup pour vos tests.

Amicalement.
 
WRInaute accro
Voili, voilou

Je tiens à votre disposition si vous voulez, l'url pour des tests en réel de mon ORM.

Même url que précédemment :

https://www.pronostics-courses.fr/essai_mysql/interface_orm.php

Histoire de rire, ma Bdd est accessible avec seulement une autre database ( copiée ), pour qu'il soit impossible de gâter ma Bdd.

Il est possible de faire des lectures, insert et update.

Vous pouvez tester, merci de me dire ce qui manque à mon ORM. ;)

Spout ne va pas aimer la syntaxe Eloquent v3. ;)

Il y a nécessité ( pour les lectures ) de donner des noms des colonnes ( pas de * ).

Pour infos :

CHEVAUX(NUMCH, NOMCH),

JOCKEYS(NUMJO, NOMJO),

TERRAINS(NUMT, NOMT),

COURSES(ID, NUMCRS, NUMT, DATECRS, NUMCH, NUMCH, NUMJO, PARTANT, RANG, POIDS, MOYEN, REUNION, COURSE, NUMH, COTES, CORDE, DEFER, SEXE, AGE, GAIN),

NOM_COURSE(NUMCRS, COURSE),

Etc...

Voià c'est suffisant pour des essais.

Attention pompez pas tout, les NUMCRS vont jusqu'à : 15.906, les NUMCH jusqu'à : 171.971, etc...

Vous pouvez utiliser en lecture la fonction : LIMIT(nombre) ou
TAKE(nombre) ( théoriquement ), et OFFSET() et SKIP() ( jamais essayé ).

Merci de vos retours.

J'espère qu'il y aura des critiques ( féroces :) ).

Respectueusement.
 
WRInaute accro
Je vous demande pardon.

Les limites : LIMIT(nombre), etc... doivent être avant le ->GET() et autres PLUCK().

Pour les tests, il faut obligatoirement mettre à la fin ( après le reste ), l'instruction de lecture ( ->GET(), ->PLUCK(), ), ou autre ( UPDATE(), INSERT(), etc... ).

Le WHERE de sélection doit être avant, sinon tous les enregistrements sont concernés.

Merci beaucoup de vos réponses.

Mes respects.
 
WRInaute accro
Rebonjour

Voici l'url :

https://www.pronostics-courses.fr/essai_mysql/interface_orm.php

Maintenant les SELECT * , INSERT et REPLACE multiples ( en une seule ligne ), sont interprétés et exécutés.

Par exemple :

Code:
  TABLE('CHEVAUX')->WHERE(['NUMCH', 30])->GET()

  Donne : SELECT * FROM `CHEVAUX` WHERE `NUMCH`=30

  TABLE('CHEVAUX')->REPLACE([['NUMCH' => 200000, 'NOMCH' => 'STUPIDE'],['NUMCH' => 200001, 'NOMCH' => 'ABRUTI']])

  Se transforme en :

  REPLACE INTO `CHEVAUX`('NUMCH', 'NOMCH') VALUES (200000, 'STUPIDE'), (200001, 'ABRUTI')

  Dans les deux cas, le SQL est exécuté.

Merci beaucoup de votre aide.

Respectueusement.
 
WRInaute accro
Bonjour

Maintenant, l'ORM supporte les fonctions agrégats.

( COUNT(), MAX('Column'), MIN('Column'), AVG('Column'), et SUM('Column') ).

Y a-t-il d'autres aggregates dans Eloquent ?

J'ai repéré des fonctions agrégats classiques de SQL, mais je peux m'en tenir à la syntaxe Eloquent 3 ?

Merci.
 
WRInaute accro
Rebonjour

Voici ce qui n'est pas implémenté dans cet ORM :

- UNION()
- JSON Columns types ( pour les WHERE ),
- Fonctions Aggregate autres que : COUNT(), MAX(), MIN(), AVG(), SUM() ( pour l'instant ),
- ADD_SELECT(),
- WHEN().

Pour le reste, je dois encore vérifier ou mettre au point :

- RAW(),
- WHERE() avec OR_WHERE() ( les deux sont implémentés ) ( facile ),
- WHERE_EXISTS(), ( facile )
- LATEST() ( facile ),
- INSERT_GET_ID() et REPLACE_GET_ID() ( facile ),
- TRUNCATE ( à vérifier ). ( Eviter de tester, j'aurais des tables MySQL réduites à zéro. ;) )

La syntaxe est celle d'Eloquent, avec moins de capacité Orienté Objet.

Il est nécessaire de ne faire qu'une instruction à la fois.

Et... La classe est réellement instanciée, ( une fois par script ), et non pas statique, on ne met pas des deux points mais des flèches.

Exemple :

PHP:
<span class="syntaxdefault"><br /><br />  $conn </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new Database</span><span class="syntaxkeyword">(</span><span class="syntaxstring">""</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">  $result </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $conn</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">TABLE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'COURSES'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">JOIN</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'CHEVAUX'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'COURSES.NUMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'='</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'CHEVAUX.NUMCH'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">JOIN</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'JOCKEYS'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'COURSES.NUMJO'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'='</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'JOCKEYS.NUMJO'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">WHERE</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'COURSES.ID'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'>'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'1709100000'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">SELECT</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'COURSES.ID'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'CHEVAUX.NOMCH'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'JOCKEYS.NOMJO'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">ORDER_BY</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'COURSES.ID'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'ASC'</span><span class="syntaxkeyword">)-></span><span class="syntaxdefault">GET</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxdefault">  print_r</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$result</span><span class="syntaxkeyword">);<br /><br />&nbsp;</span><span class="syntaxdefault"></span>

"Database" est la classe de l'ORM, la classe singleton de connexion à la BDD est : "DB".

Evidemment, le constructeur de Database déclenche la connexion par DB.

Les fonctions en majuscules, sont des méthodes de Database.

Merci à vous de tester :

https://www.pronostics-courses.fr/essai_mysql/interface_orm.php

On entre dans le champ de saisie, ( sans "$conn->" ), en commençant par : TABLE().

La syntaxe est celle d'Eloquent.

La BDD à dispo est : "new_turf".

Amusez-vous bien.

Amicalement.
 
WRInaute accro
Bonjour

A propos de l'ORM Eloquent ( la syntaxe ) :

Il est possible de faire des join multiples du genre :

Code:
  TABLE('COURSES')->JOIN('CHEVAUX', function($join) {
           $join->ON('COURSES.NUMCH', '=', 'CHEVAUX.NUMCH')->OR_ON('Une_Table.Column', '?', 'Une_autre_Table.Column2');})->SELECT('COURSES.ID', 'COURSES.NUMCH', 'CHEVAUX.NOMCH', etc...)->GET();

Je bute sur ce que je dois mettre dans le OR_ON().

A quoi sert cette instruction OR_ON() ( orOn() en langage Eloquent ) ?

A la rigueur, je pourrais mettre une autre condition de join ( donc en OU inclusif ) sur les mêmes tables COURSES et CHEVAUX, mais cette instruction orON() a-t-elle réellement une utilité ?

Y a -t-il des cas où des conditions "OU" auraient une quelconque utilité, en ce qui concerne les JOIN ?

C'est pratiquement le dernier test que je fais sur mon ORM.

Merci beaucoup de vos réponses.

Respectueusement.
 
WRInaute accro
Rebonjour

Voilà, il me semble que j'ai testé mon ORM sous toutes les coutures.

Revoici l'url : https://www.pronostics-courses.fr/essai_mysql/interface_orm.php

Un formulaire facile à remplir, -> syntaxe Eloquent :

Code:
  // Exemple :

  TABLE('CHEVAUX')->ORDER_BY('NUMCH', 'DESC')->LIMIT(10)->GET()


Voici les tables MySQL possibles :

CHEVAUX('NUMCH', 'NOMCH'),

JOCKEYS('NUMJO', 'NOMJO'),

TERRAINS('NUMT', 'NOMT'),

COURSES('ID', 'NUMCRS', 'NUMT', 'DATECRS', 'NUMCH', 'NUMCH', 'NUMJO', 'PARTANT', 'RANG', 'POIDS', 'MOYEN', 'REUNION', 'COURSE', 'NUMH', 'COTES', 'CORDE', 'DEFER', 'SEXE', 'AGE', 'GAIN'),

NOM_COURSE('NUMCRS', 'COURSE'),

Etc...

Vous pouvez faire tous les JOIN que vous voulez, faire des UPDATE, INSERT, REPLACE, DELETE, SELECT, WHERE ( toutes versions ), etc...

Les fonctions non implémentées sont : WHEN() et ADD_SELECT(), et aussi les colonnes de type JSON ne sont pas supportées.

Le fonctions sont en majuscules, il faut parfois mettre un underscore ( souligné ) :

Exemple : WHERE_BETWEEN() au lieu de WhereBetween() , etc... dans le cas où une majuscule côtoie une minuscule.

Les fonctions agrégats de Eloquent sont supportées.

Après clic sur "Ok", la ligne SQL Relationnel s'affiche, ainsi que le contenu de la BDD.

La Database "new_turf' est donc pleinement accessible en lecture, écriture et modification.

La fonction TRUNCATE() est implémentée, je ne sais plus si elle est activée.

Enjoy ! ;)
 
WRInaute accro
Bon, bon.

Sur mon ordinateur, j'ai porté trois répertoires de mon site vers mon ORM.

En particulier, la partie de mon site qui produit des pronostics pour mon site partenaire, fonctionne très bien ( après quelques retouches de mon ORM ), et même plus rapidement. ;)

J'en ai encore pour quelques semaines avant de tester mon site en réel.

On verra.

Amicalement.
 
Discussions similaires
Haut