Jump to content

Archived

This topic is now archived and is closed to further replies.

asacap1000

Dois selects com foreach entre eles

Recommended Posts

Galera bom dia e ótimo feriado pra todos aí!!!!.

 

Estou com um problema aqui e não estou saindo do lugar.

 

Tenho um select que busca informações no banco de dados Oracle. Beleza trago os resultados dos motoristas que ainda estão na empresa para coleta.

Deste resultado tenho que fazer um select no banco Mysql e buscar os documentos de entrada destes motoristas e deixá-los disponibilizados.

 

Tentei utilizar o foreach no resultado da primeira consulta e o IN no select da segunda, mas percebi que ele está consultando apenas o ultimo resultado da primeira.

eu fiz da seguinte forma.

$connect = oci_connect("user","senha","oracle");  
   $stmu = ociparse($connect,"select nome_motor from entrada where status < '90'");  

 ociexecute($stmu);

while (($row = oci_fetch_array($stmu, OCI_BOTH)) != false) {; 
 	$motor = array(OCIResult ($stmu ,1));
	
	foreach ($motor as $motorista) 
	$motorista = strtoupper($motorista);
	{
$result = mysqli_query($con,"SELECT * FROM ordem
 WHERE nome_motor in ($motorista) and datacoleta = (SELECT date_format(curdate(), '%d/%m/%Y'))LIMIT 15");
}}

<form method="GET" action="#">
PROTOCOLO:<select name="id" size="1" id="id">
<option value="">Selecione</option> <?
 while($row = mysqli_fetch_array($result))
 
  { 
  echo "<option value='" . $row['id'] . "'>" . $row['id'] . "</option>";
  }
  echo "</select>";   ?>
</select><p>

MOTORISTA:		<select name="cidades" id="cidades" disabled="disabled"  contenteditable="false" ></select><p>
TRANSPORTADORA: <select name="transporte" id="transporte" disabled="disabled"  contenteditable="false" ></select><p>
CLIENTE:		<select name="cliente" id="cliente" disabled="disabled"  contenteditable="false" ></select><p>
DOCUMENTOS:		<select name="documento" value"documento" id="documento"></select><p>
<hr>
<input type="submit" value="ABRIR">
</form>

Será que estou errando na posição das chaves ou tem que ser de outra forma?

Se puderem me dar uma ajuda antes do carnaval KKKKKK vou poder viajar huahsuahsuhaushau

 

Share this post


Link to post
Share on other sites

Tente assim:

$motor = array();
$contar = 0;

while (($row = oci_fetch_array($stmu, OCI_BOTH)) != false) { 
 	$motor[$contar] = OCIResult ($stmu, 1);
	$contar++;
}

foreach ($motor as $motorista) {
	$motorista = strtoupper($motorista);
	$result = mysqli_query($con,"SELECT * FROM ordem
	WHERE nome_motor in ($motorista) and datacoleta = (SELECT date_format(curdate(), '%d/%m/%Y'))LIMIT 15");
}

Share this post


Link to post
Share on other sites

 

Tente assim:

 

 

$motor = array();
$contar = 0;

while (($row = oci_fetch_array($stmu, OCI_BOTH)) != false) { 
 	$motor[$contar] = OCIResult ($stmu, 1);
	$contar++;
}

foreach ($motor as $motorista) {
	$motorista = strtoupper($motorista);
	$result = mysqli_query($con,"SELECT * FROM ordem
	WHERE nome_motor in ($motorista) and datacoleta = (SELECT date_format(curdate(), '%d/%m/%Y'))LIMIT 15");
}

Show de bola estou quase lá, coloquei mais algumas regras agora e aspas simples e virgula mas ainda não retira a ultima virgula.

$cond =   ''.$motorista.',';//coloquei uma virgula em cada posição


#tamanho da variável "$cond"

$size = strlen($cond);

#Retiro a vírgula que ficou no final da string e teremos a condição completa
	$condicao = substr($cond,0,$size-1);


Mas ainda sim ele não tira a ultima virgula

'ADRIANO DE CAMPOS','AMARILDO SEVERINO','ELIEL DE OLIVEIRA SOARES','EVANDRO CESAR SCOTTO','GILVAN COSTA SILVA','JULIO CESAR CALGAROTTO','LEANDRO RIBEIRO DA COSTA','PAULO CESAR DOMINGUES PAGGI',

Share this post


Link to post
Share on other sites

 

Faça assim:

$cond =   ''.$motorista.',';//coloquei uma virgula em cada posição
$cond = trim($cond, ',');

Boa tarde Alex!

Neste esquema eu retiro o que coloquei e adiciono apenas no processo que você postou ou coloco junto?

 

Pois coloquei e ele retirou todas as virgulas deixando apenas as aspas.

 

Ah as aspas estou adicionado no proprio select veja abaixo.

 

SELECT DISTINCT (''''|| D.NAME ||'''')

Share this post


Link to post
Share on other sites

Fiz um teste aqui e funcionou perfeitamente:

$motorista = "'ADRIANO DE CAMPOS','AMARILDO SEVERINO','ELIEL DE OLIVEIRA SOARES','EVANDRO CESAR SCOTTO',";
$motorista = trim($motorista, ',');
echo $motorista;
// Saida: 'ADRIANO DE CAMPOS','AMARILDO SEVERINO','ELIEL DE OLIVEIRA SOARES','EVANDRO CESAR SCOTTO'

Share this post


Link to post
Share on other sites

 

Fiz um teste aqui e funcionou perfeitamente:

$motorista = "'ADRIANO DE CAMPOS','AMARILDO SEVERINO','ELIEL DE OLIVEIRA SOARES','EVANDRO CESAR SCOTTO',";
$motorista = trim($motorista, ',');
echo $motorista;
// Saida: 'ADRIANO DE CAMPOS','AMARILDO SEVERINO','ELIEL DE OLIVEIRA SOARES','EVANDRO CESAR SCOTTO'

Valewww deu certo!!!

Fiz algumas alterações aqui agora e foi.

 

Fiz o seguinte no primeiro select coloquei desta forma

LISTAGG (adi.motor,''',''')WITHIN GROUP (ORDER BY adi.motor)over () prod

ociexecute($stmu);

$motor = array();
$contar = 0;

while (($row = oci_fetch_array($stmu, OCI_BOTH)) != false) { 
 	$motor[$contar] = OCIResult ($stmu, 1);
	$contar++;
}

foreach ($motor as $motorista1) {

$result = mysqli_query($con,"SELECT *
  FROM ordem
 WHERE nome_motor in ('$motorista1') and datacoleta = (SELECT date_format(curdate(), '%d/%m/%Y'))");
}

Share this post


Link to post
Share on other sites

  • Similar Content

    • By Caio Vargas
      Fala pessoal tudo bem
      Estou criando um site para o cliente e ele me pediu para colocar um tradutor ao clicar nas bandeiras
      porem eu nao queria fazer uma pagina para cada traduçao eu queria fazer tipo usando o google Translate 
       
      alguem tem alguma sugetao de como posso fazer ou um exemplo 
      grato
    • By Ferdz-Agencia-Digital
      @Matheus Tavares
       
      Estou montando uma API para usar com BD MySQL, mas futuramente migraremos o BD para MongoDB... deverei mudar muitas coisas da API ? Terei muito retrabalho ?
       
      O que acontece é que o projeto já existe e atualmente o BD é em MySQL e APIs em PHP... mas o projeto será migrado para a stack  MERN (MongoDB, Express, React e Node).
       
      A questão não é só performance, mas sim poder modernização pois o projeto irá se expandir precisa ser melhor escalável e a STACK será todo refeita, como disse acima, será usada MERN.
    • By FerdzFernando
      Estou montando uma API para usar com BD MySQL, mas futuramente migraremos o BD para MongoDB... deverei mudar muitas coisas da API ? Terei muito retrabalho ?
       
      O que acontece é que o projeto já existe e atualmente o BD é em MySQL e APIs em PHP... mas o projeto será migrado para a stack  MERN (MongoDB, Express, React e Node)
    • By Kelven
      Bom dia pessoal tudo bem?
      Então, estou trabalhando em um site em php e preciso usar a api do facebook para obter o feed do instagram, porém a chave token é um conteúdo muito sensível, então decidi fazer em php para ela não ficar disponível do lado do cliente. Alguém sabe me dizer se é possível fazer isso? Porque eu pesquisando no google só achei maneiras de fazer em javascript.
    • By gersonab
      Boa noite, tenho pesquisado porém não encontrei, então vamos lá.
      tenho uma lista de itens ( documentos ) cadastrados no banco de dados e os seus respectivos arquivos em uma pasta, se eu preciso de um deles clico e faço o download deste, no entanto como fazer para fazer o download de vários ao selecionar com checkbox os que eu quero ?
      desculpem por não postar nenhum código, mas é que não estou sabendo como fazer os downloads de vários.
      Qual o procedimento correto ?
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.