PHP - 通过mysqli_fetch_array结果循环向行添加额外的产品

时间:2017-04-17 00:55:51

标签: php html

我遇到了一些代码问题,我已按照类别显示产品,并允许客户选择他们想要的尺寸。我确定它是一个简单的解决方案,而且几乎可以肯定的是,我的问题源于我对msqli_fetch_assoc while循环实际工作原理的理解不足。

问题是第一行正确显示第一个产品,但第二行不仅显示了secone产品,而是显示了第一个和第二个产品。第三行显示前三个产品,依此类推。

这是我的完整代码(请忽略JQuery / Javascript,我是它的新品,很可能会在另一篇文章中回来寻求帮助。)我已经盯着它看了几个小时。有人能指出我在哪里出错吗?

ValueError: invalid literal for int() with base 10: 'Hello'

2 个答案:

答案 0 :(得分:1)

应该是:

$counter = array();

while ( $row =  mysqli_fetch_array( $result, MYSQLI_ASSOC ) ) {

    foreach ( $row as $product ) { 

        $counter[ $product[ 'id' ] ] = $product[ 'id' ]; 
        /* run a condition statement here before outputting the result if need arises */

        /* this will prevent duplicate product listing */
        if ( $counter[ $product[ 'id' ] ]  == $product[ 'id' ] ) {
            // display product
        }

    }
}

答案 1 :(得分:0)

根据Bagus Tesa的建议,我拿出了每个循环,编辑其余部分以解释这个问题,问题解决了。谢谢,巴古斯!