requete MySql par tranches... - PHP - Programmation
Marsh Posté le 08-12-2003 à 18:25:28
WHERE champ < ton_max AND champ >= ton_min
Marsh Posté le 08-12-2003 à 18:31:39
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 :
|
je voudrais par exemple que si mon client tape "105" MySQL me retourne "2.29€"
est-ce possible ?
Marsh Posté le 08-12-2003 à 18:39:10
select nb_page where nb_page>105 LIMIT 0,1 ?
Marsh Posté le 08-12-2003 à 18:39:50
where nb_pages >= user_page order by nb_page limit 1
Marsh Posté le 08-12-2003 à 18:47:05
merci beaucoup... je vais essayer ça (quand le serveur sera de nouveau en fonction ! )
Marsh Posté le 09-12-2003 à 13:11:25
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 !
Marsh Posté le 09-12-2003 à 13:17:25
freed102 a écrit : je voudrais par exemple que si mon client tape "105" MySQL me retourne "2.29?" |
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
Marsh Posté le 09-12-2003 à 14:55:24
j'ai fait ça :
Code :
|
... j'ai pas d'erreur... Mais quand je veux afficher $prix_reliure_unite il n'affiche rien ! !!!
Marsh Posté le 09-12-2003 à 15:56:52
j'ai beau chercher... je comprends pas pourquoi il ne trouve pas de valeur avec ma requete !!!
Marsh Posté le 09-12-2003 à 16:01:17
j'ai tenté avec un code plus basic :
Code :
|
Mais il n'affiche rien !!
Marsh Posté le 09-12-2003 à 16:15:48
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 !
Marsh Posté le 09-12-2003 à 16:48:01
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...
Marsh Posté le 09-12-2003 à 17:18:11
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
Marsh Posté le 09-12-2003 à 17:22:59
a la place de $res = @MYSQL_QUERY($sqlconnect2)
met
$res = MYSQL_QUERY($sqlconnect2) or die(mysql_error());
et dit ce que ca t'affiche
Marsh Posté le 09-12-2003 à 17:27:01
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 ??
Marsh Posté le 09-12-2003 à 17:28:06
$prix_reliure_unite= mysql_result($res,0);
Marsh Posté le 09-12-2003 à 17:28:11
Revoici le dernier code... pour les tests
Code :
|
Marsh Posté le 09-12-2003 à 17:30:01
$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
Marsh Posté le 09-12-2003 à 17:37:18
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 !
Marsh Posté le 09-12-2003 à 17:38:38
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
Marsh Posté le 09-12-2003 à 17:40:25
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?
Marsh Posté le 09-12-2003 à 17:44:59
oui ça me sort qu'une valeur... visiblement c la deuxieme !
Marsh Posté le 09-12-2003 à 17:51:53
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
Marsh Posté le 09-12-2003 à 19:30:42
Eh non
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
Marsh Posté le 09-12-2003 à 19:32:14
mrBebert a écrit : Eh non |
En clair pour ceux qui sont dur de la feuille : PHP c'est de la merde en boîte
Marsh Posté le 09-12-2003 à 19:35:04
Yahooooooo !! mon programme marche maintenant !! Merci !! !!!
mes calculs sont exacts... tout baigne !!!
kewl !!!
Marsh Posté le 09-12-2003 à 19:36:52
pour les fonctions... je les utilise jamais.. car à chaque fois ça fait pas ce que je veux... c peut etre pour ça alors ! lol !
Marsh Posté le 09-12-2003 à 20:35:36
mrBebert a écrit : Eh non |
les variables globales, c mal
Marsh Posté le 10-12-2003 à 11:32:57
je me sers jamais des variables globales... en fait surtout parceque je ne les connais pas ! lol !
Marsh Posté le 10-12-2003 à 12:10:39
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 :
|
et voici le code pour les calculs :
Code :
|
Marsh Posté le 08-12-2003 à 18:17:08
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