【问题标题】:How to SELECT from database for each index in an array如何从数据库中为数组中的每个索引选择
【发布时间】:2018-11-18 11:38:57
【问题描述】:

我目前有下面的 PHP 代码,它返回通过$_GET['table'] 传递的表格内容的数组。

$getTable = "SELECT * FROM " .$_GET['table'];       
$tableExe = $auth_table->runQuery($getTable); 
$tableExe->execute();
$tableArray  = $tableExe->fetchAll(PDO::FETCH_ASSOC);

我添加以下内容,它将选择数组中的每个索引以及我想要获取的值:

$lvl1_pos_1 = $tableArray[0]['user_id']; 
$lvl1_pos_2 = $tableArray[1]['user_id']; 
$lvl1_pos_3 = $tableArray[2]['user_id']; 
$lvl1_pos_4 = $tableArray[3]['user_id']; 
$lvl1_pos_5 = $tableArray[4]['user_id']; 
$lvl1_pos_6 = $tableArray[5]['user_id']; 
$lvl1_pos_7 = $tableArray[6]['user_id']; 
$lvl1_pos_8 = $tableArray[7]['user_id']; 

现在我想找到一种可以轻松收集与每个user_id's 关联的user_name 的方法。 user_name 的结果需要像下面这样输出:

<div><?php echo $lvl1_pos_1; ?><?div>
<div><?php echo $lvl1_pos_2; ?><?div>
<div><?php echo $lvl1_pos_3; ?><?div>
<div><?php echo $lvl1_pos_4; ?><?div>
.....
.....
<div><?php echo $lvl1_pos_8; ?><?div>

关于如何轻松实现这一点的任何建议?

【问题讨论】:

标签: php mysql


【解决方案1】:

您可以使用foreach() 循环像这样迭代您的表数据行并轻松捕获user_iduser_name,如下所示。我使用了另一个名为 $simplified_array 的数组来捕获 user_id 作为键和 user_name 作为值。

$simplified_array = [];
foreach($tableArray as $key=>$value){
  simplified_array[$value['user_id']] = $value['user_name'];
}

//check what it contains, debug purpose only.
print_r($simplified_array);

上面的$simplified_array 包含 user_id 作为键和 user_name 作为值,因此您可以轻松地对其进行迭代以根据需要创建 div .

【讨论】:

  • 如何检查我的所有变量的 user_id 是否为空?
  • 你可以这样试试if(empty($value['user_id'])){}
【解决方案2】:

我将从您拥有的 $TableArray 变量开始。 (顺便说一句,这是一个评论,但我的声誉不允许我发布 cmets) 由于 $TableArray 是一个数组,也许您的意思是如何循环遍历它。可能是这样的:

 <?php
foreach($TableArray as $item):
?>
<div><?php //echo "Your data here"; ?></div>
<?php
endforeach;
?>

您的代码中的结束格式也错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-04
    • 2018-02-08
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多