从一组信息中插入数据?

时间:2013-10-31 00:35:57

标签: php

我不知道如何处理这个问题,我需要一些关于从名单列表中插入数据的建议。这是统计类型的数据。假设我有一个看起来像这样的数组。

$basketball = array (
    'teams' => array (
        'orange' => array (
            'names'  => array(
                'matt' => array('number' => '12', 'position' => 'guard'), 
                'john' => array('number' => '23', 'position' => 'forward'),
            ),
        ),
        'blue' => array (
            'names'  => array(
                'luke' => array('number' => '34', 'position' => 'guard'), 
                'brian' => array('number' => '45', 'position' => 'forward'),
            ),
        ),
    ),
);

然后在我的应用程序中,我就像这样的名字运行foreach。

<?php foreach($basketball as $key => $teams): ?>
    <?php foreach($teams as $team => $names): ?>
    <div class="teams <?php echo $team ?>" data-score="0">
        <?php foreach($names as $key => $players): ?>
            <?php foreach($players as $player => $player_info): ?>
                <div class="home-stats stats <?php echo $team ?>" data-player="<?php echo $player ?>">
                    <ul>
                        <li class="name">
                        <span><?php echo $player ?></span>
                        <input type="hidden" name="home-playername" value="<?php echo $player ?>" />
                        </li>
                        <li class="points">
                        <span>0</span>
                        <input type="hidden" name="home-points" value="0" />
                        </li>
                    </ul>
                </div>
            <?php endforeach; ?>    
        <?php endforeach; ?>
    </div>   
    <?php endforeach; ?>
<?php endforeach; ?>

有了这个,我试图找出添加数据的最佳方法,以便积分与玩家匹配,显然我会有更多的统计数据和玩家,但为了示例,这就是我所需要的。

我正在考虑使用json并使用jQuery重写name属性然后构建一个数组,并为每个团队名称添加一行,但我再也想不到如何重命名这些输入来构建一个固体数组,看起来像(抱歉,如果它有点混乱,但这只是一个想法)

  {"players":[{"matt":[{"stats":[{"points":"22"}]}], 
               "john":[{"stats":[{"points":"18"}]}]}]}

我想这可能是一个非常广泛的问题,但如果您是开发人员,如果您将如何处理数据的统计风格,则播放器的名称是所有信息的父级......或者。 ..可能团队名称是所有信息的父母,无论哪种方式,我想出最好的方法,我可以去任何一种方式..

1 个答案:

答案 0 :(得分:2)

你应该使用像ember.js,angular.js或backbone.js这样的插件。您应该创建一个简单的RESTful API来从服务器中检索数据。要完成此任务,请执行以下三个步骤:

1-将您的数据放入数据库 确保所有关系都经过深思熟虑。不要在数据库中丢弃随机信息。当我查看您的示例时,您似乎对组织数据的方式存在问题。名称应该是对象的属性,而不是键的名称。使用OOP的力量。

2-将数据库映射到对象中 拯救自己巨大的麻烦并使用学说。它可以帮助您映射实体之间的数据和关系。您可以用少于50行代码映射整个应用程序。

3-返回数据 以您需要的任何格式返回它。 JSON是非常主流的,但您可以决定返回XML或YAML。由你决定。使用你感到舒适的任何东西。

我个人使用Ember.js。它使用handlebars作为您的模板。最后,您的代码应该超短且干净:

<div id="comments">
    {{#each player}}
        <h2>#{{id}}">{{name}}</a></h2>
        <div>{{points}}</div>
    {{/each}}
</div>

如果您不知道这些框架如何运作花时间学习它们。你现在这样做的方式是错误的。尽可能采用最佳习惯,学习如何使用MVC架构构建可靠的应用程序。

希望有所帮助