Valid XHTML     Valid CSS2    

Exécution de code MySQL via une fonction Javascript nommée mysql()

 

Le but de cette fonction est de pouvoir injecter via Javascript des valeurs dans une page Web à partir de la base de données d'exercices nommée statad.

Il faut bien sûr d'abord mettre le code


    <script src="mysql.js"></script>

dans la partie <head> de votre page Web. Vous pouvez cliquer ici pour voir le code Javascript de ce fichier et en faire un copier/coller, mais ne cherchez pas à le comprendre...

Il faut ensuite mettre un attribut id à la zone qui doit recevoir la valeur.

La syntaxe de la fonction est mysql(id,codeMySQL), ce qui signifie que vous devez transmettre deux paramètres, d'abord l'id puis la requête MySQL.

Dans les bons cas, la valeur sera récupérée et mise «là où il faut».

Voici quelques cas d'utilisation où tout se passe bien.

Exemple 1 : OK on veut un juste un comptage

Le code d'appel est mysql("r1","select count(*) from statdata.elf").

Cliquez ici pour voir le résultat de cet appel pour l'élément dont l'id est r1 : (rien pour l'instant)

Exemple 2 : OK on veut une seule valeur

Le code d'appel est mysql("r2","select date from statdata.sen_HIST limit 2,1").

Cliquez ici pour voir le résultat de cet appel pour l'élément dont l'id est r2 : (rien pour l'instant)

Et maintenant quelques cas d'utilisation où il y a des erreurs ou des problèmes.

Problème 1 : ERREUR on ne passe aucun paramètre à la fonction

Le code incriminé est mysql().

Cliquez ici pour voir ce qui se passe alors. Vous devriez voir apparaitre une fenetre dite "modale" (qui bloque tout) dont le contenu est :

     syntaxe incorrecte

Problème 2 : ERREUR on fournit à Javascript un id qui n'existe pas

Le code incriminé est mysql("pomme","select count(*) from statdata.elf").

Cliquez ici pour voir ce qui se passe alors. Vous devriez voir apparaitre une fenetre "modale" qui indique que l'id est incorrect :

     syntaxe incorrecte

Problème 3 : ERREUR le code MySQL est incorrect

Le code incriminé est mysql("p3","select from statdata.sen_HIST ").

Cliquez ici pour voir le résultat de cet appel pour l'élément dont l'id est p3 :

(rien pour l'instant)

Dans ce cas, n'hésitez pas à faire un copier/coller du code MySQL et à utiliser la page executeMySQL pour mettre au point votre requête avant de l'incorporer à votre code Javascript.

Problème 4 : PROBLEME le code MySQL renvoie plusieurs valeurs

Le code incriminé est mysql("p4","select * from statdata.sen_GEOG LIMIT 3,1").

Cliquez ici pour voir le résultat de cet appel pour l'élément dont l'id est p4 :

(rien pour l'instant)

Solution : modifiez votre code MySQL pour qu'il ne renvoie qu'un champ, par exemple mettez juste pays au lieu de *. Cliquez ici pour avoir le bon affichage.

Problème 5 : PROBLEME le code MySQL ne renvoie pas plusieurs valeurs

Le code incriminé est mysql("p5","select date from statdata.sen_HIST LIMIT 5").

Cliquez ici pour voir le résultat de cet appel pour l'élément dont l'id est p5 :

(rien pour l'instant)

Solution : aucune. La fonction est prévue pour renvoyer une seule valeur. Si vous voulez récupérer plusieurs valeurs, écrivez plusieurs instructions mysql(...) ou utilisez une boucle.

Problème 6 : PROBLEME la table de données est mal spécifiée

Le code incriminé est mysql("p6","select count(*) from elf").

Cliquez ici pour voir le résultat de cet appel pour l'élément dont l'id est p6 :

(rien pour l'instant)

Solution : utilisez la qualification complète. Ici, par exemple, écrivez statad.elf au lieu de elf.

 

 

retour gH    Retour à la page principale de   (gH)