recuperation dans la base de données problematique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : recuperation dans la base de données problematique

par Volkow » 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!

:)

par Shadockou » 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.

par Volkow » 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é!

;)

par Shadockou » 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:)

ça marche

par chris51200 » 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

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

par Shadockou » 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à.

recuperation dans la base de données problematique

par chris51200 » 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
	  }