Recupérer variable dans array

Résolu/Fermé
Pierre-luc - 1 avril 2017 à 04:01
jordane45
Messages postés
36034
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 août 2022
- 1 avril 2017 à 16:55
Bonjour cher programmeur !

Je suis rouiller un peu j'aurais besoin de votre aide si vous avez quelque minute

J'ai un array comme ceci :

$result = print_r($ret, true);



echo $result;

le output ressemble a ca :

Array ( [333212] => Array ( [vues] => 323 [vente] => 3 [achat] => 43 [numero] => 333212 ) )

J'aimerais récupérer les donner des item en variable pour les stockers dans MYSQL exemple :

echo $variable[vues]; // (323)

echo $variable[vente]; // (3)

echo $variable[achat]; // (43)


Ca fait 4 heure j'essais plein d'affaire j'y arrive pas :(

Merci infiniment j'apprécie !!!




12 réponses

Utilisateur anonyme
1 avril 2017 à 11:11
Bonjour

Comme le montre ton $result, ta variable $ret est un tableau à un seul élément, d'index 333212. On accède à cet élément en écrivant
$ret[333212]
.

Cet élément est lui-même un tableau, dont les éléments ont pour index vues, vente, achat et numero.
On y accède donc en écrivant
$ret[333212]["vues"], $ret[333212]["ventes"]
...

C'est peut-être plus clair pour toi en te servant d'une variable intermédiaire :
$interm=$ret[333212];
ensuite : $interm["vues"],$interm["ventes"]...
0
Merci beaucoup! le probleme c'est que ca me renvoie rien a cause je crois que j'ai des parenthese [] au lieu de "" j'ai utiliser st_replace ca bien été mais j'arrive pas a ajouter les virgule apres les valeurs pour pouvoir récuperer les donner de cette facon.
0
exemple :

Array ( "333212" => Array ( "vues" => 323, "vente" => 3, "achat" => 43, "numero" => 333212 ) )
0
Utilisateur anonyme
1 avril 2017 à 11:49
Mais si, ce que je t'avais dit marchait. Essaye le programme :
<?php
$ret= [333212=>["vues"=>323,
                "vente"=>3,
                "achat"=>43,
                "numero"=>333212]];
$result = print_r($ret, true);
echo $result;
echo '<br />';
echo $ret[333212]["vues"];


Il affiche bien la même chose que dans ton premier message et $ret[333212]["vues"] affiche bien la valeur demandée.

Mais je vois que tu as changé de tableau depuis : ton dernier exemple a des " en plus qu'il n'y avait pas dans ton message initial. Je ne sais pas ce que tu as fait pour en arriver là, tu parles de parenthèses, de [], de "" et de st_replace mais on n'a aucune idée de ce que tu en fais. On devine d'après ton dernier exemple que tu as rajouté des " là où il n'en fallait pas.
0

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

Posez votre question
C'est que mon array contient des pârenthese et na pas les virgules comme toi

Array ( [333212] => Array ( [vues] => 323 [vente] => 3 [achat] => 43 [numero] => 333212 ) )

Je sais vraiment pu quoi faire je me sens stupide je dois peut-etre utiliser parse_str(); ?
0
Utilisateur anonyme
Modifié le 1 avril 2017 à 12:14
"Ton array contient des parenthèses et pas de virgules comme moi" Qu'est ce que ça veut dire ? Ni ton array, ni le mien ne contiennent de parenthèses, ni de virgules.
As-tu essayé mon programme ? Il affiche très exactement Array ( [333212] => Array ( [vues] => 323 [vente] => 3 [achat] => 43 [numero] => 333212 ) ) , comme toi. Il s'agit bien du même array.
Il ne faut pas confondre l'array et ses diverses représentations :
Le code qu'il faut écrire pour l'initialiser contient des virgules :
$ret= [333212=>["vues"=>323,
                "vente"=>3,
                "achat"=>43,
                "numero"=>333212]];

Mais ceci n'est pas l'array, c'est le programme php qui sert à initialiser l'array.
Quand tu affiches le contenu de cet array avec print_r, tu obtiens
Array ( [333212] => Array ( [vues] => 323 [vente] => 3 [achat] => 43 [numero] => 333212 ) ) 
. Il y a bien des parenthèses là-dedans, mais là encore, ceci n'est pas l'array : c'est juste la représentation donnée par print_r.

Peux-tu donner le code que tu as essayé pour dire qu'avec ma réponse "ca me renvoie rien " ?
0
Merci infiniment pour tes réponses pardonne moi j'ai tellement rusher ladessus c'est horrible. c'est que moi j'ai une ligne comme celle ci :

Array ( [333212] => Array ( [vues] => 323 [vente] => 3 [achat] => 43 [numero] => 333212 ) )

Je dois récuperer les valeur avec des variables sans toucher rien a mon array.

Je m'excuse si mal compris je vais tout vous relire et recommencer.
0
cette ligne ici :

$ret= [333212=>["vues"=>323,
"vente"=>3,
"achat"=>43,
"numero"=>333212]];

je ne peux pas changer le $ret il est déja comme ca

je dois garder cette ligne absolument

Array ( [333212] => Array ( [vues] => 323 [vente] => 3 [achat] => 43 [numero] => 333212 ) )


souvent les valeurs vont changer exemple :

Array ( [333DKSJ212] => Array ( [vues] => 33 [vente] => 73 [achat] => 437 [numero] => 333DKSJ212 ) )
0
J'ai esseyer de copier coller tes code et ca me renvoi un erreur de syntaxe a la premiere ligne
0
Utilisateur anonyme
Modifié le 1 avril 2017 à 12:52
C'est que tu recopies mal. Je viens de faire l'essai, ça marche.
Ne dis jamais "il y a une erreur de syntaxe", ça ne sert à rien si tu ne recopies pas le massage d'erreur.

Je suis absent cet après-midi, la suite ce soir si personne d'autre n'intervient d'ici là.
0
Pierre-luc > Utilisateur anonyme
1 avril 2017 à 13:23
D'accord merci beaucoup je vais moi aussi prendre une pause car rien fonctionne et c'est humiliant :)
0
jordane45
Messages postés
36034
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 août 2022
4 274
Modifié le 1 avril 2017 à 14:01
Bonjour,


Je pense que ce que essaies de nous dire .. c'est que la première clé peut changer ...
Dans ce cas.. il suffit d'utiliser une foreach.
Un truc du genre
foreach($ret as $variable){
  echo $variable["vues"]; // (323)
  echo $variable["vente"]; // (3)
  echo $variable["achat"]; // (43)
}


Cordialement, 
Jordane                                                                 
0
lol Merci infiniment monsieur ! je suis trop stupide je devais pas utiliser toute cette cochonnerie j'avais juste a faire directement ceci sans la mettre dans une variable avec print_r :)

echo $ret[333212]["vues"];

merci mille foix !
0
Merci mille fois Johanne vous êtes super !
0
jordane45
Messages postés
36034
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 août 2022
4 274
1 avril 2017 à 16:35
Johanne ?
0
Pardon jordane45 j'étais super content j'ai été trop vite
0
jordane45
Messages postés
36034
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 août 2022
4 274
1 avril 2017 à 16:55
:-)
0