Tom's Guide > Forum > Programmation > Requette MySQL en php

Requette MySQL en php

Forum Programmation : Requette MySQL en php

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjours,

J'ai fait une requette sur ma base de donné.

Code :
  1. $sql = mysql_query("SELECT `module` FROM `modules."` ORDER BY 'nom' " );
  2.             while (list($module) = mysql_fetch_array($sql))
  3.             {
  4.                 echo "$module";
  5.             }



Mon problème, c'est qu'il peut y avoir deux fois le meme module et je voudrais l'afficher qu'une seul fois...

Merci

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

SELECT DISTINCT?

Répondre à Rakipu

Bon, j'ai trouver un autre moyen, mais j'ai un problème....
A la fin de ma fonction while je défini une variable $save, mais qui pert sa valeur au debut ...

Répondre à St3fff

J'ai ceci dans mon while...

Code :
  1. $mod = explode("&", $module);
  2.             if ($save == $mod[0])
  3.             {
  4.             $aff = $mod[1];
  5.             }
  6.             else
  7.             {
  8.             $aff = $mod[0];
  9.             }
  10.             $save = $mod[0];



Et pourtant il m'affiche toujours $mod[0]

Répondre à St3fff

Je comprends pas ton problème.
(Au fait, while c'est une boucle, pas une fonction.)

Citation :

$save = $mod[0];


Normal que $save contienne $mod[0], non?

Répondre à Rakipu

Normalement, mais les ca m'affiche tout les $mod[0], alors que si deux $mod[0] se suivent il doit afficher un $mod[1] à la place...

Pourtant ca ne le fait pas...

Répondre à St3fff

J'avais oublier....

Code :
  1. $sql = mysql_query("SELECT `module` FROM `modules."` ORDER BY 'nom' " );
  2. while (list($module) = mysql_fetch_array($sql))
  3.           {
  4.                         $mod = explode("&", $module);
  5.             if ($save == $mod[0])
  6.             {
  7.             $aff = $mod[1];
  8.             }
  9.             else
  10.             {
  11.             $aff = $mod[0];
  12.             }
  13.                         $save = $mod[0];
  14.                   echo "$aff";
  15.           }



Et mon probleme est que $mod[1] ne s'affiche pas quand il y a deux $mod[0] qui se suivent...
Ca m'affichera toujours $mod[0]...


Message édité par St3fff le 17-01-2007 à 16:50:33
Répondre à St3fff

tout d'abord, si tu fais un list(), utilise plutôt mysql_fetch_row(), il est inutile de faire forcer le cpu.
Ensuite, il vaut mieux mettre une valeur initiale à $save.
tertio, tu ferais mieux d'utiliser la requète que t'a donné Rakipu qui permet d'optimiser un peu ta recherche.
Dernièrement, tu te retrouves avec un tableau ($mod) pouvant contenir des valeurs identiques? array_unique() pourrait t'aider.

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

Merci beaucoup,
$save est defini a l'exterieur de ma boucle.

Le problème avec la requète de Rakipu, c'est qu'elle ne peut pas fonctionner dans se cas.
J'utilise explode, et les données que contient ma base de donné sont du type:

News&index
News&post
Forum&index
Forum&seek

Je voudrais donc que cet exemple donne:

News
post
Forum
seek

Si vous s'avez comment faire...
Merci

Répondre à St3fff

ah ok.
Alors la modif est relativement simple.

Code :
  1. <?
  2. $sql = mysql_query("SELECT `module` FROM `modules."` ORDER BY 'nom' " );
  3. $total_mod = Array();
  4. while (list($module) = mysql_fetch_row($sql)) {
  5.   $mod = explode("&", $module);
  6.   foreach ($mod as $curmod) {
  7.       $total_mod[] = $curmod; // on ajoute chaque module dans le tableau
  8.   }
  9. }
  10. $mods = array_unique($total_mod);
  11. print_r($mods);
  12. ?>


$mods est au final un tableau qui contient la liste des modules sans doublon.

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

Je me retrouve avec un tableau ou tout est rentrer dedans....

Je vais pas me lancer dans autre chose, vois tu l'erreur de monde code ?

Sais tu pourquoi mon if est toujours faux ?

Répondre à St3fff

C'est simpa de m'aider ;)

Répondre à St3fff
Tom's Guide > Forum > Programmation > Requette MySQL en php
Aller à :

Il y a 2863 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens