为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 While 语句中获取多个变量?

如何从 While 语句中获取多个变量?

PHP
Smart猫小萌 2023-09-22 16:34:43
我需要从 Mysql 数据库获取 1 到 3 个标签。然后我想将每个标签分配给一个变量。有人知道我该怎么做吗?这是代码$findTag1= "SELECT tagid FROM entitytag WHERE audioid = '$audioid'";    $findTag1Result = $link->query($findTag1);if ($findTag1Result->num_rows >= 0) {     while($row = $findTag1Result->fetch_assoc()) {          //Assign each tag to a variable      } }
查看完整描述

3 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

如果您使用 mysqli,那么您可以使用fetch_all()和 来完成此操作array_column()。这将生成一个数组,其中每个元素都是来自数据库的标签。如果您使用 PDO 会容易得多,我强烈建议您在还不算太晚的情况下进行切换。


要使用 mysqli 执行此操作,您可以这样做:


$stmt = $mysqli->prepare(

    'SELECT tagid 

    FROM entitytag 

    WHERE audioid = ? 

    ORDER BY tagid 

    LIMIT 3'

);

$stmt->bind_param('s', $audioid);

$stmt->execute();

$tags = array_column($stmt->get_result()->fetch_all(), 0);


// Either loop on all 3 tags assigning each to a variable

foreach ($tags as $tag) {

    echo $tag;

}

// or access each one via its index. 0 = first tag, 1 = second tag, 2 = third tag

echo $tags[1] ?? 'No tag!';

您可以通过使用数字索引循环数组来访问数组变量中的元素。如果您决定使用索引,请确保提供默认值,以防数组中的标签少于 3 个。使用?? 'default'语法。


查看完整回答
反对 回复 2023-09-22
?
FFIVE

TA贡献1797条经验 获得超6个赞

这可行,但不确定如何预测将拥有的变量数量,我仍然更喜欢坚持使用数组而不将其内容提取到变量中。


/// assign inside while loop

$tags[] = $row->tag;


// use variables outside the loop

list($tag1, $tag2, $tag3) = $tags;


查看完整回答
反对 回复 2023-09-22
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

将结果放入关联数组中


$array = []; 

$i = 1;

while($row=findTag1Result->fetch_assoc()) {

    $array['tag' . $i] = $row;

    $i++;

}

然后使用 extract 来获取变量。


extract($array);


查看完整回答
反对 回复 2023-09-22
  • 3 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信