JeuWeb - Crée ton jeu par navigateur
[Réglé] Fonction PHP dans une requete SQL - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Réglé] Fonction PHP dans une requete SQL (/showthread.php?tid=1590)



[Réglé] Fonction PHP dans une requete SQL - Scha - 15-08-2007

Salut,
J'ai une fonction php assez complexe, et je souhaiterai l'utiliser pour selectionner des valeurs dans une table, mais je n'y arrive pas.
exemple:
Code :
<? php
// ma vraie fonction est évidemment bien plus complexe...
function exemple($a)
{return ($a+1);}
?>

$sql=mysql_query("SELECT idc FROM table WHERE exemple(idc)=2");

J'ai essayé des tas de syntaxe, mais ça ne donne rien du tout

J'ai lu qu'il était possible de le faire avec SQLite, mais qu'en est-il avec phpmyadmin ? impossible ?

D'avance, merci de votre aide :-)


RE: Fonction PHP dans une requete SQL - naholyr - 15-08-2007

MySQL ne permet pas ce genre de fantaisie


RE: Fonction PHP dans une requete SQL - Fidelcastor - 15-08-2007




RE: Fonction PHP dans une requete SQL - Scha - 15-08-2007

Le but n'était pas de trouver une valeur idc, mais un ensemble de valeurs. Plus précisement : Trouver toutes les cases d'une carte, qui seraient distantes de x cases d'une case particuliere, voire une aire de rayon variable autour de cette case.

Comme ça n'est pas possible - et Naholyr semble assez catégorique - au lieu d'une simple petite requête, je vais devoir me taper des pages de code...
C'est vraiment dommage, mais je comprend cette limitation...

Merci :-)


RE: Fonction PHP dans une requete SQL - Loetheri - 15-08-2007

C'est possible mais sûrement pas avec MySQL ^^

Et comme tu le dis, SQLite le permet mais bon, ce n'est peut-être pas l'application à conseil lorsqu'on a beaucoup de données. Mais ce n'est que mon avis.


RE: Fonction PHP dans une requete SQL - Byleth - 15-08-2007

Avec un carré c'est très simple, avec des formules mathématiques dans la requête et en connaissant la cas d'origine, ça devrait se faire aussi (calcul du rayon d'un cercle par exemple...)

Enfin, tout dépend de la complexité de ta fonction...


RE: Fonction PHP dans une requete SQL - elazard - 15-08-2007

ben moi je pensais à between dans la requete? ca permet de faire ce que t'as dis à savoir choisir des cases entre 2 limites? Fin j'ai pas exactement capté le but


RE: Fonction PHP dans une requete SQL - Scha - 15-08-2007

Malheureusement, la carte est faite d'hexagones, et je ne crois pas pouvoir m'en sortir avec des calculs dans la requete. (http://www.jeuweb.org/board/showthread.php?tid=1865)
Les calculs doivent construire la requête, et ça risque d'être assez lourd.
Je vais devoir utiliser quelques BETWEEN, effectivement... (tester toutes les cases de la map dans un For To ne semble pas raisonnable, niveau performance).

[EDIT]
C'est marrant comme d'exprimer un probleme nous aide a le résoudre. Ca fait 3-4 jours que je séche là-dessus comme un con, et juste après mon dernier message, boum, la solution :
Je trace un rectange autour de la zone, puis je fais un For To sur les cases de ce rectangle pour construire la requête. Testé en 2 minutes : Ca marche, et c'est pas trop gourmand. J'aurai préféré un joli calcul, mais bon, ça va bien come ça.
Merci de votre écoute :good: