Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1518 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  requete MySql par tranches...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

requete MySql par tranches...

n°585849
freed102
Arayashiki
Posté le 08-12-2003 à 18:17:08  profilanswer
 

Une chtite question...
j'ai besoin de faire des requetes du genre :
 
si $x est compris entre tel chiffre et tel chiffre... $resultat=$y
 
en PHP c facile je pense... mais n'existe t il pas une fonction MySQL deja toute faite pour ce genre de requetes ?
 
Si vous captez pas... je peux peut etre reformuler ma question ! lol
 
Merci
 
Freed


Message édité par freed102 le 08-12-2003 à 18:20:36
mood
Publicité
Posté le 08-12-2003 à 18:17:08  profilanswer
 

n°585856
nraynaud
lol
Posté le 08-12-2003 à 18:25:28  profilanswer
 

WHERE champ < ton_max AND champ >= ton_min


---------------
trainoo.com, c'est fini
n°585862
freed102
Arayashiki
Posté le 08-12-2003 à 18:31:39  profilanswer
 

ok mais ça doit pas resoudre mon probleme... en gros je t'explique... j'ai une grille de prix dans une table MySQL... et je veux que ma requete donne reponse directement en fonction d'un chiffre entré par le client...
 
genre voici ma table :
 

Code :
  1. nb_pages  prix
  2. 20  0,70 €
  3. 40  1,02 €
  4. 55  1,26 €
  5. 80  1,67 €
  6. 95  1,92 €
  7. 115  2,29 €
  8. 140  2,74 €
  9. 165  3,14 €
  10. 190  3,53 €
  11. 220  4,00 €
  12. 240  4,27 €
  13. 290  5,37 €
  14. 330  5,91 €
  15. 390  6,58 €


 
 
je voudrais par exemple que si mon client tape "105" MySQL me retourne "2.29€"
 
est-ce possible ?


Message édité par freed102 le 08-12-2003 à 18:34:30
n°585867
Profil sup​primé
Posté le 08-12-2003 à 18:39:10  answer
 

select nb_page where nb_page>105 LIMIT 0,1 ? [:spamafote]
 


Message édité par Profil supprimé le 08-12-2003 à 18:39:50
n°585868
nraynaud
lol
Posté le 08-12-2003 à 18:39:50  profilanswer
 

where nb_pages >= user_page order by nb_page limit 1


---------------
trainoo.com, c'est fini
n°585873
freed102
Arayashiki
Posté le 08-12-2003 à 18:47:05  profilanswer
 

merci beaucoup... je vais essayer ça (quand le serveur sera de nouveau en fonction ! :) )

n°585941
ToxicAveng​er
Posté le 08-12-2003 à 20:57:27  profilanswer
 

Tu veux te faire des tartines de MySQL ?
http://www.csdm.qc.ca/cemis/panier/aliments/produits_cerealiers/images/pain_tranchesg.gif

n°586048
DANATH
Posté le 08-12-2003 à 22:52:24  profilanswer
 

sinon where nb bitween (20,100);
?

n°586467
freed102
Arayashiki
Posté le 09-12-2003 à 13:11:25  profilanswer
 

Alors j'ai tout essayé... apparement c pas ça.. :(
 
Il y a pas une fonction qui donne renvoie la valeur la plus proche ??? ce serait tout simplement ça qu'il me faut !

n°586474
mrbebert
Posté le 09-12-2003 à 13:17:25  profilanswer
 

freed102 a écrit :

je voudrais par exemple que si mon client tape "105" MySQL me retourne "2.29?"
 
est-ce possible ?

Si tu veux le premier chiffre supérieur à la valeur saisie, tu peux faire ca :
 
SELECT nb_pages, prix
FROM ta_table
WHERE nb_pages >= 105
ORDER BY nb_pages ASC
LIMIT 1

mood
Publicité
Posté le 09-12-2003 à 13:17:25  profilanswer
 

n°586481
Profil sup​primé
Posté le 09-12-2003 à 13:20:41  answer
 

faut lire plus haut freed hin [:mlc2]

n°586569
freed102
Arayashiki
Posté le 09-12-2003 à 14:55:24  profilanswer
 

j'ai fait ça :  
 

