【问题标题】:Prints only one value from the record [duplicate]仅打印记录中的一个值[重复]
【发布时间】:2017-02-07 06:10:03
【问题描述】:

在这里,我想打印表格中的值。 所以,我的查询是这样的:

$get_role_query = "SELECT id FROM table WHERE id IN (333,1,2)"; 
$roleres = mysqli_query($conn,$get_role_query);
$r_id = mysqli_fetch_assoc($roleres);

这里,333 不在表格中,但 1 和 2 在表格中。 当我像这样打印时,

print_r($r_id);

它只给我1,但没有得到2,它也在表中。我不想要333 这很好。但我只收到1,没有收到2。

以下更新:

正如你们都建议使用 while 循环,我确实喜欢这样:

$r_role = mysqli_num_rows($roleres);

for($i=0;$i<=$r_role;$i++)
{
    print_r($r_id);
}

但是我得到这样的输出:

Array
(
    [id] => 1
)
Array
(
    [id] => 1
)
Array
(
    [id] => 1
)

从上面的查询中,我只想要输出,

Array
(
    [0] => 1
    [1] => 2
)

任何建议将不胜感激。 谢谢。

【问题讨论】:

  • 您需要不断地获取行,您只调用过一次。使用while
  • 谁对答案有异议,请帮我解释原因。
  • 我可能确实需要投票的理由..
  • 请具体说明否决票的原因。不要按你的要求做。
  • @SujeetSinha。是的,那也很好..谢谢...让我们享受编码和帮助他人的乐趣。

标签: php mysql arrays mysqli


【解决方案1】:

使用 while 来从表中获取多个值:

$get_role_query = "SELECT id FROM table WHERE id IN (333,1,2)"; 
$roleres = mysqli_query($conn,$get_role_query);
while($r_id = mysqli_fetch_assoc($roleres))
{
   echo $r_id['id'];
}

【讨论】:

  • 这是正确的。为什么投反对票的原因=??
  • 再投反对票。你能解释一下吗..因为它可能会有所帮助。
  • 谢谢纳雷什。你的代码有效..!!
  • 如果代码有效,您可以接受...但您还没有这样做..
【解决方案2】:

您也可以使用对象方法而不是数组方法。

$get_role_query = "SELECT id FROM table WHERE id IN (333,1,2)"; 

if ($result = $mysqli->query($get_role_query)) {

    /* fetch object array */
    while ($obj = $result->fetch_object()) {
         echo  $obj->id;
    }
}

/* free result set */
$result->close();

【讨论】:

    【解决方案3】:

    您没有正确使用mysqli_fetch_assoc()。它一次获取一条记录。按如下方式使用:

    while($r_id = mysqli_fetch_assoc($roleres))
    {
       print_r($r_id);
    }
    

    【讨论】:

    • 谁投降了,请帮我解释一下原因。
    • 这工作正常..!!谢谢。
    猜你喜欢
    • 2017-04-01
    • 2019-12-11
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    相关资源
    最近更新 更多