Php 试图从foreach循环中的两个表填充两个数组

Php 试图从foreach循环中的两个表填充两个数组,php,mysql,Php,Mysql,所有这些的最终结果应该是,应该填充描述和传递的数组,并且我应该能够回显它们。但是,只有描述会回显,而密码不会回显。从我所有的测试来看,result1查询的$value变量似乎为空。我不知道如何在第二个查询中使用$value 我还发现了以下两个错误: 注意:未定义变量:第60行传入/var/www/html/manage/commit.php 警告:为第60行/var/www/html/manage/commit.php中的foreach()提供的参数无效 // From manage.phone

所有这些的最终结果应该是,应该填充描述和传递的数组,并且我应该能够回显它们。但是,只有描述会回显,而密码不会回显。从我所有的测试来看,result1查询的$value变量似乎为空。我不知道如何在第二个查询中使用$value

我还发现了以下两个错误: 注意:未定义变量:第60行传入/var/www/html/manage/commit.php 警告:为第60行/var/www/html/manage/commit.php中的foreach()提供的参数无效

// From manage.phones
$result = mysqli_query($con_manage,"SELECT * FROM phones");
while($row = mysqli_fetch_array($result))
{
    $mac[] = $row['mac'];
    $mapped_to[] = $row['mapped_to'];
}

// From asterisk.devices
foreach($mapped_to as $value)
{
  $result = mysqli_query($con_asterisk,"SELECT description as description FROM devices WHERE id='$value'");
  while($row = mysqli_fetch_array($result))
  {
    $description[] = $row['description'];
  }
  $result1 = mysqli_query($con_asterisk,"SELECT data as data FROM sip WHERE id='$value'");
  while($row = mysqli_fetch_array($result))
  {
    $pass[] = $row['data'];
  }

}

// Echo the descriptions and passwds!
echo "Echo all descriptions:";
echo"\n";
foreach($description as $key => $value)
{
  echo "$value\n";
}

echo "Echo all passwds:";
echo"\n";
foreach($pass as $key => $value)
{
  echo "$value\n";
}

查询
SELECT data as data FROM sip,其中id='$value'
的结果集为空。这就是为什么永远不会执行
$pass[]=$row['data']
的原因。由于您没有明确定义
$pass
(例如,在第一个
foreach
循环之前通过
$pass=array()
),因此在尝试
foreach($key=>$value)时会出现两个错误
您应该添加的

$pass = array();
在foreach循环之前

// From asterisk.devices
foreach($mapped_to as $value) { .... }
改变

$result1=mysqli\u查询($con\u星号,“选择数据作为来自sip的数据,其中id=“$value”)

$result1=mysqli\u query($con\u asterisk,“选择数据作为来自sip的数据,其中id=”“$value.”)

对于这两个查询,您都应该这样做。这就是连接字符串的方式。你的回声也一样

要填充数组,应该执行以下操作

$description = array(); //initialize your array
while($row = mysqli_fetch_array($result))
{
   array_push($description, $row['description'];
}

对$pass也一样

谢谢。这清除了错误,但问题是,当我尝试在第二个查询中调用$value时,它是空的,并且我尝试重新填充$value[]的所有内容都不起作用在循环之前?我是个白痴。我的查询返回一个空字符串。我的代码没有问题。谢谢,但问题是,当我尝试在第二个查询中调用$value时,它是空的,并且我尝试将$value[]从$mapped_重新填充到[]的所有操作都不起作用。谢谢,这有助于清理它,但问题是,当我尝试在第二个查询中调用$value时,它是空的,我试图将$value[]从$mapped_重新填充到[]的所有内容都不起作用。@TayKimchi您不能这样填充数组。看看我最新的答案,我是个白痴。我的查询返回一个空字符串。我的代码没有问题。@TayKimchi看看我是如何在答案中填充数组的。你的方式不对对不起,我只是说我的代码在这里发布时起作用了。我只是在数据库里找错误的东西。。。