2010-05-28 3 views
0

Ce que j'essaie de faire est de créer un tableau d'objets de calendrier à partir d'une base de données.Comment récupérer des informations de la base de données et les stocker dans un tableau multidimensionnel

Le résultat que je suis à la recherche serait quelque chose comme ceci:

array(
    array(
     'id' => 111, 
     'title' => "Event3", 
     'start' => "$year-$month-10", 
     'url' => "http://example.com/" 
    ), 
    array(
     'id' => 222, 
     'title' => "Event2", 
     'start' => "$year-$month-20", 
     'end' => "$year-$month-22", 
     'url' => "http://example.com/" 
    ) 

)

J'ai besoin le bon code qui va générer un sous-tableau de chaque enregistrement de base de données. Après le tableau est généré, je vais le json_encode. Notez que les variables $year et $month seront fournies par d'autres parties de mon code.

+2

Le premier problème que je vois est qu'il n'y a pas de code traitant de la base de données;) Donnez-nous plus de détails sur le problème que vous avez avec la base de données. Montrez-nous le code que vous avez essayé et dites-nous en plus sur vos tables et les données qu'elles contiennent. – webbiedave

+0

Je suppose que je ne pose pas la question correctement. Je sais comment obtenir des données à partir de la base de données, mais ce que je rencontre des problèmes est l'instruction correcte qui générerait chacun de ces objets dans le tableau. Si je code à la main chaque objet du tableau, il apparaîtra sur le calendrier. Ce que je dois faire est de parcourir la base de données pour générer dynamiquement chacun des objets. –

+0

Comme vous pouvez le voir dans le code ci-dessus, il y a deux objets. Chaque objet apparaîtra sur un calendrier. Actuellement, ils sont codés à la main. Encore une fois j'ai besoin du code correct qui va générer chaque objet dynamiquement. Je ne suis pas sûr de la bonne raison de générer dynamiquement cela –

Répondre

1

Avez-vous essayé quelque chose comme ça ?:

$mysqli = new mysqli ('Host', 'User', 'Pass', 'dB'); 

$myq = $mysqli ->query ('SELECT field1, field2, field3 FROM table'); 

$arr_result = array(); 

while ($myr = $myq->fetch_assoc()) { 
    $array = array(
     'field1' => $myr['field1'], 
     'field2' => $myr['field2'], 
     'field3' => $myr['field3'], 
    ); 
    $arr_result[] = $array; 
} 

echo json_encode($arr_result); 
+1

Cela entraînera un tableau différent pour chaque champ. Vous voulez quelque chose comme '$ arr_result [] = array ('field1' => $ myr ['field1'], 'field2' => $ myr ['field2'], 'field3' => $ myr ['field3']); ' – ircmaxell

+1

@dabito J'ai corrigé votre code au travail. Vous ne pouvez pas faire $ array [] comme vous l'avez fait à plusieurs reprises. – ceejayoz

+0

doit avoir raté, merci =) – dabito

0

Si c'est seulement le bit json_encode() qui est un échec, il pourrait être dû à un problème de codage de caractères. La fonction json_encode() requiert que tous les membres de chaîne soient valides UTF8. À partir de json_encode() documentation:

Cette fonction ne fonctionne qu'avec les données codées UTF-8.

Si vos objets de base de données pertinents ne sont pas UTF8, l'appel de fonction échouera.

Questions connexes