Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Select com while de banco de dados dentro de array

12-01-2016 16:59

Boa tarde turma!

Estou com um problema que deve ser tao simples que não estou nem imaginando o que é rs.

Tenho um códio que pega os dados de uma tabela, coloca em array para passar para json depois, esta tudo ok funcionando:

<?php // Cria Array com os dados do banco $query = mysql_query("SELECT * FROM clientes WHERE colaborador_id = $id_colaborador"); while($campo = mysql_fetch_assoc($query)){ $dados[] = array( "Id" => $campo["id_cliente"], "Latitude" => $campo["lat"], "Longitude" => $campo["long"], "Cliente" => 'Cliente: ' . $campo["nome"], "Motorista" => 'Motosita: ' ); } // Transformamos esse Array em uma String formatada em JSON $json = json_encode($dados); //exibe o JSON echo $json; ?>

Só que eu preciso fazer outra consulta em outra tabela, para retornar um select em while com todos os "motoristas" que tem lá, com este código tudo ok:

<?php $consulta = mysql_query("SELECT * FROM colaboradores"); ?> <select> <option>Selecione o Motorista...</option> <?php while($motorista = mysql_fetch_array($consulta)) { ?> <option value="<?php echo $motorista['id_colaborador'] ?>"><?php echo $motorista['nome'] ?></option> <?php } ?> </select>

Só que eu coloco o segundo cód. dentro do primeiro e dá erro, esse erro que não sei o q pode ser, se é algum erro de redundancia... aspas... nao sei rs... veja a imagem: http://prntscr.com/9p9w7r

Abaixo o cód. completo do jeito que fiz, que é onde está o erro

<?php // Cria Array com os dados do banco $query = mysql_query("SELECT * FROM clientes WHERE colaborador_id = $id_colaborador"); while($campo = mysql_fetch_assoc($query)){ $dados[] = array( "Id" => $campo["id_cliente"], "Latitude" => $campo["lat"], "Longitude" => $campo["long"], "Cliente" => 'Cliente: ' . $campo["nome"], "Motorista" => $consulta = mysql_query("SELECT * FROM colaboradores"); '<select> <option>Selecione o Motorista...</option>' while($motorista = mysql_fetch_array($consulta)) { '<option value="'.echo $motorista["id_colaborador"].'">' echo $motorista["nome"] '</option>' } ' </select>' ); } // Transformamos esse Array em uma String formatada em JSON $json = json_encode($dados); //exibe o JSON echo $json; ?>

O que eu preciso é colocar um select com outra consulta, dentro desse array.

Agradeço quem puder me ajudar! Valeu!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17660
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Select com while de banco de dados dentro de array

12-01-2016 17:05

Pelo que entendi você precisa alimentar essa linha abaixo com a outra consulta, correto?

"Motorista" => 'Motorista: '

Uma dúvida, você precisa alimentar esse array com o <select> e <options> ou só os valores da consulta?

Se for só para alimentar o array com os nomes roda esse código no começo do documento

$consulta = mysql_query("SELECT * FROM colaboradores"); $motoristas = ""; while($motorista = mysql_fetch_array($consulta)) { $motoristas.= $motorista['nome']. " "; }

Ai abaixo no array você adiciona a variável $motoristas

"Motorista" => 'Motorista: $motoristas'

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Re: Select com while de banco de dados dentro de array

12-01-2016 21:26

Oi, entendi essa lógica, show... mas eu preciso alimentar em select e options sim, do jeito que eu coloquei como vc falou, ficou todos os nomes na mesma linha, se eu fizer um select, ficou uma opção apenas, com todos os nomes separados por espaco, entendeu?

Veja como fiz:

<?php $consulta = mysql_query("SELECT * FROM colaboradores"); $motoristas = ""; while($motorista = mysql_fetch_array($consulta)) { $motoristas.= $motorista['nome']. " "; } ?> <?php // Cria Array com os dados do banco $query = mysql_query("SELECT * FROM clientes WHERE colaborador_id = $id_colaborador"); while($campo = mysql_fetch_assoc($query)){ $dados[] = array( "Id" => $campo["id_cliente"], "Latitude" => $campo["lat"], "Longitude" => $campo["long"], "Cliente" => 'Cliente: ' . $campo["nome"], "Motorista" => 'Motorista: ' . $motoristas ); } // Transformamos esse Array em uma String formatada em JSON $json = json_encode($dados); //exibe o JSON echo $json; ?>

Retornou isto: "Motorista: RDG Colab 3 Colab Colab 4a"

Onde RDG é um nome - Colab 3 é outro... entendeu?

O que faço pra fazer um select?

Obrigado desde ja
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17660
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Select com while de banco de dados dentro de array

12-01-2016 21:52

Se é para armazenar o select com as options em Motorista pode fazer assim:

<?php $consulta = mysql_query("SELECT * FROM colaboradores"); $motoristas = "<select>"; while($motorista = mysql_fetch_array($consulta)) { $motoristas.= "<option value='".$motorista['id_colaborador']."'>".$motorista['nome']."</option>"; } $motoristas.= "</select>"; ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Re: Select com while de banco de dados dentro de array

12-01-2016 22:03

Simplesmente perfeito... muitissimo obrigado!
Se puder me explicar o que é esse "." (ponto) no final das ultimas $motoristas agradeço...

É como se fosse a continuação da $motoristas ?

Obrigado mais uma vez! Abraço
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17660
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Select com while de banco de dados dentro de array

12-01-2016 22:16

Ali é uma concatenação de variável, quando é necessário acrescentar mais conteúdo a mesma, por exemplo:

$variavel = "João "; $variavel.="Pedro "; $variavel.="Maria ";

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Re: Select com while de banco de dados dentro de array

12-01-2016 22:42

Entendi... obrigado!!!
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Re: Select com while de banco de dados dentro de array

13-01-2016 00:26

Sem querer abusar... mas como eu passo esse value $motorista['id_colaborador'] via POST para outra página pelo form?

Obrigadoo
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17660
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Select com while de banco de dados dentro de array

13-01-2016 08:16

O mode mais comum é você colocar esse valor em um input tipo hidden ou text e enviar no formulário, por exemplo:

<form action="" method="post"> <input type="hidden" name="id_colaborador" value="<?php echo $motorista['id_colaborador']; ?>" /> <input type="submit" name="envio" /> </form>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Re: Select com while de banco de dados dentro de array

13-01-2016 09:08

Na verdade eu queria passar o valor escolhido do option! :)
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17660
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Select com while de banco de dados dentro de array

13-01-2016 14:32

Se o valor está em um select é só deixar a opção com o valor já selecionado e enviar por post. Depois capturar.

<form action="" method="post"> <select name="id_colaborador"> <option value="<?php echo $motorista['id_colaborador']; ?>"><?php echo $motorista['id_colaborador']; ?></option> <input type="submit" name="envio" /> </form>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Re: Select com while de banco de dados dentro de array

13-01-2016 16:21

Mas é essa recuperada que eu não estou conseguindo... geralmente faço asism:

$campo = $_POST['campo'];

Desta vez não estou encaixando, veja, seria isso?

$campo = $_POST[$motorista['id_colaborador]];

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17660
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Select com while de banco de dados dentro de array

13-01-2016 17:34

Se você está passando o id_colaborador

<select name="id_colaborador">

Você captura assim

$campo = $_POST['id_colaborador'];

0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado