Mettre des éléments ds un tableau

ladj59 Messages postés 322 Statut Membre -  
ladj59 Messages postés 322 Statut Membre -
Bonjour,


avc le code ci-dessous je récupére une liste de sujets(que je'affiche avec echo $data['$n'];)
mais cette liste présente des doublons donc je voudrais les enlever et mettre tous les sujets dans un formulaire
Comment dois-je faire svp?

j'avais pensé mettre tous les sujets dans un tableau et trier le tableau en éliminant les doublons mais je n'y arrive pas trop

merci d'avance pour votre aide

<code type="php">
<?php

$sujets=mysql_query("SELECT DISTINCT sujet FROM base_physique ORDER BY sujet ");


while($sujet = mysql_fetch_array($sujets)) #propose tous les sujets présents dans la base de donnée
{
$data=explode(",",$sujet['sujet']);
for($n=0;$n<100;$n++)
if($data[$n] != "")
{
echo $data[$n];
}
}
</code>
A voir également:

8 réponses

macgawel Messages postés 676 Statut Membre 89
 
Bonjour.

Je ne comprends pas trop : ton SELECT DISTINCT devrait suffire à éviter les doublons...

sinon, il faut que tu te crées une fonction SupprimerDoublons($tableau). Pour les détails de la fonction, un petit tour sur google t'en donne pas mal...
0
ladj59 Messages postés 322 Statut Membre 3
 
oui mais comment faire pour rentrer tous mes sujets dans un tableau
je n'y arrive pas...
merci
0
Dr Zoidberg Messages postés 547 Statut Membre 100
 
Je ne comprend pas tout non-plus. Qui a t 'il dans ta colonne 'sujet' ? plusieurs sujets séparés par une virgule ?

Si c'est le cas un truc comme (le tableau final est $tableau):
 <?php

$sujets=mysql_query("SELECT DISTINCT sujet FROM base_physique ORDER BY sujet ");

while($sujet = mysql_fetch_array($sujets)) #propose tous les sujets présents dans la base de donnée
{
$data=explode(",",$sujet['sujet']);
foreach($data as $unsujet)
 {
  if(!in_array($unsujet, $tableau))
    {
      $tableau[] = $unsujet;
    }
  }
}
0
ladj59 Messages postés 322 Statut Membre 3
 
oui il y a plusieurs sujets séparés par une virgule
avec ton code
quand je echo $unsujet;
il me met que le derrnier sujet( il ecrase surement a chaque fois)

comment faie pour récupérer tous les sujets dans le tableau ?

merci
0
macgawel Messages postés 676 Statut Membre 89
 
// On se connecte à la base
mysql_connect($host,$user,$password);

$data = array();
$result = mysql_query("SELECT DISTINCT sujet FROM base_physique ORDER BY sujet");

// Pour chaque ligne récupérée dans la requête, on récupère le premier élément dans $data
while($row = mysql_fetch_array($result)) {
   $data[] = $row[0];
 }
 mysql_free_result($result);


En fait, mysql_fetch_array te renvoie la prochaine réponse donnée par ta requête, il faut donc faire une boucle...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dr Zoidberg Messages postés 547 Statut Membre 100
 
Pour mon exemple de code si tu veux tout afficher.
Rajoute a la fin

echo '<table>';
foreach($tableau as $ligne)
{
echo '<tr><td>',$ligne,'</td></tr>';
}
echo '</table>';
0
ladj59 Messages postés 322 Statut Membre 3
 
merci ca marche impec
0
ladj59 Messages postés 322 Statut Membre 3
 
j'ai aussi un autre souc

Dans mon application je peux faire un recherche par sujets dans ma bdd
donc j'affiche le formulaire avec tous les suets présents (comme on vient de le voir) et une fois le sujet sélectionné je peux coché d'autres critéres pour affiner la recherche
sur la pge qui sert à afficher le résultat, mon probléme est que je récupére le sujet sélectionné grâce à une session et ensuite je fais ma requete mais le probléme c'est que je fais SELECT sujet=$_SESSION['sujet'] mais le probléme c'est que cela ne marche pas car dans le champ sujet, il peut y avoir plusieurs sujets(séparés par des virgules) et donc ce ne sera jamais égal si il y a plus d'un sujet

Comment faire svp?
0
macgawel Messages postés 676 Statut Membre 89
 
Là, c'est du SQL...
$requete = "SELECT * FROM table where sujet like '%".$_SESSION['sujet']."%'";


Sélectionne les lignes de la table, où sujet contient $_SESSION['sujet']
0
ladj59 Messages postés 322 Statut Membre 3
 
c'est ce que j'ai fait mais cela ne marche pas car le champs sujet contient plusieurs sujets en général et il ne sera donc pas égal à $_SESSION['sujet' ], il faudrait que $_SESSION['sujet' ] soit comparé avec tous les sujets y compris ceux d'un même champ mais je ne sais pas comment faire...

merci d'avance
0