Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

manolegal

[Resolvido] Array com 02 variaveis

Recommended Posts

Olá amigos do forum. Gostaria de passar 02 valores diferentes em uma mesma array. Tenho o seguinte código:

<tr>
<td><div align="right"><font color="#333333" face="Courier New, Courier">Beneficiado(a):</font></div></td>
<td><div align="left"><font color="#FF0000" size="2">* </font></div></td>
</tr>
<?php
$i=0;
   $Sql = "SELECT *
FROM .......
WHERE ..........
ORDER BY nome";
   $Resultado = executa($Sql);
while($linha =pg_fetch_assoc($Resultado)){
   $id_beneficiado_bd = $linha["id_beneficiado"];
   $nome_bd = $linha["nome"];
   $id_controle_bd = $linha["id_controle"];
?>
<tr><td> </td><td width="54%">
<?php
$ok = 0;
for($i=0; $i<count($beneficiado); $i++) {
   if ($beneficiado[$i] == $id_beneficiado_bd) {
       $ok=1;
       echo '<input type="checkbox" name="beneficiado[]" id="beneficiado" checked value="'.$id_beneficiado_bd.'">' . $nome_bd . '<br />';
   }
}
if ($ok == 0) {
   echo '<input type="checkbox" name="beneficiado[]" id="beneficiado" value="'.$id_beneficiado_bd.'">' . $nome_bd . '<br />';
}
$i++;
}
?>
</td>
</tr>

 

O valor do "BENEFICIADO ($id_beneficiado_bd)" estou recebendo normalmente:

Array ( [0] => 13 [1] => 10 )

 

Gostaria de enviar também o valor de "$id_controle_bd = $linha["id_controle"];" em array. Como faço para enviar esse dado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com esse código, impossível pois $beneficiado não foi definida.

 

O que você deveria fazer seria criar essa variável fora do loop while e dentro dele populá-la:

 

$beneficiado = array();

while( $linha = pg_fetch_assoc( $Resultado ) ) {

   $beneficiado[ $linha["id_beneficiado"] ] = array(

       $linha["nome"], $linha["id_controle"]
   );
}

Isso produzirá um array indexado pelos ID's dos beneficiados, sendo cada entrada outro array com aqueles dois valores.

 

Atente que se por algum motivo surreal o ID se duplicar, dados serão sobrescritos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei o seguinte:

   $Resultado = executa($Sql);
$beneficiado = array();
while($linha =pg_fetch_assoc($Resultado)){
   $beneficiado_bd[ $linha["id_beneficiado"] ] = array($linha["nome"], $linha["id_controle"]);
?>
<tr><td> </td><td width="54%">
<?php
$ok = 0;
for($i=0; $i<count($beneficiado); $i++) {
   if ($beneficiado[$i] == $beneficiado_bd) {
       $ok=1;
       echo '<input type="checkbox" name="beneficiado[]" id="beneficiado" checked value="'.$beneficiado_bd.'">' . $linha["nome"] . '<br />';
   }
}
if ($ok == 0) {
   echo '<input type="checkbox" name="beneficiado[]" id="beneficiado" value="'.$beneficiado_bd.'">' . $linha["nome"] . '<br />';
}
$i++;
}
?>
</td>
</tr>

 

Ao submeter o form aparece o seguinte:

Array ( [0] => Array [1] => Array ) 

Está correto desta forma? Como faço para "pegar" os dados da array para gravar no banco de dados?

Compartilhar este post


Link para o post
Compartilhar em outros sites

a array e composta por chave => valor, e voce so esta colocando valor, olhe o exemplo

$teste = array();
$teste['indice_qualquer']= array('outro_indice' => 'um valor' , 'qualquer_coisa' => 'outro_valor']);

//testes
echo $teste['indice_qualquer'];
-- array

echo $teste['indice_qualquer']['outro_indice'];
--'um valor'

echo $teste['qualquer_coisa'];
-- null

echo $teste['indice_qualquer']['qualquer_coisa'];
-- 'outro_valor'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela força. Não entendo muito de Array. Poderia me dar mais alguma sugestão?

Preciso fazer a inserção dos dados no BD:

for($i=0; $i<count($beneficiado); $i++) {
   $Sql = "INSERT INTO tabela (controle_id, beneficiado_atendido_id)
VALUES (..........)";
   $Resultado = executa($Sql);
}

 

Alguém teria sugestões?

É muito importante para mim.

 

Alguém poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema resolvido. Salvei o valor "id_controle" em array e posteriormente busquei os demais campos por consulta. Obrigado pela força.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.