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 lezão
      Boa noite!
      Estou tentando fazer um codigo de horario de atendimento, e naun estou tendo resultados.
      Alguem pode me ajudar :
      <?php if ($hoje = 3 & $hoje < 5 & $hora >= 0 & $hora < 08){ echo "<font face='verdana', arial' size=2 color='red'>Fechado</font>";} else if ($hoje > 3 & $hoje < 5 & $hora >= 08 & $hora < 18){ echo "<font face='verdana', arial' size=2 color='red'>Fechado</font>";} else if ($hoje = 3 & $hora >= 18 & $hora < 23){ echo "<font face='verdana', arial' size=2 color='green'>Aberto</font>";} ?>  
    • By AndersonWS
      Meu site está caindo muito nos últimos dias. Basicamente acessa e não aparece nada, uma tela em branco. O pessoal da hospedagem falou que tenho que otimizar o banco de dados e que o problema é esse. Acho estranho pois o mesmo site não caia e agora "do nada" tem esse problema. Fiz um teste de tracert no cmd para ver as rotas e deu a mensagem: Esgotado o tempo limite do pedido. Isso me parece o problema e não o banco de dados.
      Otimização do banco tem alguma coisa a ver com essa mensagem?
      Poderia o site por não estar muito otimizado simplesmente não mostrar nada na tela? Não deveria carregar ao menos o html?
      Se não for o local certo da pergunta me perdoem mas como falaram que o problema era o banco de dados postei aqui.
      Grato.
    • By manolegal
      Olá amigos(as) do Fórum.
      Tenho um número inteiro no PHP e preciso inseri-lo no Postgresql com 02 casas decimais.
      Defini o campo no Postgresql do tipo numeric(14,2)
      O valor está assim no PHP:
      2961966 Preciso gravar no BD da seguinte maneira:
      29619.66 Porém está gravando da seguinte forma:
      2961966.00 Tentei utilizando number_format, porém não consegui:
      $numero_bd = number_format($numero, '.', ''); $numero_bd = number_format($numero,2,"."); $numero_bd = number_format($numero,2,","numerovalor_ref_15,2,",","."); Caso alguém possa me ajudar, desde já agradeço.
    • By Felper
      Criei um sistema de login com php e mysql mas não consigo realizar o login mesmo tendo certeza de que os dados foram cadastrados com sucesso. Não sei o que fiz de errado. Vejam o código:
      <?php $login2 = $_POST['loginlogar']; $senha2 = $_POST['senhalogar']; $link = mysqli_connect("localhost", "root", "", "bancolanche") or die("<h1>Não foi possível conectar!!</h1>". mysqli_error()); $banco = mysqli_select_db($link, "bancolanche") or die("<h1>Não foi possível abrir banco de dados!!</h1>". mysqli_error()); $sql = "SELECT login, senha FROM users"; $resulta = mysqli_query($link, $sql); while ($book = $resulta->fetch_object()) { $logindb = $book->login; $senhadb = $book->senha; } if($login2 == "" || $senha2 == ""){ $_SESSION['msg'] = "<h1 style='color:red'>Erro ao logar! Há campos de preenchimento obrigatório em branco.</h1>"; header("Location: logar.php"); } else { if($logindb==$login2 && $senhadb==$senha2){ $_SESSION['msg'] = "<h1 style='color:green'>Logoff realizado com sucesso!</h1>"; header("Location: index.html"); } else { $_SESSION['msg'] = "<h1 style='color:red'>Erro ao logar! Usuário inexistente ou senha incorreta.</h1>"; header("Location: logar.php"); } } mysqli_close($link); ?>  
×

Important Information

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