Ir para conteúdo
Entre para seguir isso  
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

 

Compartilhar este post


Link para o post
Compartilhar em outros 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");
}

Compartilhar este post


Link para o post
Compartilhar em outros 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',

Compartilhar este post


Link para o post
Compartilhar em outros 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 ||'''')

Compartilhar este post


Link para o post
Compartilhar em outros 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'
  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros 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'))");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

  • Conteúdo Similar

    • Por Eduardo S. B. de Oliveira
      Senhores, preciso de uma ajuda, estou criando um formulário onde o checkbox fique "checked" quando clicar em cima, mas o detalhe e que quando atualizar a pagina o checkbox permaneça marcado. É possível? 
    • Por Jefferson andre
      Ola, estou criando um contador de acessos diario mas nao funciona, a tabela tem o campo data no formato date e o campo contador int(10)
       
      A ideia eh verificar a data e se nao existir incluir na tabela, se existir adicionar ao contador
       
      Parece que o erro esta no formato da data, nem manualmente consigo incluir na tabela via localhost ou na hospedagem da google
       
      Agradeço qualquer ajuda
       
      <?php // fazendo uma conexão com o banco de dados include("conexao.php"); // grava a data atual em uma variavel date_default_timezone_set('America/Sao_Paulo'); $date = date('d-m-Y'); //$sql = "SELECT codigo FROM contador"; $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$date'"); if (mysqli_num_rows($resultado)== true){ // registro ja existe } else { // resultado nao encontrado entao inserir $sql = "INSERT INTO contador_diario ('data', 'contador') VALUES ('$date', '1')"; if ($arquivo->query($sql) == TRUE) { echo "Data cadastrada com sucesso"; } else { echo "Erro: " . $sql . "<br>" . $arquivo->error; } } // refaz a pesquisa para registrar o contador $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$date'"); // igualar a array a uma variavel $linha=mysqli_fetch_array($resultado); $cod_2 = $linha["contador"]+1; // lista a variavel //echo "<font face='Arial'><span class='style14'>$cod_2</span></font>"; $sql = "UPDATE contador_diario SET contador=$cod_2"; if ($arquivo->query($sql) === TRUE) { // echo "Alteração efetuada com sucesso"; } else { // echo "Erro alterando o contador de visitas diario" . mysqli_error($arquivo); } // fecha a conexao mysqli_close($arquivo); ?>  
    • Por gersonab
      Tenho este sql que funciona normal:
      <?php $idtor = (int)$_GET['id_tor']; $dia = $_GET['dia']; $sql3 = "SELECT * FROM cantos INNER JOIN campeonato ON id_camp = id_campeonato INNER JOIN torneio ON id_tor = id_torneio WHERE data = :dia AND id_torneio = :idtor ORDER BY cantosfim DESC, pontos DESC, cantos DESC"; $stmt = $pdo->prepare($sql3); $stmt->bindParam(':idtor', $idtor); $stmt->bindParam(':dia', $dia); $stmt->execute(); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { ?> porém este outro não retorna nada, nem erro...
      <?php $idtor = (int)$_GET['id_tor']; $consul = "SELECT id_cantos, id_torneio, id_campeonato, SUM(cantosfim) AS cantfin, SUM(pontos) AS pontfin FROM cantos INNER JOIN campeonato ON id_camp = id_campeonato INNER JOIN torneio ON id_tor = id_torneio WHERE id_tor = :idtor ORDER BY pontfin DESC, cantfin DESC"; $stmt = $pdo->prepare($consul); $stmt->bindValue(':idtor', $idtor); $stmt->execute(); while ($lin = $stmt->fetch(PDO::FETCH_ASSOC)) { ?> não consigo encontrar o erro.
    • Por Carcleo
      Estou tentando rotacionar um texto no PDF com mPDF mas não estou conseguindo.
      $css = ' <style> ul { } ul li { float: left; list-style: none; /*necessáro width no campo */ } ul li span.vertical { display: block; //transform: rotate(270deg); /*necessáro display: block*/ text-rotate : 270; } </style>'; $html = ' <ul> <li style="width: 150px"><span class="vertical">Elefante</span></li> <li style="width: 150px"><span>Não</span></li> <li style="width: 150px"><span>Come</span></li> <li style="width: 150px"><span class="vertical">Bananada</span></li> </ul>'; require_once "../vendor/autoload.php"; $pdf = new \Mpdf\Mpdf(['debug' => true]); $pdf->AddPage(); $pdf->charset_in = "UTF-8"; $pdf->SetFont('Arial','B',16); $pdf->WriteHTML( $css, 1 ); $pdf->WriteHTML( $html ); $pdf->Output(); Obs.: O restante do estilo funciona normal.
       
      O problema é apenas no PDF. No navegador, os spans giram normalmente.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.