首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Php -我需要模运算符吗?

Php -我需要模运算符吗?
EN

Stack Overflow用户
提问于 2018-06-12 04:42:35
回答 1查看 33关注 0票数 0

我不能理解这一点。我给自己几个小时的试验和错误

哈哈,所以我来到这个伟大的社区寻求一些专家的帮助!我正在从mysql中获取数据,我希望在每3个位置都有$result2输出。

我做错了什么?任何帮助都是非常感谢的!

下面是我的代码:

$result1 = $mysqli->query("SELECT name, age, car, FROM table1");
$result2 = $mysqli->query("SELECT name, age, car, FROM table2");

$counter = 0;
while($row = $result->fetch_array(MYSQL_ASSOC)) {
    $records[] = array('tags' => array($row));
    $counter++;

    if($counter % 3 == 0) {
        while($row2 = $result2->fetch_array(MYSQL_ASSOC)) {
            $records[] = array('tags' => array($row2));
        }
    }
}

下面是我尝试输出的内容:

{
    "tags": 
    [
        {
            "name": "Bob",
            "age": 22,
            "car": "Ford",
        }
    ]
},
{
    "tags": 
    [
        {
            "name": "Eric",
            "age": 24,
            "car": "Telsa",
        }
    ]
},    
{
    "tags": 
    [
        {
            "name": "Steve",
            "age": 39,
            "car": "GMC",
        }
    ]
},
{
    "tags": 
    [
        {
            DISPLAY TABLE 2 RESULTS HERE
        }
    ]
},
{
    "tags": 
    [
        {
            "name": "Tim",
            "age": 34,
            "car": "Jeep",
        }
    ]
},    
{
    "tags": 
    [
        {
            "name": "Sam",
            "age": 44,
            "car": "Acura",
        }
    ]
},    
{
    "tags": 
    [
        {
            "name": "Tim",
            "age": 34,
            "car": "Telsa",
        }
    ]
},
{
    "tags": 
    [
        {
            DISPLAY TABLE 2 RESULTS HERE
        }
    ]
},    
{
    "tags": 
    [
        {
            "name": "Mike",
            "age": 33,
            "car": "POS",
        }
    ]
},    
{
    "tags": 
    [
        {
            "name": "Tim",
            "age": 19,
            "car": "Saturn",
        }
    ]
},
{
    "tags": 
    [
        {
            "name": "Trish",
            "age": 64,
            "car": "BMW",
        }
    ]
},    
{
    "tags": 
    [
        {
            DISPLAY TABLE 2 RESULTS HERE
        }
    ]
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-12 05:23:33

您的代码将只从table2读取一次。第二次到达while($row2 = $result2->fetch_array(MYSQL_ASSOC)) {循环时,将没有任何内容可供从result2读取,因此循环将立即结束。

table2中的所有结果读入一个数组。然后,在每3个table1元素之后,合并这些结果。

$records2 = array();
while ($row2 = $result2->fetch_assoc()) {
    $records2[] = array('tags' => array($row2));
}

$counter = 0;
while ($row = $result->fetch_assoc()) {
    $records[] = array('tags' => array($row));
    $counter++;

    if($counter % 3 == 0) {
        $records = array_merge($records, $records2);
    }
}

顺便说一句,你应该使用常量MYSQLI_ASSOCMYSQL_ASSOC用于过时的mysql_XXX扩展。或者只使用fetch_assoc()方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50805715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档