【问题标题】:Is it possible to use a variable for an SQL object fetch call instead of its string name?是否可以将变量用于 SQL 对象获取调用而不是其字符串名称?
【发布时间】:2010-12-13 16:38:25
【问题描述】:

我想知道是否可以将表中的字段名称存储到一个数组中,然后使用先前的数组数据作为第二个 sql 循环的对象循环另一个表,即 $foo->$bar,$bar 是数组中的索引。

我希望你明白我在这里的意思,我自己无法解释。

那么请各位优秀的 PHP 和 SQL 大师来解释它是如何正确完成的 :)

// Connect to the database to gather all data pertaiing to the link in question
$assoResult = mysql_query("SELECT * FROM associate_users");
while ($assoRow = mysql_fetch_field($assoResult)) {
    $resultArray[] = $assoRow->name;
}

// Connect to the database to gather all data pertaiing to the link in question
$assoResult = mysql_query("SELECT * FROM associate_users WHERE id='$getID'");
while ($assoRow = mysql_fetch_object($assoResult)) {
    foreach ($resultArray as $row) { 
        $array = array(array( 1 => $assoRow->{'$row'}, 2 => $row, ),);
    }    
}

提前谢谢你。

编辑!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

进一步研究了这个问题,问题只在于

foreach ($resultArray as $row) { 
    $array = array(array( 1 => $assoRow->$row, 2 => $row, ),);
}

我只需要将循环添加到多维数组中,而不是在 foreach 循环的 eacj 迭代中重写它。

我希望这更容易解释我的问题:)

【问题讨论】:

  • 哦,我忘了说,目前上面的代码只会显示表格的最后一行,并且不能分配对象 fetch "$assRow->{'$row'} 部分。跨度>
  • 尝试用简单的英语描述你想要达到的目标(以输入和预期输出为例)。现在,您的代码和您的描述对我来说似乎都没有任何意义。
  • 最后的数组应该保存从表中选择的特定用户的所有行数据,刚刚做了进一步的测试,我意识到问题出在 foreach 循环中,它是- 在每个循环上设置多维数组,即 Array ( [0] => Array ( [1] => foo [2] => bar)) ... Array ( [0] => Array ( [1] => foo2 [2] => bar2))。我只需要它在每个循环上添加和迭代数组索引。
  • 我仍然不完全明白你想要什么,但我可以非常自信地说你应该只查询一次表。一旦你拉下整个表格,一切都应该在 PHP 中完成。我知道使用 WHERE 子句看起来很方便,但是 array_filter 可以做所有相同的事情

标签: php sql multidimensional-array


【解决方案1】:

也许试试这个?

$array[] = array(array( 1 => $assoRow->{'$row'}, 2 => $row, ),);

【讨论】:

  • 遗憾的是,它只是在数组上创建了一个额外的维度,它确实将所有正确的数据放入数组中,但它创建的新数组与数组中的索引一样多。
猜你喜欢
  • 2011-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-18
  • 2020-08-05
  • 1970-01-01
相关资源
最近更新 更多