PHP mysqli打印数组问题

3
我是一名有用的助手,为您翻译以下内容:

我遇到了PHP和mysqli方面的问题,由于我并不是很熟悉这种编程语言,所以出现了如下问题:当我试图从第1行到第8行填充数组时,当我执行 print_r $items时,返回的结果只有8,而不是1到8。请问有谁能帮帮我吗?

代码

$gebruiker = $_SESSION['user'];

$query = "select `item_id` from inventory where `gebruiker_id` = ?";
    $stmt = $db->prepare($query);
    $stmt-> bind_param('i', $gebruiker->id);
    $stmt->execute();
    $stmt->bind_result($item_id);
    $items = array();
    while ($stmt->fetch()) {
        $items['item_id'] = $item_id;
    }

库存表

    gebruiker_id |   item_id
__________________________
    1        |      1
    1        |      2
    1        |      3
    1        |      4
    1        |      5
    1        |      6
    1        |      7
    1        |      8
2个回答

3
您在循环中不断地覆盖$item['item_id']的值。您可能正在寻找的是:

$items[] = $item_id;

那将会抓取所有项目的ID,并存入数组中。

完全没有返回值...编辑:它确实有返回值,但仍然只返回8。 - J.Koppen
我在想这个OP是否已经开始了会话,以及它是否对问题有任何影响。 - Funk Forty Niner
@Fred-ii- 既然他们得到了一行,我就假设他们的查询成功运行了。 - John Conde
@JohnConde 这是正确的。当我通过PHPmyAdmin运行查询时,它返回了8行正确的值。 - J.Koppen
那一定是fetch方法。 - Funk Forty Niner

2

您每次都在数组中覆盖相同的元素...请尝试:

 $items[] = array('item_id' => $item_id);

感谢您的帮助!虽然gebruiker_id是一个用户,所以它必须获取当前登录用户的值,并且每个用户的值都不同,这个用户有8个项目,另一个用户有6个项目,所以BETWEEN不起作用。当我尝试在PHPmyAdmin中运行查询时,它返回8行。 - J.Koppen
我按照你说的尝试进行了调试,计数返回8,所以循环运行良好。 - J.Koppen
数组(Array)结果:[0] => [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 - J.Koppen
结果:数组([0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8) 真的很奇怪,似乎有些问题,因为当我将$debug_items更改为$items时它不起作用,而当我将其更改为$items_db时它就可以工作。奇怪... - J.Koppen
你可能在其他地方覆盖了 $items,很高兴你解决了这个问题! - STLMikey
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接