JeuWeb - Crée ton jeu par navigateur
[REGLE]une SQL avec un WHERE compliqué - 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 : [REGLE]une SQL avec un WHERE compliqué (/showthread.php?tid=1936)

Pages : 1 2


[REGLE]une SQL avec un WHERE compliqué - Argorate - 29-10-2007

J’ai un joli problème de math en faite.
J’ai un SELECT qui doit prendre les x et y comprit dans un intervalle.
Mais je dois en même temps exclure des points de cette intervalle, ce qui nous donne un truc qui marche pas Big Grin

SELECT x,y FROM carte WHERE x<=$x+1 AND x>=$x-1 AND y<=$y+1 AND y>=$y-1 AND (x!=$x_ancien AND y!=$y_ancien)

Le problème étant que sa exclu tout les x et y égal a $x_ancien et $y_ancien, au lieu d'exclure seulemment le couple de coordonné ($x_ancien,$y_ancien).

Voila si quelqu'un a comprit quelque chose a mon charabia ou a des question, ou a une réponse, je le remercierai infiniment Big Grin


HS: autre petite question : faut t-il mettre $_POST[titre] ou $_POST['titre'] ou $_POST["titre"], si y a une différence, dite moi la quel.


RE: une SQL avec un WHERE compliqué - jo_link_noir - 29-10-2007

tu peux donner un exemple des valeurs que prennent x,y, x_ancien, y_ancien et le resultat qu'il devrais y avoir ?
j'ai pas tout comprit XD


RE: une SQL avec un WHERE compliqué - Aro - 29-10-2007

Pas trop pigé non plus ce que tu voulais faire mais:

POST stockant sous forme pareille à un tableau c'est:
$_POST['titre']

Si tu tapes $_POST[titre] il te traitera de tous les noms en te parlant d'une valeur constante. Et pis donc voila ^^.

PS: Sur ce je vais passer l'aspirateur... si quelqu'un est intéressé.


RE: une SQL avec un WHERE compliqué - Argorate - 29-10-2007

ok un exemple: si le x et le y que je recherche est (4,3) et que le x_ancien et y ancien et (4,2)

il selectionera pas le (4,3) car x doit etre diferent de 4 selon la requete sql donné plus haut...


RE: une SQL avec un WHERE compliqué - Kheldar - 29-10-2007

Effectivement, je viens de tester.
Les parenthèses, sur ce coup, ne servent pas à grand chose.

Alors une autre solution, pas très très propre (en supposons que tes cases soient couplées à un id):

SELECT x, y FROM test
WHERE x <= $x+1 AND x >= $x -1 AND y > $y -1 AND y <= $y + 1
AND id NOT IN (SELECT id FROM test WHERE x =$x_ancien AND y =$y_ancien)


RE: une SQL avec un WHERE compliqué - Argorate - 29-10-2007

non, il n'y a pas d'id... dsl.

cela marche donc pas...


RE: une SQL avec un WHERE compliqué - Galaan - 29-10-2007

Dans un cas comme ca, je suis plutot partisant de faire bosser le php. Avec le SQL tu ramenes toutes les cases de la zone et tu exclus les autres avec une petites routine php. C'est simple a faire et je suis sur que ca prend moin de ressource qu'un WHERE complique.

Galaan


RE: une SQL avec un WHERE compliqué - jo_link_noir - 29-10-2007

je croit avoir comprit...
x ; y : [2;9]
x_ancien ; y_ancien : [5;7]

le resultat est [2;5[U]7;9] ? :heuuu:


RE: une SQL avec un WHERE compliqué - Argorate - 29-10-2007

Galaan : non car j'ai besoin du nombre de resultat de la requete, et il ne me faut pas compté les faux resultat, et je ne peut pas les enlevé apres la requete.

j-12: eu non c'est pas vraiment ça le truc ^^

je recherche une ou plusieur coordoné x y dans un intervale definit, en excluant le point (x_ancien,y_ancien)

si x ; y : [2;9],x_ancien ; y_ancien : [5;7]:
mon intervalle d'apres la requete vaudra : x<=3 AND x>=1 AND y<=10 AND y>=8 AND (x!=5 AND y!=7)

Mais si ce que je recherche a un x = 5 ou un y = 7, sa ne marchera plus...


RE: une SQL avec un WHERE compliqué - jo_link_noir - 29-10-2007

j'essaye de comprendre mais j'avou avoir du mal
j'ai fait un une image de ce que j'ai cru comprendre, explique moi ce qui ne va pas dans celle là ^^

[Image: tableaurecapitulatifgt6.th.png]

le petit carré gris est le resultat rechercher ?