Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/SQL分组_Php - Fatal编程技术网

PHP/SQL分组

PHP/SQL分组,php,Php,我有这样一个问题,我只想将所有车型分组并列出一次,我的问题如下: 我希望它看起来像这样: MySQL: $all_model = $mysqli->query("SELECT mark, mark_url, model, model_url, engine, engine_url, generation, generation_url, year_production, body_car, body_car_url FROM auta WHERE mark_url = '$c

我有这样一个问题,我只想将所有车型分组并列出一次,我的问题如下:

我希望它看起来像这样:

MySQL:

$all_model = $mysqli->query("SELECT mark, mark_url, model, model_url, engine, engine_url, generation, generation_url, year_production, body_car, body_car_url FROM auta WHERE mark_url = '$code_curr[3]' and model_url = '$code_curr[4]' GROUP BY generation, body_car");
PHP:


您肯定应该为您的项目使用一些模板引擎,因为随着时间的推移,它会变得更加复杂,而且混合使用PHP和HTML会造成更大的混乱

我的想法是获得您想要的数据结构,然后在两个数组上迭代。有了模板引擎,它看起来会比我的代码更漂亮

<?php
$generations = [];
foreach ($all_model as $value) {

    if (!isset($generations[$value['generation']])) {
        $generations[$value['generation']] = [];
    }

    $generations[$value['generation']][] = $value;
}

foreach ($generations as $generation => $model): ?>
    <div class="col-lg-3">
        <div class="crand-car-container">
            <?php echo "Generation:" . $generation; ?>
            <?php foreach ($model as $value): ?>
                <a href="/<?php echo $value['mark_url'] ?>/<?php echo $value['model_url'] ?>/<?php echo $value['generation_url'] ?>/<?php echo $value['body_car_url'] ?>"><?php echo $value['mark'] . " " . $value['model'] . " " . $value['year_production'] . " [" . $value['generation'] . "]" ?></a>
            <?php endforeach; ?>
        </div>
    </div>
<?php endforeach; ?>

您想实现一个简单的控制中断…将当前记录的生成与上一个记录的生成进行比较,然后根据它们是否匹配,做出相应的反应。这些可能会对您有所帮助,或者警告:您完全可以使用参数化的预处理语句,而不是手动生成查询。它们由或提供。永远不要相信任何形式的输入!即使您的查询仅由受信任的用户执行。
<?php
$generations = [];
foreach ($all_model as $value) {

    if (!isset($generations[$value['generation']])) {
        $generations[$value['generation']] = [];
    }

    $generations[$value['generation']][] = $value;
}

foreach ($generations as $generation => $model): ?>
    <div class="col-lg-3">
        <div class="crand-car-container">
            <?php echo "Generation:" . $generation; ?>
            <?php foreach ($model as $value): ?>
                <a href="/<?php echo $value['mark_url'] ?>/<?php echo $value['model_url'] ?>/<?php echo $value['generation_url'] ?>/<?php echo $value['body_car_url'] ?>"><?php echo $value['mark'] . " " . $value['model'] . " " . $value['year_production'] . " [" . $value['generation'] . "]" ?></a>
            <?php endforeach; ?>
        </div>
    </div>
<?php endforeach; ?>