Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Jai fait un jquery pour modifier la position de mes menu et j'envoie en json les info, un coup décripter en tableau php je ne sais plus comment accéder a ces valeur

array(12) { [0]=> object(stdClass)#2 (1) { ["id"]=> int(1) } [1]=> object(stdClass)#3 (1) { ["id"]=> int(2) } [2]=> object(stdClass)#4 (1) { ["id"]=> int(3) } [3]=> object(stdClass)#5 (1) { ["id"]=> int(4) } [4]=> object(stdClass)#6 (1) { ["id"]=> int(5) } [5]=> object(stdClass)#7 (1) { ["id"]=> int(6) } [6]=> object(stdClass)#8 (1) { ["id"]=> int(7) } [7]=> object(stdClass)#9 (1) { ["id"]=> int(8) } [8]=> object(stdClass)#10 (1) { ["id"]=> int(9) } [9]=> object(stdClass)#11 (1) { ["id"]=> int(10) } [10]=> object(stdClass)#12 (1) { ["id"]=> int(11) } [11]=> object(stdClass)#13 (1) { ["id"]=> int(12) } }

Ce que je veux

J'aimerais pouvoir utiliser le tableau pour updater ma base de donnée j'ai fait un code qui le fait pour le menu principale et il me reste a le faire pour les sous menu mais je doit etre capable d'avoir accés au donnée pour cela ...voici le code de mon update menu a titre de démonstration ....

$data = '[{"id":1},{"id":2},{"id":3},{"id":4},{"id":5},{"id":6},{"id":7},{"id":8},{"id":9},{"id":10},{"id":11},{"id":12}]';
$json =json_decode($data);
var_dump($json);
for($i = 0; $i< count($json); $i++)
{
    $id = $json[$i][id];
    $mysqli->query("UPDATE mp SET position_mp = $i+1 WHERE id_mp = '$id' ") or die ($mysqli->error);

}

merci en avance

4 réponses


Lartak
Réponse acceptée

Bonsoir.
Utilises plutôt une boucle foreach, par exemple :

foreach ($json as $k => $v) {
    $mysqli->query("UPDATE mp SET position_mp = $k + 1 WHERE id_mp = '$v->id' ") or die ($mysqli->error);
}
Maxime Richard
Auteur
Réponse acceptée

La façon d'avoir acces a children dans un foreach est t-il

[{"id":1,"children":[{"id":2}]}]
.
.
.
$valeur2 = $v->children;
foreach($valeur2 as $q => $i){ ...

merci en avance

Lartak
Réponse acceptée

Oui, mais tu peux directement le mettre ldans la déclaration du foreach, par exemple :

foreach ($json as $k => $v) {
    /* .... accès via $v->{key} ($v->id) */
    if(isset($v->parent)) {
        foreach ($v->parent as $q => $child) {
            /* ... accès via $child->{key} ($child->id) */ 
        }
    }
}

Merci de ton aide :)