Ir para conteúdo

POWERED BY:

Arquivado

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

Paulo Roberto Start Corp

[Resolvido] como comparar o valor de 2 array php mysql

Recommended Posts

como comparar o valor de 2 array

 

supondo que a primeira array tem 8 linhas

e a segunda tem umas 20 linhas

mais as quantidades podem ser diferentes

 

ex: um campo eu guardo os nomes que gera uma lista de checkbox

e outro campo eu guardo os conteudos marcados

ai quero criar um editar

onde ele carrega todos os campos que estao na tabela que cria os campos, e quero que venha marcados os

campos que já estao salvos em outra tabela chamada defeitos

 

tipo ele tem que comparar se ja existe marca

se nao

checkbox descmarcado

 

A ideia é criar checkbox dinamicos salvar o conteudo num db e ter opçao para editar

 

se alguem tiver uma forma mais facil de fazer isso me ajude por favor

to quebrando a cabeça aqui

 

 

Eu estou selecionaod a lista de erros assim

 

<?
$recordID = $_POST[recordID];

$SQL = "SELECT * FROM pd_diagnostico WHERE codos = '1' ";
$query = mysql_query( $SQL )or die( mysql_error() );

while($linha = mysql_fetch_array($query)) {
	echo $linha["defeito"].'<br>';
    $Def = $linha["defeito"];  	
 }
?>

 

e estou listando os campos assim

 

<table width="100%">
     	<tr>
<?php
   	$sql1 = "SELECT * FROM pd_CamposDiag WHERE idgrupo= '1' AND status = 'ativo'";
   	$query1 = mysql_query( $sql1 )or die( mysql_error() );
while($row1 = mysql_fetch_array($query1)){
   	if ($cont1 == 4) {
           	echo "</tr><tr>";//fecha e abre linha na tabela
           	$cont1 = 0;
   	}
	$sNome1 = $row1['nome'];
   	$iId1 = $row1['nome'];
	if ($Def == $sNome1) {
   	echo "<td>  <input type='checkbox' checked='checked='  name='opcao[]' value='".$iId1."'>".$sNome1."</br></td>";
	}
	else {
	echo "<td>  <input type='checkbox' name='opcao[]' value='".$iId1."'>".$sNome1."</br></td>";
	}
$cont1++;//incrementa
}
?>
   	</tr>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo que eu entendi você está querendo ver os itens que estão num array que não estão no outro? tenta o

array_dif

 

na verdade nao to querendo saber a diferença entre eles

quero que apareça todos do array 1 + (todos que for igual no array 2 aparecerem marcados)

 

 

ex :

 


<?
$array1 = array("a" => "verde", "vermelho", "azul", "amarelo");
$array2 = array("b" => "verde", "amarelo", "vermelho"
);

(nao sei como gazer)

print_r($result); // aparece assim = verde marcado, vermelho marcado, amarelo marcado e azul desmarcado
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa o in_array pra verificar...

 

<?
$array1 = array("a" => "verde", "vermelho", "azul", "amarelo");
$array2 = array("b" => "verde", "amarelo", "vermelho"
);
$result = array();
foreach ($array1 as $v){
   if (in_array($v,$array2)){
      $result[] = $v;
   }
}

print_r($result); // aparece os dados que estao contidos no 2 array e no 1 array
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa o in_array pra verificar...

 

<?
$array1 = array("a" => "verde", "vermelho", "azul", "amarelo");
$array2 = array("b" => "verde", "amarelo", "vermelho"
);
$result = array();
foreach ($array1 as $v){
   if (in_array($v,$array2)){
  	$result[] = $v;
   }
}

print_r($result); // aparece os dados que estao contidos no 2 array e no 1 array
?>

 

A ideia foi boa mais só mostra os que são iguais nos dois campos, os que não existem nos 2 campos não mostra... teria que mostrar os que estão nas 2 arrays como checkbox marcado e os que não estão como checkbox desmarcado

Compartilhar este post


Link para o post
Compartilhar em outros sites

aí que ta o "pulo do gato". você nao entendeu como eu quis fazer, vou tentar mostrar mais explicado...

 

<?
$array1 = array("a" => "verde", "vermelho", "azul", "amarelo");
$array2 = array("b" => "verde", "amarelo", "vermelho"
);
foreach ($array1 as $v){
   $check = "";
   if (in_array($v,$array2)){
     $check = "checked";
   }
   echo "<input type='checkbox' $check/>";    
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

aí que ta o "pulo do gato". você nao entendeu como eu quis fazer, vou tentar mostrar mais explicado...

 

<?
$array1 = array("a" => "verde", "vermelho", "azul", "amarelo");
$array2 = array("b" => "verde", "amarelo", "vermelho"
);
foreach ($array1 as $v){
   $check = "";
   if (in_array($v,$array2)){
     $check = "checked";
   }
   echo "<input type='checkbox' $check/>";    
}
?>

 

cara otimo

perfeito

mais como eu coloco nomes ? nos campos ?

 

tipo o value = nome da cor

nome que aparece pra selecionar = cor ?

 

so mais isso ai acho que fecho

rsrrsrsr

 

echo "<td> <input type='checkbox'  $check name='opcao[]' value='".$Variavel_id_campo ."'>".$Variavel_nome_campo."</br></td>";   

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara pelo que entendi do teu codigo fica assim:

<?
$recordID = $_POST[recordID];

$SQL = "SELECT * FROM pd_diagnostico WHERE codos = '1' ";
$query = mysql_query( $SQL )or die( mysql_error() );

$Def = array(); // cria um array com os valores

while($linha = mysql_fetch_array($query)) {
	echo $linha["defeito"].'<br>';
    $Def[] = $linha["defeito"];  	
 }
?>

 

e estou listando os campos assim

 

<table width="100%">
     	<tr>
<?php
   	$sql1 = "SELECT * FROM pd_CamposDiag WHERE idgrupo= '1' AND status = 'ativo'";
   	$query1 = mysql_query( $sql1 )or die( mysql_error() );
while($row1 = mysql_fetch_array($query1)){
   	if ($cont1 == 4) {
           	echo "</tr><tr>";//fecha e abre linha na tabela
           	$cont1 = 0;
   	}
$check = "";	
       $sNome1 = $row1['nome'];
   	$iId1 = $row1['nome'];
       if (in_array($sNome1,$Def)) {
   	   $check = "checked";  
}
       echo "<td>  <input type='checkbox' $check name='opcao[]' value='".$iId1."'>".$sNome1."</br></td>";
$cont1++;//incrementa
}
?>
   	</tr>
</table>

 

acho q fica assim , faz um teste!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara pelo que entendi do teu codigo fica assim:

<?
$recordID = $_POST[recordID];

$SQL = "SELECT * FROM pd_diagnostico WHERE codos = '1' ";
$query = mysql_query( $SQL )or die( mysql_error() );

$Def = array(); // cria um array com os valores

while($linha = mysql_fetch_array($query)) {
	echo $linha["defeito"].'<br>';
	$Def[] = $linha["defeito"];  	
 }
?>

 

e estou listando os campos assim

 

<table width="100%">
     	<tr>
<?php
   	$sql1 = "SELECT * FROM pd_CamposDiag WHERE idgrupo= '1' AND status = 'ativo'";
   	$query1 = mysql_query( $sql1 )or die( mysql_error() );
while($row1 = mysql_fetch_array($query1)){
   	if ($cont1 == 4) {
           	echo "</tr><tr>";//fecha e abre linha na tabela
           	$cont1 = 0;
   	}
$check = "";	
       $sNome1 = $row1['nome'];
   	$iId1 = $row1['nome'];
       if (in_array($sNome1,$Def)) {
          $check = "checked";  
}
       echo "<td>  <input type='checkbox' $check name='opcao[]' value='".$iId1."'>".$sNome1."</br></td>";
$cont1++;//incrementa
}
?>
   	</tr>
</table>

 

acho q fica assim , faz um teste!

 

Resolvido (Muito Obrigado) VOCE É D+

muito obrigado mesmo

vlw

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.