Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1209 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Effacer des doublons

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Effacer des doublons

n°1889477
maktu
Posté le 29-05-2009 à 14:43:52  profilanswer
 

Bonjour,  
 
Voila dans mon script je souhaiterais effacer les doublons. J'ai essayer avec un array_unique mais ce la ne fonctionne pas.
Quelqu'un a une idée ?
 

Code :
  1. <?php
  2. if(isset($_POST["Famille"])){
  3.          $Vfamille=$_POST["Famille"]
  4. ?>
  5.        
  6.            <label>Marque</label>
  7.            <select name='Marque'>
  8.            <option>--Choix--</option>
  9.          <?php
  10.        
  11.          $fichier="Produits.csv";
  12.          $var=fopen("$fichier","r+" );
  13.          while( !feof($var))
  14.          {
  15.           $ligne=fgets($var);
  16.           $partie=explode(";",$ligne);
  17.           $famille=$partie[0];//nom de la famille
  18.           $sousfamille=$partie[1];//nom de la sousfamille
  19.           $marque=$partie[2];//marque
  20.           $marque=str_replace('"','',$marque);
  21.           $sousfamille=str_replace('"','',$sousfamille);
  22.           $famille=str_replace('"','',$famille);
  23.          
  24.  $truc = $marque;
  25.  $machin = array_unique($truc);
  26. for($i=0;$i < count($machin) ; $i++){
  27.          
  28.           if ($Vfamille==$famille)
  29.        
  30.        
  31.      
  32.        
  33.          
  34.           echo "<OPTION VALUE=' $marque'>". $machin."</OPTION>";

mood
Publicité
Posté le 29-05-2009 à 14:43:52  profilanswer
 

n°1889518
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 29-05-2009 à 15:15:35  profilanswer
 

où est le array_unique ? (apdmc :D)
mets un exemple de ce que tu obtiens/souhaites obtenir ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1889521
maktu
Posté le 29-05-2009 à 15:22:05  profilanswer
 

Voila un résultat qui est le plus proche de ce que je souhaite obtenir.
http://img7.imageshack.us/img7/7848/sanstitre2ccw.png
J'aimerais tt simplement la mm chose sans que les valeurs du menu de droite arrparaisse plusieur fois....

n°1889553
maktu
Posté le 29-05-2009 à 16:23:29  profilanswer
 

personne ?

n°1889616
guybrush02
Posté le 29-05-2009 à 17:44:24  profilanswer
 

Soit tu n'as rien compris au code que tu écris, soit il manque pas mal d'informations pour pouvoir te répondre. Quoiqu'il en soit, si tu as un array quelque part duquel tu souhaites virer les doublons, array_unique est là pour ça.  
 
En ligne 45 de ton code dans le premier post, pourquoi tu utilises encore $marque et $machin dans ta boucle, alors que $machin est un array (et donc tu devrais plutôt avoir $machin[$i] que $machin tout court) ?

n°1889624
maktu
Posté le 29-05-2009 à 17:53:29  profilanswer
 

Oui je n'ai pas mit le début qui pourrai plus être inutile qu'autre chose ^^
j'ai essayer avec ce que tu m'a dit mais j'ai tjrs des doublons

n°1889628
maktu
Posté le 29-05-2009 à 17:58:26  profilanswer
 

Code :
  1. <?php
  2. session_start();
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7. </head>
  8. <body>
  9. <form  name="form1" method="post" action="">
  10. <fieldset style="width: 1000px">
  11.   <legend>Liste liées</legend>
  12.  
  13. <label>Famille</label>
  14. <select name='Famille' id='idFamille' onchange="document.form1.submit();" >
  15.   <option>--Choix --</option>
  16.  
  17. <?php
  18.   $fichier="Produits.csv";
  19.   $var=fopen("$fichier","r+" );
  20.   while( !feof($var))
  21.   {
  22.             $ligne=fgets($var);
  23.             $partie=explode(";",$ligne);
  24.             $famille=$partie[0];
  25.             $sousfamille=$partie[1];
  26.             $famille=str_replace('"','',$famille);
  27.             $sousfamille=str_replace('"','',$sousfamille);
  28.            
  29.             if (($famille!="" )&&(!isset($_SESSION[$famille]))) // par contre la c'est intelligent de pas mettre de valeur nul
  30.             {
  31.            
  32.                         
  33.             echo "<OPTION VALUE='$famille' ";
  34.              if($famille==$famille) echo " selected ";
  35.               echo " style='background:rgb(192,192,192)' >".$famille."</OPTION>";
  36.                 $_SESSION[$famille]="aa";
  37.         }
  38.            
  39.            
  40.             if (($sousfamille!="" )&&(!isset($_SESSION[$sousfamille]))) // par contre la c'est intelligent de pas mettre de valeur nul
  41.             {
  42.          
  43.                echo "<OPTION VALUE='$sousfamille' ";
  44.              if($sousfamille==$sousfamille) echo " selected ";
  45.               echo " >".$sousfamille."</OPTION>";
  46.               $_SESSION[$sousfamille]="aaa";
  47.         
  48.             }
  49.            
  50. }
  51. ?>
  52. </SELECT>
  53. <?php
  54. if(isset($_POST["Famille"])){
  55.          $Vfamille=$_POST["Famille"]
  56. ?>
  57.        
  58.            <label>Marque</label>
  59.            <select name='Marque'>
  60.            <option>--Choix--</option>
  61.          <?php
  62.        
  63.          $fichier="Produits.csv";
  64.          $var=fopen("$fichier","r+" );
  65.          while( !feof($var))
  66.          {
  67.           $ligne=fgets($var);
  68.           $partie=(explode(";",$ligne));
  69.           $famille=$partie[0]; //nom de la famille
  70.           $sousfamille=$partie[1]; //nom de la sousfamille
  71.           $marque=$partie[2]; //marque
  72.           $marque=str_replace('"','',$marque);
  73.           $sousfamille=str_replace('"','',$sousfamille);
  74.           $famille=str_replace('"','',$famille);
  75.          
  76. $truc = array($marque);
  77. $machin = array_unique($truc);
  78. for($i=0;$i < count($machin) ; $i++){
  79.           if ($Vfamille==$famille)
  80.         echo "<OPTION VALUE=' $machin'>". $machin[$i]."</OPTION>";
  81.          
  82.          
  83.          
  84.                           //echo "<OPTION VALUE=' $marque'>". $Vfamille."--".$famille."</OPTION>";
  85.                              //else echo "<OPTION VALUE=' $marque'>". ""."</OPTION>";
  86.                               //$_SESSION[$marque]="aaa";
  87.  }
  88. }
  89. }
  90. ?>
  91. </SELECT>
  92. </form>
  93. <?php
  94. echo "$Vfamille";
  95. session_destroy();
  96. ?>
  97. </body>
  98. </html>

n°1889629
maktu
Posté le 29-05-2009 à 17:58:34  profilanswer
 

voila tt le code ^^

n°1889645
guybrush02
Posté le 29-05-2009 à 18:20:45  profilanswer
 

L90, tu transformes $marque, qui n'est pas un array, en un array $truc. As-tu essayé de voir ce que contenait $truc ? Je pense que ce n'est pas ce à quoi tu penses.  
 
Par ailleurs, je pense que le traitement des doublons ne devrait pas se faire à cet endroit, car tu n'as pas une vue d'ensemble de "toutes les données" (à moins que $marque ne soit destiné à contenir une liste de marques).

n°1890196
maktu
Posté le 01-06-2009 à 20:38:32  profilanswer
 

Je ne sais pas trop comment utiliser les array, ce qui explique la faute au niveau de la ligne 90.  
 
$marque contient toute les marque du fichier .csv
Il me faudrait juste qu'elle n'aparaisse qu'une seule fois.
Avec une condition du genre , si il est déja présent alors l'afficher qu'une fois....
Je ne sais pas qu'elle fonction php utiliser pour supprimer ces doublons.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Effacer des doublons

 

Sujets relatifs
Function, Vérification doublons dans un formulaireVBS Tester si un dossier plus vieux de 7 jours existe et l'effacer
Alerte doublons + updatecommet effacer le contenue un fichier texte en vb.net SVP
Détecter les doublons sur une base de données MYSQL[sql]Requête qui affiche les doublons à partir d'un critère
à effacer[Base de donnée] Effacer les doublons...
effacer tout sauf les doublons 
Plus de sujets relatifs à : Effacer des doublons


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR