Soucis sur requête sql avec MIN et MAX


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Soucis sur requête sql avec MIN et MAX

Message le Mer Sep 10, 2008 18:28

Bonjour
Je ne parviens pas à afficher la valeur min et max de la table ci dessous... pourquoi?
----------TARIF-----
-------id -------prix----------
1221056967----0
1221056967----0
1221056967----0
1221056967----0
1221056967----0
1221056967----0
1221056967----0
1221056967----999
1221056967----0
1221056967----656
Code: Tout sélectionner
<?php
include("data_bd.php");
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier data_bd.php.');

$query187 = mysql_query("SELECT MIN(prix), MAX(prix) FROM TARIF WHERE id =1221056967");

$toto="";

while($tata = mysql_fetch_array($query187))
{
   $toto = $tata['prix'];
   $toto.="$prix";
   
   echo $toto;

}
?>

Id et prix sont en int(250). Sous phpmyadmin sa fonctionne, mais pas ma requête ... quelle en est la raison svp ?
Merci

poulpe
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 29 Juin 2004

Message le Mer Sep 10, 2008 18:43

Bonjour.
Ta requête est censée retourner une seule ligne, donc le whlle est inutile.
Ensuite, MIN(prix) as prixmin,MAX(prix) as prixmax

et tu obtiendra un tableau avec pour clé 'prixmin' et 'prixmax'

Bonne soirée


Aye-Aye
WRInaute passionné
WRInaute passionné
 
Messages: 1917
Inscription: 15 Avr 2005

Message le Mer Sep 10, 2008 18:57

Un truc un peu comme cela, je crois...
Code: Tout sélectionner
<?php
include("data_bd.php");
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement rempli les donn&eacute;es du fichier data_bd.php.');

$query187 = mysql_query("SELECT MIN(prix), MAX(prix) FROM TARIF WHERE id=1221056967");
$toto = mysql_query($query187) or die('Erreur SQL !<br>'.$query187.'<br>'.mysql_error());

echo $toto;
?>

poulpe
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 29 Juin 2004

Message le Mer Sep 10, 2008 19:05

Code: Tout sélectionner
<?php
include("data_bd.php");
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier data_bd.php.');

$query187 = mysql_query("SELECT MIN(prix) as prixmin, MAX(prix) as prixmax FROM TARIF WHERE id =1221056967");

$toto="";

$tata = mysql_fetch_array($query187);

$toto = $tata['prixmin'];
$toto.=$tata['prixmax'];
   
   echo $toto;

 
?>
Mais la tu vas concaténer les deux valeurs... si tu veux els afficher séparément ca fait echo $tata['prixmin'];  echo $tata['prixmax'];

P.S : Aye Aye, ton code va afficher la ressource, pas le résultat.
Dernière édition par poulpe le Mer Sep 10, 2008 19:21, édité 4 fois.


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Message le Mer Sep 10, 2008 19:06

J'ai pas saisie cette partie .
poulpe a écrit: MIN(prix) as prixmin,MAX(prix) as prixmax

A quoi correspond prixmin et prixmax ?

Ma requête sql actuelle utilise un while car elle est censé retourner plusieurs ligne par la suite .. la c'est juste un teste ^^.

Donc en imaginant que la table du poste plus haut soit "pleine" et que l'id actuelle soit une variable du genre "$id", pourquoi je n'ai aucun résultat retourné en l'état ?

Merci de vos lumières :).


manthoR
WRInaute discret
WRInaute discret
 
Messages: 231
Inscription: 13 Mar 2006

Message le Mer Sep 10, 2008 19:06

et surtout un "group by id"

poulpe
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 29 Juin 2004

Message le Mer Sep 10, 2008 19:07

pourquoi grouper si on précise une id dans le where ?
Tryan j'ai édité mon post en mettant le code.
Le as sert à nommer ton champ, dans phpmyadmin tu verras que la colonne doit s'intituler MIN(prix) ou un truc dans le genre.


manthoR
WRInaute discret
WRInaute discret
 
Messages: 231
Inscription: 13 Mar 2006

Message le Mer Sep 10, 2008 19:14

vrai lu trop vite.

Et habitude de grouper dès utilisation d'agrégat :)

[hs]Bon ils arrivent mes sushis j'ai faim...[/hs]


Aye-Aye
WRInaute passionné
WRInaute passionné
 
Messages: 1917
Inscription: 15 Avr 2005

Message le Mer Sep 10, 2008 19:27

poulpe a écrit: P.S : Aye Aye, ton code va afficher la ressource, pas le résultat.

Oups oui, je vais un peu vite en affaire. :?


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Message le Mer Sep 10, 2008 19:56

Ok :D , je ne connaissais pas la syntaxe sql lié à MIN() et MAX() avec "as" ... j'étais loin de trouver, même très très loin ^^...
Je vous remercie de vos lumières et je tacherais de m'en souvenir.
Merci^^.


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Mer Sep 10, 2008 20:08

tu devrais lire un mini cours sur le SQL. c'est dans les premières pages ;) C'est quand même dingue de se lancer dedans comme ça à l'aveugle, enfin bon ...


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités