2017-09-13 2 views
0

J'essaie d'insérer des données à partir d'une base de données dans un stdClass mais pour une raison quelconque, j'obtiens un avis Notice: Array to string conversion in data.php on line 47.Note: Tableau à la conversion de chaîne lors de l'insertion d'un stdClass dans un stdClass

Je crée 2 stdClasses, un pour chaque véhicule et un général qui les contient tous. Quand j'essaie d'insérer le stdClass du véhicule dans le général, je reçois l'avis.

Voici mon code (avis je l'ai écrit où la ligne 47 est):

$data = new stdClass(); 

while($row = mysqli_fetch_array($tresult)) { 
    $vehicle = new stdClass(); 
    $vehicle->name = $row['name']; 
    $vehicle->position = $row['position']; 

    $data->$row['name'] = $vehicle; //Line 47 
} 

Qu'est-ce que je manque ici? Merci

+4

'Essayez $ data -> {$ row [ 'nom']}' peut-être? voir: http://php.net/manual/en/language.variables.variable.php – ficuscr

+0

try a var_dump ($ vehicle); pour voir si c'est un tableau ou une chaîne, regarde :). –

+0

@ficuscr Vous êtes un génie ... Merci: D Écris-le comme une réponse et je l'accepterai dès qu'il me le permettra – morha13

Répondre

4

Essayez d'attribuer cette façon, parce que vous devez interpoler la variable

$data->{$row['name']} = $vehicle

+0

Merci et ficuscr, ça l'a corrigé! Je vais accepter la réponse juste quand elle me laisse .. – morha13

+2

Juste une note pour ceux qui veulent en savoir plus sur comment cela fonctionne, cela s'appelle [Complex Syntax] (https://stackoverflow.com/a/2596838/5827005 – GrumpyCrouton

+0

Lien impressionnant, merci !! – OsDev