par
FuZZyLine » 28 oct. 2009, 16:22
Salut,
Alors !!
Select, c'est un menu déroulant !! J'aurai peut-être du utiliser ce mot dés le départ

Donc, en fonction des infos que je vais chercher dans ma table, et que je veux afficher dans le menu déroulant, certaines infos peuvent avoir déjà été inscrite dans le menu déroulant lors d'une entrée antèrieure.
Comment faire pour que je ne trouve pas plusieurs fois la même information dans le menu déroulant !!
Vu que je cherche du code, je n'ai rien à te proposer !!
Merci encore !!
Voici un script minimaliste assez illisible mais qui marche.
Pendant, semble t'il, de ce que tu cherches. Plusieur solutions pour un même problème.
kran à posé les bases à toi d'adapter. Je pense qu'un tri interne à la base et une comparaison
en html peut être une bonne idée.
<?php
// Gestion du tableau générique, peut être placé dans setElement mais
// en dehors je préfère.
//
function & gestion()
{
static $array = Array();
return $array;
}
// si mixed est faux renvoie tout le tableau
// si différent de faux alors empile la donnée
//
// Retour: valeur ou boolean suivant échec/réussite
//
function setElement($strLine)
{
// Récupère le tableau
//
$array = & gestion();
// Si déja comprise dans le tableau alors on zappe
//
if (in_array($strLine, $array)) return false; //die ("Clef ".$strLine." deja presente...!");
// Assigne la valeur
//
array_push($array, $strLine);
// Réussite de la fonction
//
return true;
}
// Traitement de la DB
//
function working()
{
// Récup le tableau
//
$array = & gestion();
// Gestion "mini" de l'appel DB
//
mysql_connect("localhost", "login", "passwd") or die("Crash connect...");
mysql_select_db("Ta_DB");
// Appel
//
$result = mysql_query("SELECT Le_Sujet FROM Ta_Table");
if ($result !== false)
{
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
// Enregistre ou non l'élément
//
if (setElement($row["Le_Sujet"])) { ; };
else { ; }
}
}
mysql_close();
}
// Ai collé le traitement dans une fonction vu que j'aime pas les trucs qui trainent
//
working();
// rendu html
//
$cde = "";
.
.
.
$cde .= "<form>\n";
$cde .= " <select>\n";
// Nombre d'éléments dans le tableau
//
$iCount = count($array);
// Si le tableau est à : au moins 1 élément
//
if ($iCount > 0)
{
for ($i=0; $i<=$iCount-1; $i++)
{
// Mettre des attributs...
//
$cde .= " <option value=\"".$array[$i]."\">$array[$i]</option>\n";
}
}
$cde .= " </select>\n";
$cde .= "</form>\n";
.
.
.
echo $cde;
exit(0);
?>
Ce n'est rien de plus qu'un exemple. A toi de (peut-être) combiner les deux formes.
Le script est "très moche" je préfère travailler en objet mais bah... ca te donne déja
une "petite" réponse afin d'organiser tes idées.
Telle que présenté mon script gère qu'un tableau à 1 dim mais pas très difficile
de le modifier.
Si je suis à côté, désolé, suis pas loin tout de même
Bon code @+

Salut,
[quote="nagstef"]
Alors !!
Select, c'est un menu déroulant !! J'aurai peut-être du utiliser ce mot dés le départ :)
Donc, en fonction des infos que je vais chercher dans ma table, et que je veux afficher dans le menu déroulant, certaines infos peuvent avoir déjà été inscrite dans le menu déroulant lors d'une entrée antèrieure.
Comment faire pour que je ne trouve pas plusieurs fois la même information dans le menu déroulant !!
Vu que je cherche du code, je n'ai rien à te proposer !!
Merci encore !!
[/quote]
Voici un script minimaliste assez illisible mais qui marche.
Pendant, semble t'il, de ce que tu cherches. Plusieur solutions pour un même problème.
kran à posé les bases à toi d'adapter. Je pense qu'un tri interne à la base et une comparaison
en html peut être une bonne idée.
[php]
<?php
// Gestion du tableau générique, peut être placé dans setElement mais
// en dehors je préfère.
//
function & gestion()
{
static $array = Array();
return $array;
}
// si mixed est faux renvoie tout le tableau
// si différent de faux alors empile la donnée
//
// Retour: valeur ou boolean suivant échec/réussite
//
function setElement($strLine)
{
// Récupère le tableau
//
$array = & gestion();
// Si déja comprise dans le tableau alors on zappe
//
if (in_array($strLine, $array)) return false; //die ("Clef ".$strLine." deja presente...!");
// Assigne la valeur
//
array_push($array, $strLine);
// Réussite de la fonction
//
return true;
}
// Traitement de la DB
//
function working()
{
// Récup le tableau
//
$array = & gestion();
// Gestion "mini" de l'appel DB
//
mysql_connect("localhost", "login", "passwd") or die("Crash connect...");
mysql_select_db("Ta_DB");
// Appel
//
$result = mysql_query("SELECT Le_Sujet FROM Ta_Table");
if ($result !== false)
{
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
// Enregistre ou non l'élément
//
if (setElement($row["Le_Sujet"])) { ; };
else { ; }
}
}
mysql_close();
}
// Ai collé le traitement dans une fonction vu que j'aime pas les trucs qui trainent
//
working();
// rendu html
//
$cde = "";
.
.
.
$cde .= "<form>\n";
$cde .= " <select>\n";
// Nombre d'éléments dans le tableau
//
$iCount = count($array);
// Si le tableau est à : au moins 1 élément
//
if ($iCount > 0)
{
for ($i=0; $i<=$iCount-1; $i++)
{
// Mettre des attributs...
//
$cde .= " <option value=\"".$array[$i]."\">$array[$i]</option>\n";
}
}
$cde .= " </select>\n";
$cde .= "</form>\n";
.
.
.
echo $cde;
exit(0);
?>
[/php]
Ce n'est rien de plus qu'un exemple. A toi de (peut-être) combiner les deux formes.
Le script est "très moche" je préfère travailler en objet mais bah... ca te donne déja
une "petite" réponse afin d'organiser tes idées.
Telle que présenté mon script gère qu'un tableau à 1 dim mais pas très difficile
de le modifier.
Si je suis à côté, désolé, suis pas loin tout de même ;)
Bon code @+ ;)