Code :
  1. $nb_pages=$_SESSION['nb_pages'];
  2.  $tarifs_finitions=$_SESSION['tarifs_finitions'];
  3.  //mysql_select_db("$bddname", $connect);  
  4.  $sqlconnect2 = "SELECT prix FROM $tarifs_finitions WHERE nb_pages_total >= $nb_pages ORDER BY nb_pages_total ASC LIMIT 1";
  5.  mysql_query($sqlconnect2);
  6.  $result2 = @MYSQL_QUERY($sqlconnect2) ;
  7.  $i=0;
  8.  $prix_reliure_unite= mysql_result($result2,$i,"prix" ) ;
  9.  echo mysql_error();


 
... j'ai pas d'erreur... Mais quand je veux afficher $prix_reliure_unite il n'affiche rien ! :??: !!!


Message édité par freed102 le 09-12-2003 à 14:56:32
n°586658
freed102
Arayashiki
Posté le 09-12-2003 à 15:56:52  profilanswer
 

j'ai beau chercher... je comprends pas pourquoi il ne trouve pas de valeur avec ma requete !!!

n°586668
freed102
Arayashiki
Posté le 09-12-2003 à 16:01:17  profilanswer
 

j'ai tenté avec un code plus basic :
 

Code :
  1. function finitions ()
  2.  {
  3.  $nb_pages=$_SESSION['nb_pages'];
  4.  $tarifs_finitions=$_SESSION['tarifs_finitions'];
  5.  $sqlconnect2 = "SELECT prix FROM $tarifs_finitions WHERE nb_pages_total=$nb_pages";
  6.  mysql_query($sqlconnect2);
  7.  $res = @MYSQL_QUERY($sqlconnect2) ;
  8.  $i=0;
  9.  $prix_reliure_unite= mysql_result($res,$i,"prix" ) ;
  10.  echo mysql_error();
  11.  $prix_reliure_total=$prix_reliure_unite*$nb_ex;
  12.  }


 
Mais il n'affiche rien !! :(

n°586669
Profil sup​primé
Posté le 09-12-2003 à 16:01:54  answer
 

ta fait des echo des valeur avant la requete?

n°586681
freed102
Arayashiki
Posté le 09-12-2003 à 16:15:48  profilanswer
 

oui oui... je vois tout sauf le contenu de ma requete !
 
j'ai mis des commentaires en bas sur ma page.. avec l'affichage des variables  
 
http://www.clonecopy.net/php/devis [...] 2b07537b62
 
(je sais pas si ça marche les sessions d'un poste à l'autre... sinon :
 
http://www.clonecopy.net/php/devis/index_etape1.php
 
... puis passer les deux premieres etapes)
 
il me manque juste une valeur pour que ça marche !!! c le Prix unitaire qui est dans une table qui s'appelle tarifs_finitions_plastique ou tarifs_finitions_metalique en fonction du choix du client... (c'est la variable $tarifs_finitions qui selectionne la table)
 
