Page 1 sur 1

recuperation dans la base de données problematique

Posté : 02 déc. 2007, 09:55
par chris51200
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
	  } 

Posté : 02 déc. 2007, 13:07
par Shadockou
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à.

Posté : 02 déc. 2007, 13:13
par Volkow

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? ^^).

ça marche

Posté : 02 déc. 2007, 14:34
par chris51200
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

Posté : 02 déc. 2007, 14:58
par Shadockou
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:)

Posté : 02 déc. 2007, 19:46
par Volkow
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é!

;)

Posté : 02 déc. 2007, 20:02
par Shadockou
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.

Posté : 02 déc. 2007, 20:55
par Volkow
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!

:)