insertion de données d'un tableau multidimensionnelle

benoit99
Invité n'ayant pas de compte PHPfrance

06 juil. 2007, 22:03

Bonjour,

Déjà je vous prie de m'excuser mais mon tiotre était trop long. Je vous explique ce que je souhaite mettre en place.
J'effectue une requete auprès de ma BDD et je récupère quelques champs... Je les traite et je récupère le tout dans un tableau multidimensionnel.

Code : Tout sélectionner

Array ( [0] => Array ( [0] => objet1 [1] => 117 ) [1] => Array ( [0] => objet1 [1] => 116 ) [2] => Array ( [0] => objet2 [1] => 115 ) [3] => Array ( [0] => objet3 [1] => 118 ) [4] => Array ( [0] => objet2 [1] => 118 ) )
Je souhaiterai ensuite réalise un script qui me confectionne une liste déroulante pour sélectionnezr les objets et en fonction de l'objet choisit, une deuxieme qui possède tous les ID de ces objets.

genre une liste déroulante avec ojet1, objet2 et objet3 et si on choisit objet2 on aura une deuxieme liste avec comme choix (115 et 118).

Pour le moment, j'arrive a afficher la 1ere liste déroulante mais au lieu d'afficher objet1, objet2 et objet3 , j'affiche objet1, objet1, objet2, objet3, objet2.. J'ai donc un problème de redondance de valeur...
<?php
function creationselect($tabType)
{
	echo '<select name="type">';
	while(list($key,$val)= each ($tabType))
	{
		echo '<option value='.$val[0].'>'.$val[0].'</option>';
	}
	echo '</select>';
}
?>
Le problème vient du fait que j'utilise each... Connaissez vous une fonction qui m'évite les redondances...

PS: J'avais penser a vérifier si ma liste ne possède pas déjà l'objet que je souhaite insérer mais, si mon tableau possède beaucoup de lignes, je vais surement me heurter aux porblèmes de complexité... Je me tourne donc vers vous.


Merci.

Ps2: POur le reste, je pense utiliser du javascript, mais j'en suis pas encore sur...

Merci

Petit nouveau ! | 5 Messages

06 juil. 2007, 22:17

<?php
function creationselect($tabType)
{
    // Vire les doublons
    $tabType = array_unique($tabType);
    echo '<select name="type">';
    // Perso je préfere foreach
    foreach ($tabType as $key => $val)
    {
        echo '<option value='.$val[0].'>'.$val[0].'</option>';
    }
    echo '</select>';
}
?>

benoit99
Invité n'ayant pas de compte PHPfrance

06 juil. 2007, 22:45

Salut,

Ca ne fonctionne pas, car je perds les id de tous les autres objets, je voudrais garder tous les ID d'un meme tableaux et faire ceci pour tous les objets

ViPHP
ViPHP | 5924 Messages

06 juil. 2007, 23:05

Peux tu indiquer ce que tu souhaites obtenir exactement dans ta liste déroulante ?

benoit99
Invité n'ayant pas de compte PHPfrance

06 juil. 2007, 23:23

Bah en fait dnas la 1ere je voudrais avoir les objets (objet1, objet2, objet3...) et ensuite je voudrais les numéros.

Code : Tout sélectionner

Array ( [0] => Array ( [0] => objet1 [1] => 117 ) [1] => Array ( [0] => objet1 [1] => 116 ) [2] => Array ( [0] => objet2 [1] => 115 ) [3] => Array ( [0] => objet3 [1] => 118 ) [4] => Array ( [0] => objet2 [1] => 118 ) )
Dans ce tableau, un objet est associé à un numéro. Ce tableau (est un exemple) peut bien entendu possèder plusieurs fois le meme objet mais chaque objet (de meme nom )est associé a un numéro unique...
Il peut y avoir par contre plusieur fois le meme numéro(du moment qu'il est associé a un objet diffrent) par exemple
.

Code : Tout sélectionner

Array ( [0] => Array ( [0] => objet1 [1] => 117 ) [1] => Array ( [0] => objet1 [1] => 116 ) [2] => Array ( [0] => objet2 [1] => 117 ) [3] => Array ( [0] => objet1 [1] => 118 ) [4] => Array ( [0] => objet2 [1] => 118 ) ) ou alors Array ( [0] => Array ( [0] => objet1 [1] => 117 ) [1] => Array ( [0] => objet1 [1] => 116 ) [2] => Array ( [0] => objet2=1 [1] => 118 ) [3] => Array ( [0] => objet1 [1] => 115 ) [4] => Array ( [0] => objet2 [1] => 118 ) )
AU final je voudrais selectionner un numéro pour un objet selectionné.Donc j'ai besoin de deux liste déroulantes dont la deuxieme se remplirai en fonction de l'objet selectionné par la 1ere

ViPHP
ViPHP | 5924 Messages

07 juil. 2007, 01:35


benoit99
Invité n'ayant pas de compte PHPfrance

07 juil. 2007, 10:45

Oui je l'ai lu...
Mais la difference avec ce topic, c'est que je n'utilise qu'une seule requete et non 2... Après ma requete, j'obtiens 1 tableau multidimensionnel...J'ai regardé la methode en ajax, j'ai pas tout capté, mais ça ne donne rien... Je vais faire celle en Js pour voir.

J'ai fait une toute autre methode, je dois la tester et je soumettrai mon code quand je serai sur qu'il fonctionne correctement...

@++

Benoit99
Invité n'ayant pas de compte PHPfrance

07 juil. 2007, 14:45

Salut,

Finalement, j'ai opté pour la version Ajax avec 2 requetes. Merci pour tout et @++

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

07 juil. 2007, 15:14

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute