我是一个php newbee,我正在尝试用一系列foreach和SQL结果填充3个不同的数组。代码实际上有效,但我只保留打印最后的结果。不知何故,我不是在增加数组,而是一遍又一遍地写它。问题是,如何增加它们?任何帮助都非常感谢!
$online = array();//armazena online
$ocupado = array();//armazena ocupado
$offline = array();//armazena offline
$atendentes = mysql_query("SELECT nome FROM atendentes ORDER BY nome")or die(mysql_error());
while ($row = mysql_fetch_assoc($atendentes)) {/// Pegar atendentes
$atendentedb = array($row["nome"]);
}
foreach ($atendentedb as $atendente) {// LOOP SELECAO DAS ATENDENTES; VERIFICAR CADA UMA
$names = modWhosonlineCustom::getOnlineUserNames();//pega o nome de quem esta online agora
foreach ($names as $name){//DA UM LOOP, EM QUEM ESTA ONLINE E MARCA
//*****************************'ACENDER' se a atendente esta online
$att = $name->username;
$att = strtolower($att);
if ($atendente == $att){//esta atendente esta online
$att_online = 'yes';
}//esta atendente esta online
if ($atendente != $att){//esta nao atendente esta online
$att_online = 'no';
}//esta atendente nao esta online
//******************************************************************
}//loop foreach quem esta online
if ($att_online == 'yes'){//se atendente online
$status = mysql_query("SELECT status FROM atendentes WHERE nome = '$atendente'")or die(mysql_error());
while ($row = mysql_fetch_assoc($status)) {
$statusdb = $row["status"];
}
//**************************** VERIFICA O STATUS
if ($statusdb == 'disponivel'){
//*******************************
$descricao = mysql_query("SELECT hp_online FROM atendentes WHERE nome = '$atendente'")or die(mysql_error());
while ($row = mysql_fetch_assoc($descricao)) {
$online[] = $row['hp_online'];
}
}// se o status é disponivel
//********************************* OCUPADOS
if ($statusdb == 'ocupado'){
$descricao = mysql_query("SELECT hp_busy FROM atendentes WHERE nome = '$atendente'")or die(mysql_error());
while ($row = mysql_fetch_assoc($descricao)) {
$ocupado[] = $row['hp_busy'];
}
}// se o status é ocupado
}//atendente = yes
if ($att_online != 'yes'){//se estiver offline
$descricao = mysql_query("SELECT hp_offline, horario FROM atendentes WHERE nome = '$atendente'")or die(mysql_error());
while ($row = mysql_fetch_assoc($descricao)) {
$offline[] = $row['hp_offline'];
$offline[] = $row['horario'];
}
}//se att nao é online
}// loop foreach
答案 0 :(得分:1)
在while循环中获取时,使用[]
语法将值附加到数组。否则,您只是在每次循环迭代时覆盖相同的值。
$atendentedb = array();
while ($row = mysql_fetch_assoc($atendentes)) {/// Pegar atendentes
$atendentedb[] = array($row["nome"]);
//--------^^^^
}
// Later
$statusdb = array();
while ($row = mysql_fetch_assoc($status)) {
$statusdb[] = $row["status"];
//-------^^
}
如果我在你的代码中遗漏了其他人,你也应该改变它们。