Pb de requête + condition

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 : Pb de requête + condition

par ImBrOgLiO » 26 févr. 2005, 03:43

J'ai pas remarqué que j'étais pas connecté lors du 1er message...alors je ne peux mettre RÉSOLU...

par ImBrOgLiO » 26 févr. 2005, 03:40

:idea: Il y a de ces journées où on ferait mieux de rester couché!
Merci.

par ouckileou » 26 févr. 2005, 02:25

ben après c'est une requête toute classique rien de plus simple tu l'as déjà fait dans ton exemple

le "AS nb" sert juste à donner un nom à un champ calculé (COUNT(), SUM() etc etc)

par ImBrOgLiO » 26 févr. 2005, 02:14

Merci, j'ai testé ta requête SQL (avec qq modifications) et ça marche:
SELECT Country, COUNT( Country ) AS nb FROM DATA GROUP BY Country HAVING COUNT( Country ) >= 30
Ça m'affiche:

Country nb
-----------------------
Australia 38
Canada 53
France 151
Poland 40
Spain 47
United Kingdom 91
United States 596

Mon problème est en PHP, car je voudrais afficher ces valeurs et pouvoir les exploiter (ex: array, liste déroulante, liens clickables, etc). Comment exploiter nb (ou nombre d'occurences) alors?

Merci de votre aide.

par ouckileou » 26 févr. 2005, 01:37

essaye ça :

Code : Tout sélectionner

SELECT id, COUNT(*) AS nbreOccurences FROM data GROUP BY id HAVING COUNT(*) >= 30
mais ça c'est un problème SQL, donc t'aurais plus de chances de réponse dans le forum "Base de données" ;)

Pb de requête + condition

par Invité » 26 févr. 2005, 00:56

Bonjour à tous(tes).
Je bloque sur un bidule fort simple, mais je pense que j'ai passé trop de temps car je n'y vois plus clair.

Voilà, sur une requête fort simplette, sur une table qui contient le nombre de

Structure de la table:
--------------------------
id | Country |
-----------------------------
abc | France |
abd | Canada |
cba | Canada |
cab | France |
ebc | Belgique |

je souhaite ne retenir que les pays ayant 30 occurences ou plus dans la Table. J'aurais pu lister tous les pays et effectuer une requête pour chacun pour savoir s'il y en plus de 29 dans chacun, mais c'est un processus qui serait fastidieux pour le visiteur, car sur les 103 pays dans la BDD il n'y en que 7 qui respectent cette condition. Alors, comment optimiser cette requête?
<?php

$result = mysql_query ("SELECT Country, COUNT(Country) AS nb FROM data GROUP BY Country " ); 

// Nombre de pays au total BDD (affiche 103)
$nbpays = mysql_num_rows($result);

//	C'EST LÀ OU JE BLOQUE !!! Boucle pour récuperer les pays qui ont 30 occurences ou plus dans la BDD

//	for ($i = 0; $i < $nbpays; $i++)
//	{

	
		while ($show_Ctry=mysql_fetch_array($result))
		{ 
		echo ' <select name="Country" size="1" > ';
		echo "<option value=\"".$show_Ctry['Country']."\">".$show_Ctry['Country']."</option>"; 
		} 
		echo '</select>';
	}

mysql_close();
?>
Merci à l'avance, et désolé pour le charabia d'en haut.