recuperation dans la base de données problematique

Eléphant du PHP | 170 Messages

02 déc. 2007, 09:55

Bonjour a tous,
je prepare un site pour une agence immobiliere. dans ma base donnees je rentre le type du bien avec son prix. Lorsque je lance mon prorgramme, le tris par prix ne semble par gerer la difference de zero!!
voici une partie de mon code:
la premiere selcetion me trouve tout les prix entre 0 et 120000€ mais pas ceux rentré a un prix moindre dans ma base de données
on dirait qu'il y a un probleme de recherche dans la BDD des que le nombre de zero du prix change!
elseif($_POST['prixmini'] == "0" and $_POST['prixmaxi'] == "120000") // prix compris entre 	0 et 120 000€  
	  
	  {
	       $reponse = mysql_query("SELECT type, prix, descriptif FROM bdd WHERE prix <= '120000'"); // Requête SQL
           while ($donnees = mysql_fetch_array($reponse) )
           {
           ?>
           <?php echo $donnees['type']; ?> au prix de <?php echo $donnees['prix']; ?>; <?php echo $donnees['descriptif']; ?><br />
           <?php
           }
           mysql_close(); // Déconnexion de MySQ
	  } 
	  
	elseif($_POST['prixmini'] == "0" and $_POST['prixmaxi'] == "80000")// prix compris entre 	0 et 80 000€  
	  
	  {
	       $reponse = mysql_query("SELECT type, prix, descriptif FROM bdd WHERE prix <= '80000'"); // Requête SQL
           while ($donnees = mysql_fetch_array($reponse) )
           {
           ?>
           <?php echo $donnees['type']; ?> au prix de <?php echo $donnees['prix']; ?>; <?php echo $donnees['descriptif']; ?><br />
           <?php
           }
           mysql_close(); // Déconnexion de MySQ
	  } 

Eléphant du PHP | 97 Messages

02 déc. 2007, 13:07

Salut,
la premiere selcetion me trouve tout les prix entre 0 et 120000€ mais pas ceux rentré a un prix moindre dans ma base de données
, par prix moindre tu veux dire inférieur à 0 donc ? Je comprends pas trop... :-s

Sinon, il me semble que tu n'as pas besoin de mettre des apostrophes pour tes
WHERE <= '120000'
, essayes sans, le problème peut peut-être venir de là.

Eléphant du PHP | 75 Messages

02 déc. 2007, 13:13


Sinon, il me semble que tu n'as pas besoin de mettre des apostrophes pour tes
WHERE <= '120000'
Effectivement, lorsque la clause WHERE est un nombre ou un chiffre, les guillemets hauts ne sont pas nécessaires.

Par contre, comme Shadockou, je ne comprend pas trop l'histoire du inférieur à 0.

Ton agence vend des maisons moins chères que gratuit? (ça ce dit ce que j'ai dit? ^^).

Eléphant du PHP | 170 Messages

02 déc. 2007, 14:34

merci les gars j'ai viré les guillements tout simplement...de fois le php, tu te demande....
alors en fait le probleme arrivait lors de la selection dans ma base de données, des ventes compris entre 0 et 80 000€ alors que je n'avais aucun probleme pour celle de 0 a 100 000€ et + ....
merci

Eléphant du PHP | 97 Messages

02 déc. 2007, 14:58

hummm... dans ce cas la premiere requete devait sans doute se contenter d'afficher tout le contenu de la table, ce qui donne effectivement le même résultat que si tu demandais du minimum au maximum,
le probléme n'était donc apparent que lorsque tu demandais un intervalle moindre.

Je n'ai jamais fait l'experience mais a mon avis un chiffre ou nombre entre apostrophes est probablement considéré comme un string par ta base, ce qui explique l'absence de resultat correcte.

Par ailleurs, si j'étais toi je mettrai simplement des variables $min et $max dans ma requete SQL, ainsi pas besoin de refaire la requete plusieurs fois, ca allegerait pas mal ton code.

ex :
 SELECT type, prix, descriptif FROM bdd ORDER BY prix LIMIT $min,$max
(à confirmer parce que je suis encore débutant hein... :wink:)

Eléphant du PHP | 75 Messages

02 déc. 2007, 19:46

Shadockou, je pense que ce serait possible.

En fait il faudrait un p'tit formulaire qui demanderait le max et le min et hop qui balance ça au script qui va chercher le tout dans la table avec comme close le max et min reçu par $_POST...

Ingénieux, je n'y avais pas pensé!

;)

Eléphant du PHP | 97 Messages

02 déc. 2007, 20:02

Ouaip et l'instruction ORDER dans la requete ajouterait vraiment un plus, car
sinon , on a un intervalle de prix mais ordonné par rapport aux clefs primaires.
Ce qui pour les visiteurs n'est pas trés utile.

Eléphant du PHP | 75 Messages

02 déc. 2007, 20:55

Effectivement, pas très utile ^^.

Ca y est, je me fait tellement chier sur mon PC que je parle pour rien dire... :lol:

Vivement Noël pour se régaler de fois gras. :twisted:

'Fin bref , heu... Le problème est résolu!

:)