rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[supprimer les doublons en php]

antic80, le mercredi 25 mai 2005 à 15:08:05
bonjour

comment supprimer les doublons dans une liste déroulante php
Répondre à antic80  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mamiemando, le mercredi 25 mai 2005 à 15:30:58
A part écrire un petit code javascript ou php je vois pas de méthode simple. Un truc du genre (en pseudo code) :

for(i=0;i<taille_liste;i++){
for (j=i;j<taille_liste;){
if(element[i]==element[j]) retirer element[j];
else j++;
}
}

Mais il serait plus simple d'empêcher l'insertion de doublons non ?
Répondre à mamiemando

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antic, le mercredi 25 mai 2005 à 15:33:24
oui mais je suis obligé d'insérer plusieurs fois le meme nom d'article car un article peut avoir plusieurs pages
Répondre à antic

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antic80, le mercredi 25 mai 2005 à 15:46:10
help please
Répondre à antic80

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antic80, le mercredi 25 mai 2005 à 16:32:17
y'a vraiment personne qui a une solution la dessus
Répondre à antic80

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
karine, le mercredi 25 mai 2005 à 16:42:32
Salut !

Tu peux peut-etre mettre tes valeurs dans un tableau d'abord puis enlever les doublons avec ça :
http://www.nexen.net/docs/php/annotee/function.array-unique.­php

Puis mettre le tout dans ta liste déroulante.
Répondre à karine

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antic80, le mercredi 25 mai 2005 à 16:49:16
oui mais je vois pas comment car ds ma base sql j'ai plusieurs fois le meme article avec des pages différentes donc si je supprime les doublons au niveau du nom de l'article je n'aurais plus qu'une seule page a affiché
Répondre à antic80

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
karine, le mercredi 25 mai 2005 à 16:51:30
Quand est-ce qu'il y a des doublons que tu veux supprimer alors ?

un truc du genre article1/page1 s'il est deux fois dans la liste ?
Répondre à karine

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antic80, le mercredi 25 mai 2005 à 16:55:50
dans ma base j'ai :

article 1 page1
article 1 page 2
article 1 page 3
article 2 page 1
article 2 page 2

dans ma liste je veux

article 1 page 1
page 2
page 3
article 2 page 1
page 2
Répondre à antic80

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antic80, le vendredi 27 mai 2005 à 16:51:40
tjs personne pour m'aider
Répondre à antic80

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
romain, le vendredi 27 mai 2005 à 17:01:20
explique toi un peu mieux stp, je me ferais une joie de t'aider... ;-)
Répondre à romain

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
tony, le vendredi 27 mai 2005 à 17:17:44
En BD Oracle ça marcherai

BREAK ON "article";
SELECT article AS "article", page
FROM table
GROUP BY article , page
ORDER BY lien ;

Apres en mysql jsuis pas sur que l'instruction break on existe

bon courage
Répondre à tony

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Nashouille, le lundi 30 mai 2005 à 15:03:47
Je ne suis pas sur de bien répondr eà la question, quelle est la forme du stockage des articles/pages.
l'idéal serait d'utiliser un tableau à 2 dimensions: $tab[article][page]
for($i=0;$i<$tab.size();$i++) //j'ai pas fait de php depuis longtemps je suis pas //sur du tout pour la taille ^^
{	
	echo $tab[$i];
	for($j=0; $j<$tab[$i].size(); $i++)
	{
		echo $tab[$i][$j]."<br>";
	}
}

Mais cela ne fonctionne que dans l'hypothèse où le tableau est remplit dans l'ordre ou tu nous l'as affiché.
Répondre à Nashouille

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antic80, le lundi 30 mai 2005 à 15:14:49
en fait j'ai commencer ce projet y'a quelques semaines

je rentre mes données de la maniere suivante

je rentre les articles de la rubrique dossiers spéciaux puis ceux de la rubrique courrier puis ceux de la rubrique fiche.

je fais ca chaque semaine

les articles sont tous ds la meme table de la maniére suivante

titre de l'article | page de l'article | logiciel

donc dans ma table article tu peux voir

titre de l'article | page de l'article | logiciel

comment faire du vélo | page 1|
comment faire du vélo | page 2|

et moi ds ma liste j'aimerai afficher

