JeuWeb - Crée ton jeu par navigateur

Version complète : [Résolu] Requête SQL au comportement bizarre
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Salut à tous Wink

Je vais donc attaquer directement dans le vif du sujet :

Pour mon jeu, je souhaite récuperer des données dans ma table, donc la valeur du champ "x" est comprise entre xmax et xmin (deux variables).

Voici donc ma requête actuelle :

Code PHP :
<?php 
$sql2
=mysql_query("SELECT * FROM flottes WHERE x BETWEEN $xmax and $xmin ORDER BY x DESC") or die (mysql_error());

Cette requête est suivie d'un while, qui liste les vaisseaux.

Mon problème est que cette requête se comporte bizarrement :
Lorsque je remplace $xmax et $xmin par des nombres, cela fonctionne. Lorsque j'insert ces variables dans ma requêtes, ben plus rien ne s'affiche.

J'ai essayé plusieurs choses : des ' ' autour des variables, mettre les variables sous la forme ' " . $xmax . " ' , mettre des ' ' autour du nom du champ.

Voilà, j'espère que vous pourrez m'aider,

Amicalement, Quentin.
Citation :la valeur du champ "x" est comprise
x c'est pas un champ c'est une colonne de ta table, enfin c'est peut être juste une histoire de vocabulaire...
Pense à mettre ton AND en majuscule (c'est une question de lisibilité)
Normalement le '$xmax' ou le ' ".$xmax." ' devrait marcher.
Vérifie que tes variables $xmax et $xmin sont bien remplies avant ta requête (un petit echo $xmax $xmin...)
Pour le x, c'est pas faux, mais ce n'est qu'un problème de vocabulaire Smile
Je met les AND en majuscule d'habitude, je vois pas pourquoi en recopiant ma requête, j'ai mis ça en minuscule.
Non, le '$xmax' et ' ".$xmax." ' ne fonctionne pas.
J'ai bien fait un echo, mes variables sont remplies.

Merci de ton aide Wink
Mhhh, peut être je vais dire nawak, mais quand tu recherches un chiffre dnas un intervalle, tu fais surement par exemple entre 1 et 5 ou 2 et 50, mais je pense pas que tu fasses entre 50 et 2 Wink

Essaye d'inverser '$xmax' et '$xmin', et rajoute des ' autour Wink
et protéger les noms de colonnes et table avec des ``
sinon, un "die(mysql_error().'<br />requête : '.$req)" peut aider aussi... tu vois la requete envoyée... (a virer quand le jeu est en ligne ^^)
évidemment, faut changer ton appel...
un truc du genre:
$req='SELECT * FROM `flottes` WHERE `x` BETWEEN '.$xmin.' AND '.$xmax.' ORDER BY `x` DESC';
$res=mysql_query($req) or die (mysql_error().'<br />requête : '.$req);

ca aide vachement, ces petits trucs ^^
je penche pour la simple inversion entre Xmin et Xmax dans ta requête ...

Kéké.
PS : Si ça se confirme, on pourrait dire que mysql c'est pas très évolué tout de même ...
Merci pour tous vos conseils, l'inversion des deux variables dans la requête fonctionne parfaitemment Smile

C'est vrai que si j'avais été un peu plus logique sur ce coup, j'aurrais remarqué que chercher des nombres dans un intervalle de, par exemple, [50;2] était mois logique que dans l'intervalle [2:50].

Merci aussi à Ruz, je conaissais pas l'affichage de la requête sur la page, c'est une bonne idée Big Grin

Bref, re merci encore !

Quentin.
Citation :PS : Si ça se confirme, on pourrait dire que mysql c'est pas très évolué tout de même ...

Bon c'est confirmé alors xD


(Stargate63, edit ton 1er post et met un ptit [réglé] dans ton titre Wink )