Ir para conteúdo

POWERED BY:

Arquivado

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

Lord_Rato

Problemas para criar lista com botões.

Recommended Posts

Olá pessoal.
Estou com o seguinte problema nas mãos: Estou criando uma lista de resultados do MySQL, e dentro de cada linha da lista um botão para que seja enviado o id da linha escolhida do resultado, porém, não importa qual dos botões seja selecionado, o id que é enviado é sempre o ultimo da pesquisa do MySQL. Eu entendo que meu laço de repetição está sobrescrevendo as variáveis, mas ainda não encontrei solução para que em cada um dos botões fique com o id da linha do resultado da pesquisa.
Há como criar um array que recebe os resultados dos id's da pesquisa no banco, e, por meio de um for, onde eu apontaria o índice que desejo nos botões?
Eu até tentei fazer algo assim, mas não consegui encontrar a lógica. Abaixo o código para análise:

<?php
include '../model/conexao.php';
?>
<html>
<head>
<title>Teste</title>
</head>
<body>
<form name="enviar_dados" method="POST" action="phparray.php">
<table>
<?php
$sql_consulta = "SELECT id_cli, id_empresa, codigo_cli, nome_razao_cli, cpf_cnpj_cli, end_res_cli, num_end_res_cli, cidade_res_cli, tel1_cli FROM clientes WHERE codigo_cli LIKE '3%' AND condicao_cli='1' AND id_empresa='2';";
$sql_resultado = mysqli_query($conexao,$sql_consulta);
while($registro = mysqli_fetch_row($sql_resultado)){
$idCli = $registro[0];
$idEmpresa = $registro[1];
$codigoCli = $registro[2];
$nomeCli = $registro[3];
$cpfCli = $registro[4];
$endResCli = $registro[5];
$numEndResCli = $registro[6];
$cidadeResCli = $registro[7];
$tel1Cli = $registro[8];

for($i = 0; $i < count($sql_resultado); $i++){
$idBotao = array($registro[0]);
echo "<tr>";
echo "<td align='center'>" . $codigoCli ."</td>";
echo "<td width='3%'></td>";
echo "<td align='center'>" . $nomeCli ."</td>";
echo "<td width='3%'></td>";
echo "<td align='center'>" . $cpfCli ."</td>";
echo "<td width='3%'></td>";
echo "<td align='center'>" . $endResCli .", " . $numEndResCli . "</td>";
echo "<td width='3%'></td>";
echo "<td align='center'>" . $cidadeResCli ."</td>";
echo "<td width='3%'></td>";
echo "<td align='center'>" . $tel1Cli ."</td>";
echo "<td width='3%'></td>";
echo "<td align='center'><input type='hidden' name='id_cli' value='" . $idBotao[$i] . "' /><input type='submit' name='result' value='Alterar' /></td>";
echo "</tr>";
}
}
?>
</table>
</form>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais uma vez obrigado por tentarem ajudar.
Resolvi o problema graças a ajuda de um amigo programador. A explicação dele compartilho com todos os interessados aqui:

 

Não há como utilizar botões neste caso (pois os botões exigem nome, e quando o botão é criado dentro do laço, todos os botões recebem o mesmo nome, por esse motivo o valor é sobrescrito), o correto foi substituir os botões por link's, passando o formulário não por POST e sim por GET para o programa php que faz a alteração.

 

<?php
include '../model/conexao.php';
?>
<html>
<head>
<title>Teste</title>
</head>
<body>
<form name="enviar_dados" method="GET" action="editar.php">
<table>
<?php
$sql_consulta = "SELECT id_cli, id_empresa, codigo_cli, nome_razao_cli, cpf_cnpj_cli, end_res_cli, num_end_res_cli, cidade_res_cli, tel1_cli FROM clientes WHERE codigo_cli LIKE '3%' AND condicao_cli='1' AND id_empresa='2';";
$sql_resultado = mysqli_query($conexao,$sql_consulta);
while($registro = mysqli_fetch_row($sql_resultado)){
$idCli = $registro[0];
$idEmpresa = $registro[1];
$codigoCli = $registro[2];
$nomeCli = $registro[3];
$cpfCli = $registro[4];
$endResCli = $registro[5];
$numEndResCli = $registro[6];
$cidadeResCli = $registro[7];
$tel1Cli = $registro[8];
echo "<tr>";
echo "<td align='center'>" . $codigoCli ."</td>";
echo "<td width='3%'></td>";
echo "<td align='center'>" . $nomeCli ."</td>";
echo "<td width='3%'></td>";
echo "<td align='center'>" . $cpfCli ."</td>";
echo "<td width='3%'></td>";
echo "<td align='center'>" . $endResCli .", " . $numEndResCli . "</td>";
echo "<td width='3%'></td>";
echo "<td align='center'>" . $cidadeResCli ."</td>";
echo "<td width='3%'></td>";
echo "<td align='center'>" . $tel1Cli ."</td>";
echo "<td width='3%'></td>";
echo "<td align='center'><a href='editar.php?id=' " . $idCli . " ' />Alterar</a></td>";
echo "</tr>";
}
}
?>
</table>
</form>
</body>
</html>

 

Por favor, encerrem este tópico.
Obrigado. :)

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.