comment faire du vélo
....page 1
....page 2
Répondre à antic80

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Nashouille, le lundi 30 mai 2005 à 15:36:06
J'ai pas de serveur web sous la main pour tester désolé.
Ca ça donne quoi?
$sql = 'SELECT * FROM fiche ORDER BY Titre;'; 
$query = mysql_query($sql) or die( 'Erreur' );
$nb = mysql_num_rows($query);
if ( !$nb[0] ) 
{
	echo 'Aucun article';
} 
else 
{$prec=0;
	while ( $list = mysql_fetch_array( $query ) ) {
	{
		if($prec != $list['Titre'])
			echo $list['Titre']."<BR>";
		
		echo $list['page']."<BR>";
		
		$prec = $list['Titre'];
	}
}
Répondre à Nashouille

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antic80, le lundi 30 mai 2005 à 15:56:49
pour faire plus simple je t'envoie le code que j'ai deja fais peut etre sa sera plus facile pour toi

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<title>Document sans titre</title>

</head>

<body>
<table border="1" bgcolor="" width="100%">
<tr>
<td class="tableaugauche" >
<font face="@Arial Unicode MS" size="6"><b><div align="center">Mon encyclopédie Informatique</div></b></font>
</td>
</tr>
</table>



<table border="1" bgcolor="" width="100%">
<tr>
<td class="tableaugauche" width="">
<FORM ACTION="nouveau.php" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded">
<SELECT NAME="Categorie" >
<OPTION value="1">Dossiers Spéciaux
<OPTION value="2">Courrier des lecteurs
<OPTION value="3">Fiches Techniques
</SELECT>
<INPUT TYPE="SUBMIT" VALUE="Envoyez">

</DIV>


</form>



<?php
// connexion à la base
$Host = "localhost";
$User = "root";
$Password = "antic";
$Database = "micro";

$idConnect = mysql_connect( $Host, $User, $Password)
or die( "Connexion impossible.");
$db = mysql_select_db( $Database, $idConnect)
or die( "Accès base impossible.");

if(isset($_POST['Categorie'])) $Categorie=$_POST['Categorie'];
else $Categorie="";

if(isset($_POST['Article']))
$tmp = $_POST['Article'];
else
$tmp = "";
$image = "";

// Requête SQL

$rqSql = "SELECT Id,Titre,Page,Logiciel FROM article where CodeCat=$Categorie";

// Exécution de la requête
$result = mysql_query( $rqSql, $idConnect) or die( "Pour obtenir la liste des articles veuillez sélectionner une catégorie");

$liste2="<select name='Article' style='font: 10pt arial;'>";
while ( $row = mysql_fetch_array( $result)){
$Id = $row["Id"];
$Titre= $row["Titre"];
$Page= $row["Page"];
if($Id == $tmp)
$image = $Page;
$Logiciel = $row["Logiciel"];
$liste2 .="<optgroup label=\"$Titre\">";
$liste2 .= "<option value='$Id'>...............$Page</option>";
$liste2 .="</optgroup >";
}

$liste2 .="</select>";
print '<form method="POST" action="encyc.php">';
print $liste2;

print '<INPUT TYPE="hidden" NAME="Categorie" VALUE="'.$Categorie.'">';
print '<INPUT TYPE="SUBMIT" NAME="envoie" VALUE="Affichez">';
print '</form>';



mysql_close( $idConnect);
?>

</td>
</tr>
</table>
<table border="1" width="100%">
<tr>
<td class="tableaugauche">
<?php
if( $image != "" )
{
echo "<IMG width='900px' SRC=\"".$image.".jpg\">";

}
else echo "pas d'image choisie...";
?>



</td>
</tr>
</table>
</body>
</html>
Répondre à antic80

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Nashouille, le lundi 30 mai 2005 à 16:16:16
Donc ça ça affiche
article 1
.......page1
aticle 1
.....page2

Je voit pas grand chose à changer. Pour eviter les doublon sur le titre j'aurais fait :
$rqSql = "SELECT Id,Titre,Page,Logiciel FROM article where CodeCat=$Categorie ORDER BY Titre"; //on range dans l'ordre des articles

// Exécution de la requête
$result = mysql_query( $rqSql, $idConnect) or die( "Pour obtenir la liste des articles veuillez sélectionner une catégorie");
$prec=0;
$liste2="<select name='Article' style='font: 10pt arial;'>";
while ( $row = mysql_fetch_array( $result)){
$Id = $row["Id"];
$Titre= $row["Titre"];
$Page= $row["Page"];
if($Id == $tmp)
$image = $Page;
$Logiciel = $row["Logiciel"];
if($prec!=$Titre)      //On regarde si on a changé d'article
{  $liste2 .="<optgroup label=\"$Titre\">"; }
$liste2 .= "<option value='$Id'>...............$Page</option>";
if($prec!=$Titre)
{ $liste2 .="</optgroup >"; }
$prec=$Titre; //on change la valeur de l'article precedent pour le prochain tour
} 


En fait étant donné que les articles sont dans l'ordre, on a juste à savoir si l'article précédent est le meme que l'actuel, si l'article est le même on ne l'affiche pas autrement on l'affiche.
Répondre à Nashouille

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antic80, le lundi 30 mai 2005 à 16:20:55
ok je v voir
Répondre à antic80

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antic80, le lundi 30 mai 2005 à 16:33:16
y'a juste un problème le 1er titre ne s'affiche pas

pour le 1ere titre il me met juste les pages et ensuite il me met le nom de l'article suivant

a part ca l'affichage est parfais
Répondre à antic80

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Nashouille, le lundi 30 mai 2005 à 16:40:58
Ah oui c'est peut-être $prec qui est mal initialisé, en le mttant à 0 il doit le prendre pour un int et la comparaison dans le if ne fonctionne pas.
Essaye de remplacer $prec=0 par $prec="" ou une chaine qui ne sera jamais jamais (genre mhqsoifhqspofihqsf risque fort de ne pas être le titre d'un article ^^ )
Répondre à Nashouille
PHP - Connexion à une base de données Php permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de données.... www.commentcamarche.net/php/phpbdd.php3
Supprimer des donées de la base de données (Résolu)Bonjour, j'ai un petit soucis. Je souhaiterais supprimer des données dans ma base donné mais je n'y arrive pas. J'ai essayé différentes méthodes sans succes. Voici mon code. supprimer-user.php Supprimer un... www.commentcamarche.net/forum/affich-4839907-supprimer-des-donees-de-la-base-de-donnees
Macro suppression doublon Excel (Résolu)Bonjour, Alors je vous explique la situation. Je suis en stage dans une boîte d'organisation d'évenement médicale et aujourd'hui j'ai recu pour mission de supprimer les doublons (meme nom et prenom et adresse, on ne tient pas... www.commentcamarche.net/forum/affich-4590808-macro-suppression-doublon-excel
Supprimer les accents avec PHPPour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function... www.commentcamarche.net/faq/sujet-8063-supprimer-les-accents-avec-php
Comment enlever la version de PHP : X-Powered-By: PHP/4.1.0 ?Par défaut, PHP est configure pour envoyer un en-tête HTTP appelé X-Powered-By, donnant la version de PHP utilisée. Pour supprimer cet en-tête, il suffit de modifier l'option expose_php dans le fichier php.ini de la manière suivante : expose_php... www.commentcamarche.net/faq/sujet-9256-comment-enlever-la-version-de-php-x-powered-by-php-4-1-0
Supprimer doublons, listes deroulante aide!!! (Résolu)Bonjour, j'ai un petit souci : j'ai une base de donnée client sur excel? J'ai enregistré les clients qui achete et renouvelle des abonnements. Mais le souci c'est que quand le client renouvelle son abo, il apparait plusieur fois... www.commentcamarche.net/forum/affich-5513586-supprimer-doublons-listes-deroulante-aide
Comptabiliser et suppresion doublon (Résolu)Bonjour, Je débute en perl et je dois comptabiliser les doubons et les supprimer d'un fichier passé en paramètre. Mon code supprime les doublons mais ne les comptabilise pas, avez-vous une idée ? Je pense qu'il ne manque pas grand chose,... www.commentcamarche.net/forum/affich-6937708-comptabiliser-et-suppresion-doublon
Lien pour supprimer en php (Résolu)Bonjour je suis débutante en php je travaille actuellement sur easyphp j'ai fait un tableau qui affiche les données d'une table document et jai mis devan chaque ligne deux liens sous forme image modifier et supprimer et je vouderai savoir... www.commentcamarche.net/forum/affich-3021214-lien-pour-supprimer-en-php
Télécharger EasyPHPEasyPHP est un environnement de travail packagé comprenant le serveur web Apache, le système de gestion de bases de données MySQL et le support du langage PHP. Il est fourni avec phpMyAdmin, une interface permettant de manipuler très facilement les... www.commentcamarche.net/telecharger/telecharger-82-easyphp
Télécharger Notepad++Notepad++ est un editeur de code source qui supporte plusieurs langages. Il s'agit d'un logiciel libre performant et compact. Fonctionnalités de Notepad++ Coloration syntaxique pour les langages suivants : C, C++, Java, C#, XML, HTML, PHP,... www.commentcamarche.net/telecharger/telecharger-34055333-notepad
Télécharger FirstpageFirst Page 2006 est un éditeur html gratuit et excellent. Il permet de travailler un code HTML en couleur, ainsi que de prévisualiser le site. 1st Page 2006 supporte les standards HTML, XHTML, PHP, ASP, Cold Fusion, Javascript, CSS, SSI et Perl. www.commentcamarche.net/telecharger/telecharger-33-firstpage
Toutes les réponses pour « [supprimer les doublons en php] »