mais la requete revient vide !!! je comprends pas ! :(


Message édité par freed102 le 09-12-2003 à 16:16:39
n°586689
Profil sup​primé
Posté le 09-12-2003 à 16:33:28  answer
 

ta tester dans un soft sql genre phpmyadmin?

n°586696
freed102
Arayashiki
Posté le 09-12-2003 à 16:48:01  profilanswer
 

j'ai fait ça dans PhpMyAdmin:
 
SELECT * FROM `tarifs_finitions_plastique` WHERE nb_pages_total >= '100'
 
et il me revoit vers la table en question...

n°586707
Profil sup​primé
Posté le 09-12-2003 à 17:01:39  answer
 

ben ca voudrait dire qu'il n'y a pas de resultat [:spamafote]

n°586720
freed102
Arayashiki
Posté le 09-12-2003 à 17:18:11  profilanswer
 

bah ma table est pas vide pourtant !!!
 
 nb_pages_total  prix  
Modifier  Effacer  20 2.50  
Modifier  Effacer  40 1.25  
Modifier  Effacer  55 0.92  
Modifier  Effacer  80 0.63  
Modifier  Effacer  95 0.53  
Modifier  Effacer  115 0.43  
Modifier  Effacer  140 0.35  
Modifier  Effacer  165 0.30  
Modifier  Effacer  190 0.27  
Modifier  Effacer  220 0.23  
Modifier  Effacer  240 0.22  
Modifier  Effacer  290 0.17  
Modifier  Effacer  330 0.15  
Modifier  Effacer  390 0.13  

n°586722
Profil sup​primé
Posté le 09-12-2003 à 17:22:59  answer
 

a la place de $res = @MYSQL_QUERY($sqlconnect2)
met
$res = MYSQL_QUERY($sqlconnect2) or die(mysql_error());
et dit ce que ca t'affiche

n°586729
freed102
Arayashiki
Posté le 09-12-2003 à 17:27:01  profilanswer
 

et bien ça n'affiche rien !! c ça que je capte pas ! quand ya une erreur il l'indique... et là ya pas d'erreur !! mais ma variable $prix_reliure_unite est vide !! c'est pas normal ?? :??:

n°586731
Profil sup​primé
Posté le 09-12-2003 à 17:28:06  answer
 

$prix_reliure_unite= mysql_result($res,0);


Message édité par Profil supprimé le 09-12-2003 à 17:28:15
n°586732
freed102
Arayashiki
Posté le 09-12-2003 à 17:28:11  profilanswer
 

Revoici le dernier code... pour les tests

Code :
  1. function finitions ()
  2.  {
  3.  $nb_pages=$_SESSION['nb_pages'];
  4.  $tarifs_finitions=$_SESSION['tarifs_finitions'];
  5.  $sqlconnect = "SELECT * FROM $tarifs_finitions";
  6.  mysql_query($sqlconnect);
  7.  $res = MYSQL_QUERY($sqlconnect) or die(mysql_error());
  8.  $i=0;
  9.  $sqlnb_pages_total= mysql_result($res,$i,"nb_pages_total" ) ;
  10.  $prix_reliure_unite= mysql_result($res,$i,"prix" ) ;
  11.  echo mysql_error();
  12.  mysql_close($connect);
  13.  $prix_reliure_total=$prix_reliure_unite*$nb_ex;
  14.  }

n°586734
Profil sup​primé
Posté le 09-12-2003 à 17:30:01  answer
 

     $res = MYSQL_QUERY($sqlconnect) or die(mysql_error());
      $hop=mysql_fetch_array($res);
      echo $sqlnb_pages_total= $hop["nb_pages_total"];
      echo $prix_reliure_unite=$hop["prix"];
 
test voir

n°586739
freed102
Arayashiki
Posté le 09-12-2003 à 17:37:18  profilanswer
 

ah... là ya une amelioration.. j'ai un 2.24 qui s'est affiché en haut de la page...
mais mon calcul ne se fait pas... :-/ pourtant tu definis bien le $prix_reliure_unite ... c bizarre !

n°586740
freed102
Arayashiki
Posté le 09-12-2003 à 17:38:38  profilanswer
 

le chiffre est bon dans mon cas... j'avais tapé "100" voici la bonne table
 
 nb_pages_total  prix  
Modifier  Effacer  10 1.52  
Modifier  Effacer  25 1.59  
Modifier  Effacer  40 1.67  
Modifier  Effacer  55 1.80  
Modifier  Effacer  75 1.96  
Modifier  Effacer  100 2.24  
Modifier  Effacer  130 2.92  
Modifier  Effacer  160 2.94  
Modifier  Effacer  190 2.96  
Modifier  Effacer  220 3.30  
Modifier  Effacer  280 3.32  
Modifier  Effacer  340 1.80


Message édité par freed102 le 09-12-2003 à 17:39:19
n°586743
Profil sup​primé
Posté le 09-12-2003 à 17:40:25  answer
 

tape ca plutot on vera mieux la distinction entre les 2 valeurs
      echo $sqlnb_pages_total= $hop["nb_pages_total"]."<br />";
      echo $prix_reliure_unite=$hop["prix"];
 
ca t'en resort que une toi?

n°586746
freed102
Arayashiki
Posté le 09-12-2003 à 17:44:59  profilanswer
 

oui ça me sort qu'une valeur... visiblement c la deuxieme !

n°586753
freed102
Arayashiki
Posté le 09-12-2003 à 17:51:53  profilanswer
 

j'arrive pas a afficher le nb_pages_total... Mais ça c pas trop grave dans mon cas.. là j'ai reussi à afficher le calcul... ce qui genait c que j'avais mis tout ça dans une fonction... je pensais que les variables restaient en dehors d'une fonction.. et visiblement pas (dans un include)... je sais pas trop pourquoi ! lol

n°586828
mrbebert
Posté le 09-12-2003 à 19:30:42  profilanswer
 

Eh non :D  
PHP est un super langage où on ne déclare pas les nouvelles variables, mais où il faut re-déclarer dans une fonction les variables globales :pt1cable:

n°586830
*syl*
--&gt; []
Posté le 09-12-2003 à 19:32:14  profilanswer
 

mrBebert a écrit :

Eh non :D  
PHP est un super langage où on ne déclare pas les nouvelles variables, mais où il faut re-déclarer dans une fonction les variables globales :pt1cable:  

En clair pour ceux qui sont dur de la feuille : PHP c'est de la merde en boîte :D

n°586832
freed102
Arayashiki
Posté le 09-12-2003 à 19:35:04  profilanswer
 

Yahooooooo !! mon programme marche maintenant !! Merci !! :) :) :) !!!
 
mes calculs sont exacts... tout baigne !!!
 
kewl !!!

n°586836
freed102
Arayashiki
Posté le 09-12-2003 à 19:36:52  profilanswer
 

pour les fonctions... je les utilise jamais.. car à chaque fois ça fait pas ce que je veux... c peut etre pour ça alors ! lol !

n°586873
ToxicAveng​er
Posté le 09-12-2003 à 20:35:36  profilanswer
 

mrBebert a écrit :

Eh non :D  
PHP est un super langage où on ne déclare pas les nouvelles variables, mais où il faut re-déclarer dans une fonction les variables globales :pt1cable:  


 
les variables globales, c mal :o

n°587212
freed102
Arayashiki
Posté le 10-12-2003 à 11:32:57  profilanswer
 

je me sers jamais des variables globales... en fait surtout parceque je ne les connais pas ! lol !

n°587255
freed102
Arayashiki
Posté le 10-12-2003 à 12:10:39  profilanswer
 

cela dit j'ai des erreurs dans mes calculs... je comprends pas trop pourquoi...
 
si je choisi "reliures plastiques"... il choisi pas la bonne valeur.. exemple :
 
si je tape 10 .... il me revoit "0.43€" au lieu de "2.50€"
 
voici la table :
 

Code :
  1. nb_pages_total  prix 
  2. Modifier  Effacer  20 2.50
  3. Modifier  Effacer  40 1.25
  4. Modifier  Effacer  55 0.92
  5. Modifier  Effacer  80 0.63
  6. Modifier  Effacer  95 0.53
  7. Modifier  Effacer  115 0.43
  8. Modifier  Effacer  140 0.35
  9. Modifier  Effacer  165 0.30
  10. Modifier  Effacer  190 0.27
  11. Modifier  Effacer  220 0.23
  12. Modifier  Effacer  240 0.22
  13. Modifier  Effacer  290 0.17
  14. Modifier  Effacer  330 0.15
  15. Modifier  Effacer  390 0.13


 
et voici le code pour les calculs :
 

Code :
  1. $nb_ex=$_SESSION['nb_ex'];
  2. $nb_pages_coul=$_SESSION['nb_pages_coul'];
  3. $nb_pages_nb=$_SESSION['nb_pages_nb'];
  4. $tarifs_finitions=$_SESSION['tarifs_finitions'];
  5. $nb_pages_coul_nb=$nb_pages_coul+$nb_pages_nb;
  6. if ($tarifs_finitions != "agraffes" )
  7.  {
  8.  include("../includes/variables.php" );
  9.  $sqlconnect = "SELECT prix FROM $tarifs_finitions WHERE nb_pages_total >= '$nb_pages_coul_nb' ORDER BY nb_pages_total ASC LIMIT 1";
  10.  mysql_query($sqlconnect);
  11.       $res = MYSQL_QUERY($sqlconnect) or die(mysql_error());
  12.       $hop=mysql_fetch_array($res);
  13.        $prix_reliure_unite=$hop["prix"];
  14.  echo mysql_error();
  15.   $total_reliure_ht=$prix_reliure_unite*$nb_ex;
  16.  $total_reliure_ttc=$total_reliure_ht*$tva3;
  17.  $total_reliure_tva=$total_reliure_ttc-$total_reliure_ht;
  18.  }


Message édité par freed102 le 10-12-2003 à 12:15:38
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  requete MySql par tranches...

 

Sujets relatifs
Problème de compréhension d' une requête SQL[SQL] Optimisation d'une requete
[SGBD][Mysql] Trouver des cles inexistantes[PHP/MySQL] Prob de récup du résultat d'une requete
putainde clefs etrangeres en mysqlProblème de requête SQL dans un prog. en VB
Retrouver la requete sur laquelle est basée un formulaire ACCESS ???[ASP.NET] connexion à mySQL qui échoue
Passage MySql à fichier SYLK (compatible excel) et inverse (PHP) 
Plus de sujets relatifs à : requete MySql par tranches...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR