Rechercher : dans
Par :

[PhP]construire un array avec mes clés

Dernière réponse le 9 jan 2007 à 16:18:15 P@, le 5 jan 2007 à 16:04:10 
 Signaler ce message aux modérateurs

Bonjour,

voilà, j'ai fait une requete qui fonctionne.
j'ai réussi a avoir tous mes éléments dans un tableau (array) de tableau.
chaque ligne créant un tableau dans mon tableau
hors je voudrais ajouter chaque comme suit
array([id]=>nom,[id]=>nom);
avec pour id, l'id présent dans ma base et pour nom le champ correspondant
j'ajouterait ces éléments grace à un array_unshift.
mais pour l'instant je ne sais pas comment faire pour

pour linstant pour tableau est comme suit: Array ( [0] => Array ( [0] => 1 [1] => Tous ) [1] => Array ( [0] => 2 [1] => libelle2 ) [2] => Array ( [0] => 3 [1] => libelle ))

Quelqu'un saurait-il comment faire ??
je voudrais juste pouvoir faire array([1]=>tous [2]=> libelle2 [3]=> libelle)

Merci de votre aide
P.S.: les données viennent d'un simple select * from table
..:::P@ ... a tras, a PoOf ou a chou :::..

L'imagination est plus importante que la connaissance. Albert Einstein
Configuration: Windows XP
Firefox 2.0

Meilleures réponses pour « [PhP]construire un array avec mes clés » dans :
[Driver] Clés USB sous Windows 98 VoirLes clés USB sont, en général, automatiquement reconnues sous Windows 2000 et versions supérieures. Mais ce n'est pas le cas sous Windows 98 et versions inférieures. De plus en plus de constructeurs de clés USB ne fournissent plus de drivers...
PHP - Concaténation VoirPHP permet de concaténer des chaînes de caractères grâce à l'opérateur "." : $concatenation= $a . $b; Ou encore pour affecter, dans la variable $a, la valeur de la concaténation de $a et de $b : $a.=$b; Pour concaténer des chaînes et des...
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
PHP - Les classes VoirLa notion de classe Php3 intègre un soupçon de caractéristiques empruntées aux langages orientés objet, c'est-à-dire la possibilité d'utiliser des objets, entités regroupant des données et des fonctions au sein d'une structure et rendant la...
Javascript - l'objet Array VoirLes particularités de l'objet Array L'objet Array est un objet du noyau Javascript permettant de créer et de manipuler des tableaux. Voici la syntaxe à utiliser pour créer une variable tableau : var x = new Array(element1[, element2, ...]); Si...

1

slum-dunk, le 5 jan 2007 à 16:13:08

Je voudrais que tu soit un peu plus précis dans tes explications,en "français" sans code ni rien,ce que tu veux...

Répondre à slum-dunk

2

P@, le 5 jan 2007 à 16:17:26

En fait, je fais un requete ou je prend toute ma table
je veux la stocker dans un tableau
ma table a 2 colonne : id et nom
je voudrais que mon tableau est pour indice les id et pour valeurs les nom
pour l'instant, je n'arrive pas a construire mon tableau comme il faut

L'objectif est pour aprés faires des array_search sur les id.

Je suis plus claire ??? ..:::P@ ... a tras, a PoOf ou a chou :::..

L'imagination est plus importante que la connaissance. Albert Einstein

Répondre à P@

3

slum-dunk, le 5 jan 2007 à 16:35:14

Je comprends bien.Mais quel est l'objectif de tes array_search?

Répondre à slum-dunk

4

P@, le 5 jan 2007 à 16:41:05

En fait, j'ai une autre table dans laquelle chaque élément peut être raccordé à une liste d'id séparé par des - exemple -10-1-28-
je dois donc retrouver chaque libellé correspondant id cité dans la liste

J'ai pu mettre en array ma liste grace a une suite d'explode puis de implode
maintenant, il me faut un tableau avec toutes les données de la liste d'origine 1->tous 2->libelle pour voire qui va avec quoi
dans le cas de -1-2-3- je devrais être apte a écrire tous, libelle, libelle2

donc
-1-3- = tous, libelle2
parce que array(1=>tous 2=>libelle 3=>libelle2)

c'est plus claire ??
t'as une idée ?? ..:::P@ ... a tras, a PoOf ou a chou :::..

L'imagination est plus importante que la connaissance. Albert Einstein

Répondre à P@

5

slum-dunk, le 5 jan 2007 à 16:51:09

Si je comprends bien tu voudrais faire des correspondances entre deux tables ,c'est ça?

Répondre à slum-dunk

6

P@, le 5 jan 2007 à 19:23:19

C'est ca, mais je ne peut pas le faire avec une requete car dans une table1 j'ai
1 tous
2 libelle
3 libelle3
4 autre

et dans l'autre j'ai
table2
1 nom -1-2-
2 2nom -2-3-4-
...
et je dois pourvoir écrire
1 nom tous, libelle
2 2nom libelle, libelle3,autre

Je pensait récupérer table1 dans un tableau et table2 normalement.
au cours d'un while écrire les éléments de table2 et parcourir le tableau de table1 pour trouver les correspondances. ..:::P@ ... a tras, a PoOf ou a chou :::..

L'imagination est plus importante que la connaissance. Albert Einstein

Répondre à P@

7

P@, le 8 jan 2007 à 10:46:51

Pour l'instant j'ai fait :

	$chercheServ = mysql_query("SELECT * FROM folder",$link);
	$ServArray = array ();
	 while($servicetab= mysql_fetch_array($chercheServ,MYSQL_NUM)) {
	  array_pop($servicetab);
	  array_pop($servicetab);
		$ServNom = $servicetab[1];
		$ServId = $servicetab[0];
		$servTest = "[".$ServId."] => ".$ServNom;
		array_unshift ($ServArray, $servTest);
	}

mais ca ne va pas du tout car il me renvoie ce type de donné
Array ( [0] => [2] => libelle [1] => [1] => Tous )
le 0 est vide, ce qui est bon, mais il inclus 2 a chaque fois 2 les id
enfin, il y a 2 fois [1], il y a 2 fois [2] ...

vous avez une idée ...
ou il y a t il un moyen de suprimer les id sans valeurs ?? ..:::P@ ... a tras, a PoOf ou a chou :::..
L'imagination est plus importante que la connaissance. Albert Einstein

Répondre à P@

8

P@, le 8 jan 2007 à 12:42:09

Réctification
je me suis planté pour mon remplissage de tableaux
voici, ce que j'ai rééllement dans mon tableau

0 => valeur [1] => Tous
1 => valeur [2] => libelle
2 => valeur [3] => libelle2
3 => valeur [4] => autre

ceci a été affiché grâce à la fonction suivante

while (list($key, $val) = each($ServArray)) {
   echo "$key => valeur $val\n";
   echo"<br/>";
}


comment faire, une idée ??
..:::P@ ... a tras, a PoOf ou a chou :::..
L'imagination est plus importante que la connaissance. Albert Einstein

Répondre à P@

9

slum-dunk, le 8 jan 2007 à 17:10:45

Escuse du retard ,bon pour ta réponse 6 je te conseille de faire une requéte de jointure entre les deux tables table 1 et table2,pour voir ce que cela donne.

Répondre à slum-dunk

10

P@, le 8 jan 2007 à 17:31:44

Oui, mais les données corresponde pas puisque d'un coté j'ai un id et de l'autre une série d'id séparé par des -
tu crois que je peux faire un like là dessus ??

j'ai testé ceci

	SELECT *
	FROM bd, fonction, folder  
	WHERE folder.id LIKE '%bd.service%'
	ORDER BY service

et ca ne me retourne rien
je ne suis pas sur d'avoir fait correctement la requete
folder.id sont 1 ou 2
alors que bd.service est -1-2-3-
..:::P@ ... a tras, a PoOf ou a chou :::..
L'imagination est plus importante que la connaissance. Albert Einstein

Répondre à P@

11

slum-dunk, le 8 jan 2007 à 17:56:27

Essai disons ça:
$req=" SELECT id
FROM folder" ;qui va te lister dans un mysql_fetch_array tous les id.

Ensuite utilise un while:
while($row=mysql_fetch_array( $req))
{

SELECT *
FROM bd, fonction, folder
WHERE bd.service LIKE '%$row[0]%'
ORDER BY service
}

Répondre à slum-dunk

12

P@, le 9 jan 2007 à 12:15:43

Ca marche ou presque
j'ai bien tous les noms d'items

Mais quand je fait ma requete et que j'essaie de sortir les éléments un par un j'ai au moins 132 fois

voici ce que j'ai fait pour récuperer le "tout"

	$chercheServ = mysql_query("SELECT * FROM folder",$link);
while($row=mysql_fetch_array( $chercheServ))
{
 $serv = "-";
 $serv .= $row[0];
 $serv .="-";
 echo $serv;
$QUERYecr= mysql_query("
	SELECT *
	FROM bd, fonction, folder  
	WHERE bd.fonction = fonction.id 
	AND bd.service LIKE '%$serv%'
	ORDER BY service
	",$link);
	$query_answer=mysql_num_rows($QUERYecr);
	echo "<li>";
	echo $row[0];
	echo mysql_result($chercheServ,$row[0],'folder.folder');
	echo "  requete SELECT *
	FROM bd, fonction, folder  
	WHERE bd.fonction = fonction.id 
	AND bd.service LIKE '%$serv%'
	ORDER BY service ". $query_answer;
	echo "<br />";
	for($i=0;$i!=$query_answer;$i++){
	echo " -> ";
	echo mysql_result($QUERYecr,$i,'bd.id');
	 echo "</ul>";
	}
	echo "</li>";
}	


je ne comprend pas ... ..:::P@ ... a tras, a PoOf ou a chou :::..
L'imagination est plus importante que la connaissance. Albert Einstein

Répondre à P@

13

 P@, le 9 jan 2007 à 16:18:15
  • +1

J'ai trouvé le souci
il ne faut pas mettre des bd dont on a pas besoin dans la requete
je n'avais pas besoins de folder dans la 2eme requete et du coupe il me sortait les résultat en x exemplaire

Merci slum-dunk
@ bientôt ..:::P@ ... a tras, a PoOf ou a chou :::..

L'imagination est plus importante que la connaissance. Albert Einstein

Répondre à P@