Page 1 sur 1

affichage Resultat de 2 requete dans une list deroulante php

Posté : 31 août 2009, 19:13
par liliass
Bonjour
Svp je suis débitante en php/mysql
le problème c'est que je vx afficher dans une liste déroulante les 15 premiere resultat ordonné par nbr_habitat et le reste des resultat par ordre alphabitique
et j'arrive pas a le faire

la 1er requete par nbr habitat :
   $this->_listingRecord->query = 'SELECT DISTINCT `id_ville` , `nom_ville` FROM `ville` ';
   $this->_listingRecord->query .= sprintf('WHERE `id_departement` LIKE \'%s\'',$smvUser->numDept);
   $this->_listingRecord->query .= 'GROUP BY `nom_ville` ORDER BY `rang_ville` ASC LIMIT 0,15';
   _listingRecord->execute();
le but c'est afficher les resultat de 2 requetes dans une liste deroulante
aidez moi svp "urgent"

Re: affichage Resultat de 2 requete dans une list deroulante php

Posté : 31 août 2009, 20:32
par stopher
Salut ,

Merci de faire un petit .. ou même gros effort au niveau de l'orthographe :!:

Pour en revenir à ton problème , ta requête fonctionne t-elle ?

tu n'arrives pas à exploiter le résultat c'est ça ?

Au niveau de ta requête , je suppose que ta clef primaire est "id_ville" , tu n'as donc pas besoin de mettre DISTINCT devant , car ta clef est toujours unique .

Ensuite , tu nous parles de "nbr_habitat" je ne vois pas de champ avec ce nom ?

Qu'utilises tu pour faire tes requêtes ? une lib spécifique ? perso ?
Bref , il nous manque de très nombreuses informations pour pouvoir t'aider correctement .

Ch.

Re: affichage Resultat de 2 requete dans une list deroulante php

Posté : 01 sept. 2009, 09:32
par liliass
Merci de m'avoir repondu
moi je suis stagiaire et je vais des modification sur un projet dèjà existant, ils ont utilisé des lib person

Bon le problème c'est que j'ai une table ville , qui contient id_ville ,id_region ,id_departement,hab_ville

le but c'est d'affichier dans une liste déroulante les 15 premiere resultat ordonné par hab_ville et le reste par ordre alphabétique.

Re: affichage Resultat de 2 requete dans une list deroulante php

Posté : 01 sept. 2009, 14:47
par liliass
je sais que je suis cheante ,
mais j'ai besoin d'une réponse j'ai essayé avec ce petit code :
$this->_listingRecord->query = 'SELECT `id_ville` , `nom_ville` FROM `ville` ';
	$this->_listingRecord->query .= sprintf('WHERE `id_departement` LIKE \'%s\'',$smvUser->numDept);
	$this->_listingRecord->query .= 'GROUP BY `nom_ville` ORDER BY `rang_ville` ASC LIMIT 0,15';
					
	
	$this->_listingRecord->query = 'SELECT DISTINCT `id_ville` , `nom_ville` FROM `ville` ';
	$this->_listingRecord->query .= sprintf('WHERE `id_departement` LIKE \'%s\'',$smvUser->numDept);
	$this->_listingRecord->query .= 'ORDER BY `nom_ville` ASC';
	
	
	$this->_listingRecord->$nblignes=mysql_num_rows(query); 
							 $this->_listingRecord->$nbchamps=mysql_num_fields(query); 

	for($i=0; $i < $nbchamps; $i++) { 
$this->_listingRecord->$tba1[$i] = mysql_field_name(query,$i); 
 }
 
$this->_listingRecord->$nblignes=mysql_num_rows(query); 
$this->_listingRecord->$nbchamps=mysql_num_fields(query); 

for($i=0; $i < $nbchamps; $i++) { 
$this->_listingRecord->tba2[$i] = mysql_field_name(query,$i); 
 
} 
$this->_listingRecord->list = array_merge($tab1 ,$tab2 );
$this->_listingRecord->List -> execute();
svp j'ai besoin de votre aide..

Re: affichage Resultat de 2 requete dans une list deroulante php

Posté : 01 sept. 2009, 14:59
par Yosh
Si je comprend bien une simple query devrait suffire:
SELECT id_ville, nom_ville, hab_ville from ville order by hab_ville DESC, nom_ville ASC LIMIT 0, 15
Je vois pas trop ou est ton problème en fait.

Dans tous les cas essaye déjà d'obtenir ce que tu veux en faisant ta requête et en l'exécutant dans Phpmyadmin (si c'est bien ça que tu utilise), ensuite tu n'a plus qu'a retranscrire la requête en code.

Re: affichage Resultat de 2 requete dans une list deroulante php

Posté : 01 sept. 2009, 15:21
par zeus
Modération :
Afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

Re: affichage Resultat de 2 requete dans une list deroulante php

Posté : 01 sept. 2009, 15:43
par liliass
Merci Yosh ,
mais c'est pas ca que je vx j'ai déjà expliqué que vx affichier les 15 premier ligne d une liste deroulant les resultats d'une requete qui permet d'afficher les nom des ville trié par nombre d'habitat , et le reste(c'est a dire du 16 jusqu'a la fin des enregistrement) ordonné par ordre alphabétique

Re: affichage Resultat de 2 requete dans une list deroulante php

Posté : 01 sept. 2009, 15:57
par Yosh
Ok, je comprend mieux déjà,

Je ne sais pas faire cela en une requête, mais en deux (si qq'un sait en une, je veux bien connaître la méthode ^^), le but du jeu est le suivant:

- Tu créé ta première requête qui te récupère tes quinze premier enregistrement trier comme bon te semble,
- Ensuite, dans ta deuxième requête il te suffit de récupérer les villes n'étant pas dans ta première requête (id_ville NOT IN (première requête) par exemple)

Il faut que tu récupère les résultats de tes requêtes sous forme de tableau => mysql_fetch_array me semble-t-il.

Une fois que tu a tes deux résultat, tu va va aller jouer avec la fonction array_merge (http://fr2.php.net/manual/en/function.array-merge.php) qui va te fusionner les deux tableaux l'un à la suite de l'autre.

Ne te reste plus qu'a afficher les résultat stocké dans ton tableau dans un select.

Re: affichage Resultat de 2 requete dans une list deroulante php

Posté : 01 sept. 2009, 16:04
par liliass
:D désolée pour le derangement l'idée je l'ai mais puisque je suis débutant j'arrive pas a exprimer ca en code :D

si vous avez un expemble sur vous ou bien si vous pouvez exprimez ca en code je serais très contente

Re: affichage Resultat de 2 requete dans une list deroulante php

Posté : 01 sept. 2009, 16:43
par Yosh
Je vais te donner un exemple de code mais il faudrait que tu essaye de le comprendre et que tu l'adapte à ton code, parcequ'on va pas te donner une solution toute faite.

Si jamais il y a quelque chose que tu ne comprend pas, demande.
<?php
//ici ta première requête
$sql1 = "SELECT ville_id, ville_nom, ville_nb_habitant
	FROM ville
	ORDER BY ville_nb_habitant DESC LIMIT 0, 15";	
$result1 = mysql_query($sql1);
$array1 = mysql_fetch_array($result1);

//ici ta seconde requête
$sql2 = "SELECT ville_id, ville_nom, ville_nb_habitant
	FROM ville
	WHERE ville_id NOT IN (SELECT ville_id
	FROM ville
	ORDER BY ville_nb_habitant DESC LIMIT 0, 15);";	
$result2 = mysql_query($sql2);
$array2 = mysql_fetch_array($result2);

//maintenant tu fusionne les tableaux
$array_final = array_merge($array1, $array2);

//si il y a des résultats
if(sizeof($array_final)>0) {	
?>
<select name="ville" id="ville">
	<?php
	foreach($array_final as $ville) {
		?>
    <option value="<?php echo $ville['ville_id']; ?>"><?php echo $ville['ville_nom']." ".$ville['ville_nb_habitant']; ?></option>
		<?php
	}
	?>
</select>
<?php
} else {
	echo "pas de résultat";
}
?>
Voila, bon courage.

Re: affichage Resultat de 2 requete dans une list deroulante php

Posté : 01 sept. 2009, 16:59
par liliass
merci bcp Yosh
c'est très gentil de votre part

Re: affichage Resultat de 2 requete dans une list deroulante php

Posté : 02 sept. 2009, 09:25
par Yosh
merci bcp Yosh
c'est très gentil de votre part
De rien... :pouce:

Mais as-tu seulement compris mon code ?

Re: affichage Resultat de 2 requete dans une list deroulante php

Posté : 02 sept. 2009, 09:47
par liliass
Oui , je l'ai compris c'est bien logique mais ca marche pas ..

Re: affichage Resultat de 2 requete dans une list deroulante php

Posté : 02 sept. 2009, 11:31
par Yosh
Oui , je l'ai compris c'est bien logique mais ca marche pas ..
Qu'est ce qui ne marche pas? Tu une erreur?

Pour infi, j'utilise PDO avec le connecteur MYSQL.