Jump to content

Search the Community

Showing results for tags 'foreach'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 81 results

  1. Fiz uma iteração foreach para gerar categorias e subcategorias, pois não queria fazer DOIS SELECTS, ficando assim: //----> Foreach para gerar a categoria, pois são vários items com as mesmas chaves, portanto agrupo foreach($exibeLista as $row){ $dlD[$row["nameD"]][] = [ "nameD"=>$row["nameD"], "idD"=>$row["idD"], "qtdR"=>$row["qtdR"], "qtdF"=>$row["qtdF"] ]; } //----> Foreach para gerar subcategorias foreach($exibeLista as $row){ $dLA[$row["nameP"]][] = [ "nameD"=>$row["nameD"], "idD"=>$row["idD"], "idAss"=>$row["idAss"], "idT"=>$row["idT"], "nameP"=>$row["nameP"], "qtdR"=>$row["qtdR"], "qtdF"=>$row["qtdF"] ]; } $fsHTML = []; $rateD = 0; $qtdAss = 0; if(is_array($dlD) || is_object($dlD)){ foreach ($dlD as $key => $ds) { if ($key <> '' && $key <> NULL) { $rateD += (($ds[0]["qtdR"]*100)/$ds[0]["qtdF"]); $qtdAss += count($dlD[$key]); //----> Array para inserir HTML da Categoria criada e criar accordion $fsHTML[] = ' <div class="col-md-12 col-sm-12 col-xs-12"> <div class="x_panel overflow_hidden padding-into-row-qsts bg-white-row filtro-on"> <span class="rateD">'.ceil($rateD/$qtdAss).'%</span> <span class="opcao-into-top">'.$ds[0]["idD"].' - '.$ds[0]["nameD"].' <a class="collapse-link open-filter-qsts border-radius8"><i class="fa fa-chevron-up"></i></a></span> <div class="x_content" style="display:none;padding-top:10px"> <div class="accordion" id="accordion" role="tablist" aria-multiselectable="true"> '; //----> Verificar se a subcategoria contém a categoria, se contém é incluída na array foreach ($dLA as $keys => $ass) { if($ass[0]["idD"] == $ds[0]["idD"] ){ if($ass[0]['idT'] <> 0){ $link = 't='.$ass[0]['idT']; }else{ $link = 'a='.$ass[0]['idAss'];} $fsHTML[] = ' <div class="panel"> <a class="panel-heading collapsed" href="/v/fs/st?mz=y&type=c&'.$link.'"> <span class="eficiencia-accordion">'.ceil(($ass[0]['qtdR']*100)/$ass[0]['qtdF']).'%</span> <h4 class="panel-title">'.$ass[0]['nameP'].'</h4> <span class="unicamente">'.$ass[0]['qtdR'].' respondido de '.$ass[0]['qtdF'].'</span> </a> </div> '; }//if ass }//foreach ass }//if ds //----> Aqui é aonde ocorre o ERRO! Era pra fazer o fechamento do Accordion e gerar uma nova DIV. //No índice [0] isso ocorre normalmente, porém no [1] ela agrupa todos os accordions. (abaixo farei a amostra) $fsHTML[] = '</div></div></div></div>'; }//foreach ds }//if verifica se é array e se é objeto return implode('', array_unique($fsHTML)); O correto seria assim: - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria Como está acontecendo: - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria Não consigo entender de jeito nenhum pq o primeiro fecha corretamente e a partir do segundo não. Alguém me ajuda?
  2. ViniciusRamoa

    Limitar itens exibidos do foreach [RESOLVIDO]

    Olá, eu possuo o código: @foreach ($manga['chapters'] as $chapter) <div class="manga-chapter" > <h6 class="events-subtitle" style="left: -165px; top: 30px; position: relative;"> {{ link_to_route('front.manga.reader', "≫"." ".$chapter['chapter_name'], [$manga['manga_slug'], $chapter['chapter_slug']]) }} </h6> </div> @endforeach Mas ele acaba exibindo muitos itens, eu gostaria de limitar para apenas 5 itens, e que esses 5 itens, o menor fosse "apagado" e aparecesse o mais recente, exemplo: Atualmente: Item 5 Item 4 Item 3 Item 2 Item 1 Quando um novo item for publicado, ficaria: Item 6 Item 5 Item 4 Item 3 Item 2 Agradeço a ajuda, se puder pelo menos indicar um caminho, já ajuda muito, estou perdido aqui
  3. helkton

    passar varios valores foreach

    oi galera, seguinte preciso salvar os dados de um carrinho no banco de dados olha só como fiz a gambiarra, me ajudem a consertar rsss array_map ( function ($id,$qdade,$valor) { echo 'idProd '.$id; echo ' qdadeProd '.$qdade; echo ' valorProd '.$valor; echo '<br>'; },$idProduto, $qdadeProduto, $valorProduto); já tenho os dados gravados no banco em um carrinho temporario agora depois que o cliente finalizar o pagamento eu quero jogar esses dados na tabela pedidos a saida esta pegando esses devidos valores $id - $qdade e $valor certinho mais não consigo jogar no banco de dados
  4. No meu código $this->details() me retorna todos os detalhes dos produtos, tais como ID, nome do produto, descrição etc. No carrinho de compras quando o usuário finaliza a compra os dados dos itens que ele pediu são inseridos no BD. O problema é que cada produto tem um nome, e quando o usuário finaliza a compra está sendo inserido apenas o Nome do primeiro produto do carrinho repetitivamente. Vejam na foto que o ID do produto é diferente, mas o nome é repetido em todos. Tentei fazer um foreach para tentar resolver o problema, mas continua a mesma coisa. Se alguém puder me ajudar por gentileza, agradeço :) $this->start(); foreach($this->details() as $product_name){ $product = $product_name['product_name']; } // Insert the items if ($pass) { $this->details(); $this->orderID = $this->lastID; $sql = "INSERT INTO `orders_items` (`order_id`, `product_id`, `quantity`, `product_name`) VALUES "; $cond = []; foreach ($_SESSION['cart'] as $id=>$qty) { $sql .= "(?, ?, ?, ?),"; array_push($cond, $this->orderID, $id, $qty, $product); } $sql = substr($sql, 0, -1) . ";"; $pass = $this->exec($sql, $cond); }
  5. Olá Pessoal! Como valores dentro de um loop foreach para gravar os valores selecionados, exemplo: $alunos = "1,2"; $arr = [$alunos]; foreach($arr as $dado => $value) { $list = explode(',', $value); PRECISO DE AJUDA AQUI e depois: mysqli_query($conn, "INSERT INTO tb_alunos (id) VALUES ('$???')"); } E quando isso acontece? $alunos = "1"; OU $alunos = ""; Desde já agradeço!
  6. ivansilvask83

    Foreach com duas variáveis em uma tabela

    Pessoal preciso mostrar na tabela o valor de nome, email e cotas o problema é que não estou conseguindo mostrar a quantidade de cotas porque preciso de 2 variaveis foreach ou 2 foreach. segue o codígo: <tbody> <?php if(!empty($indicados_nivel)){ foreach($indicados_nivel as $indicado){ $indicadoInfo = $this->conta_model->InfoUser($indicado); foreach ($cotas as $cota) { ?> <tr> <td width="200"> <?php echo $indicadoInfo->nome;?> </td> <td width="250"> <?php echo $indicadoInfo->email;?> </td> <td width="50"> <?php echo $cota->quantidade; ?> //Aqui Preciso Mostrar a Quantidade de cotas que cada usuario tem// </td> </tr> <?php } } ?> </tbody>
  7. Estou com uma dúvida aqui e não estou conseguindo achar uma solução. Criei um sistema de sorteio onde corre e salva no banco uma sequências numeral de forma aleatória. No foreach eu determinei que deverá procurar 5 sequências entre 1 à 10 sem repetir... e caso ele ache no banco, já salvo anteriormente por outro apostador um nº repetido, ele deveria somar + 1 no final do laço e continuar a buscar outro numero até finalizar as 5 sequências. Só que quando ele soma + 1 ele não transfere essa soma para o forech, pois o laço inicia numa linha abaixo. No trecho abaixo eu simulei um número salvo no banco que seria o "00004" e no loop ele deverá pular esse nº. Será que consegui passar a minha dúvida? // GERAR NÚMEROS ALEATÓRIOS function getRandomNumbers($qnt, $min, $max, $repeat = false, $sort = true, $sort_order = 0){ if ((($max - $min) + 1) >= $qnt) { $numbers = array(); while (count($numbers) < $qnt) { $number = mt_rand($min, $max); if ($repeat) { $numbers[] = $number; } elseif (!in_array($number, $numbers)) { $numbers[] = $number; } } if($sort){ switch ($sort_order){ case 0: sort($numbers); break; case 1: rsort($numbers); break; } } return $numbers; } else { return 'A faixa de valores entre $min e $max deve ser igual ou superior à ' . 'quantidade de números requisitados'; }} // Após declará-la: foreach (getRandomNumbers(5, 1, 10, false, false) as $number){ $number = str_pad($number , 6 , '0' , STR_PAD_LEFT); // EXIBIR NA TELA DE TESTE OS NÚMEROS PARA SORTEIO echo " $number<br>"; // $sql = mysqli_query($con, "SELECT * FROM sorteios WHERE num_sorteados='$number'"); // while($array = mysqli_fetch_array($sql)){ // $num_sorteados = $array['num_sorteados']; // } // TESTE $num_sorteados = 000004; // if($num_sorteados == false or $num_sorteados != $number){ $query = "INSERT INTO sorteios (referencia, num_sorteados) VALUES ('$reference','$number')"; mysqli_query($con, $query) or die (" Erro ao inserir dados sorteados"); } else { $qtde_numeros = $qtde_numeros + 1; } }
  8. kenio Junio

    Como adicionar Foreach no envio de email

    Olá, esta dando erro no foreach dessa variavel $Mailer->Body = ' <div style="float:left;width: 100%;"> <h3 style="margin: 14px 0px 0px 0px;padding: 10px 0px 7px 13px;background: #D2D2D2;color: #404040;">Dados de Quem fez o pedido</h3> <table border="0" cellpadding="0" cellspacing="0" style="float:left; width:100%;border: 1px solid #cccccc;"> <tr> <td style="padding: 10px;">Nome:</td> <td>'.$nome.' '.$sobrenome.'<td> <tr> <tr> <td style="padding: 10px;">CPF:</td> <td>'.$cpf.'<td> <tr> <tr> <td style="padding: 10px;">CPF:</td> <td>'.$email.'<td> <tr> <tr> <td style="padding: 10px;">CPF:</td> <td>'.$numero.'<td> <tr> <tr> <td style="padding: 10px;">CPF:</td> <td>'.$complmento.'<td> <tr> <tr> <td style="padding: 10px;">CPF:</td> <td>'.$bairro.'<td> <tr> <tr> <td style="padding: 10px;">CPF:</td> <td>'.$cidade.'<td> <tr> <tr> <td style="padding: 10px;">CPF:</td> <td>'.$estado.'<td> <tr> <tr> <td style="padding: 10px;">CPF:</td> <td>'.$cep.'<td> <tr> </table> <table style="width: 100%;float: left;" border="0" cellpadding="0" cellspacing="0"> <thead style="background: #555;"> <tr> <th style="padding: 11px 9px;color: rgba(255, 255, 255, 0.87);font-weight: 300;"> Imagem </th> <th style="padding: 11px 9px;color: rgba(255, 255, 255, 0.87);font-weight: 300;"> Produto </th> <th style="padding: 11px 9px;color: rgba(255, 255, 255, 0.87);font-weight: 300;"> Valor(Unidade) </th> <th style="padding: 11px 9px;color: rgba(255, 255, 255, 0.87);font-weight: 300;"> SubTotal </th> <th style="padding: 11px 9px;color: rgba(255, 255, 255, 0.87);font-weight: 300;"> Quantidade </th> <th style="padding: 11px 9px;color: rgba(255, 255, 255, 0.87);font-weight: 300;"> Peso </th> <th style="padding: 11px 9px;color: rgba(255, 255, 255, 0.87);font-weight: 300;"> Tamanho </th> <th style="padding: 11px 9px;color: rgba(255, 255, 255, 0.87);font-weight: 300;"> Cor </th> </tr> </thead> <tbody>' 153 foreach ($produtos as $indice => $dados) { list($id, $opcoes) = explode(':', $indice); $qtd = $dados['qtd'];' <tr> <td style="padding: 8px!important;"> <img src="'echo PATCH.'/produto/'.$dados['imagem'];'" width="60"> </td> <td> <span style="text-align: left;padding: 0 0 0 19px;overflow: hidden;width: 105px;text-overflow: ellipsis;white-space: nowrap;float: left;" title="'echo $dados['titulo'];'"> 'echo $dados['titulo'];' </span> <td> <td style="width: 113px;">'.$dados['preco'].'</td> <td style="width: 113px;">'.$dados['subtotal'].'</td> <td style="width: 87px;">'.$dados['qtd'].;'</td> <td style="width: 79px;">'.$dados['peso'].' g</td> <td style="width: 78px;">'.$dados['tamanho'].'</td> <td style="width: 65px;">'.$dados['cor'].'</td> </tr> '.}.' </tbody> </table> </div>'; Parse error: syntax error, unexpected T_FOREACH in gostaria de sabe como corrigir o erro OBRIGADO PELA ATENÇÃO
  9. Olá pessoal, Poderiam me ajudar? Preciso enviar o formulário via ajax, porém preciso pegar todos os valor de todos os inputs e excluir o valor de cada linha em três tabela. Pode ser que alguma tabela não tenha nenhum valor, mas tem tabela que pode ter 10 valores. Tentei fazer como estou enviando, mas não consegui... Obrigado! <form name='formResiduo'> <?php $sqlr_end = "SELECT e.idclie FROM tb_end e WHERE NOT EXISTS(SELECT i.idinc FROM tb_inc i WHERE e.idclie = i.idinc) ORDER BY e.idclie ASC"; $querye = $conn->query($sqlr_end); $linhas = $querye->num_rows; while($rowrend = $querye->fetch_assoc()) { $reidclie = $rowrend["idclie"]; if ($linhas == "0") { $linhase = ""; } else { $linhase = $linhas; } ?> <input type='text' name='valor[]' value='<?php echo $reidclie; ?>'> <?php } ?> <?php if ($linhase) { ?> <div class='emCursorD emBlkA' style='position:relative;font-size:14px;font-weight:300;'> <div style='position:absolute;width:calc(100% + 100px);height:100%;left:-10px;'></div> <div class='formImptG' style='border-radius:3px;padding:5px;margin-bottom:20px;'> <label> <div style='position:relative;border-bottom:1px solid #606060;padding-top:10px;margint-top:5px;'><?php echo $linhase; ?></div> </label> </div> </div> <?php } ?> <?php $sqlr_res = "SELECT r.idclir FROM tb_res r WHERE NOT EXISTS(SELECT i.idinc FROM tb_inc i WHERE r.idclir = i.idinc) ORDER BY r.idclir ASC"; $queryr = $conn->query($sqlr_res); $linhas = $queryr->num_rows; while($rowrres = $queryr->fetch_assoc()) { $rridclir = $rowrres["idclir"]; if ($linhas == "0") { $linhasr = ""; } else { $linhasr = $linhas; } ?> <input type='text' name='valor[]' value='<?php echo $rridclir; ?>'> <?php } ?> <?php if ($linhasr) { ?> <div class='emCursorD emBlkA' style='position:relative;font-size:14px;font-weight:300;'> <div style='position:absolute;width:calc(100% + 100px);height:100%;left:-10px;'></div> <div class='formImptG' style='border-radius:3px;padding:5px;margin-bottom:20px;'> <label> <div style='position:relative;border-bottom:1px solid #606060;padding-top:10px;margint-top:5px;'><?php echo $linhasr; ?></div> </label> </div> </div> <?php } ?> <?php $sqlr_his = "SELECT h.idclih FROM tb_his h WHERE NOT EXISTS(SELECT i.idinc FROM tb_inc i WHERE h.idclih = i.idinc) ORDER BY h.idclih ASC"; $queryh = $conn->query($sqlr_his); $linhas = $queryh->num_rows; while($rowrhis = $queryh->fetch_assoc()) { $rhidclih = $rowrres["idclih"]; if ($linhas == "0") { $linhash = ""; } else { $linhash = $linhas; } ?> <input type='text' name='valor[]' value='<?php echo $rhidclih; ?>'> <?php } ?> <?php if ($linhash) { ?> <div class='emCursorD emBlkA' style='position:relative;font-size:14px;font-weight:300;'> <div style='position:absolute;width:calc(100% + 100px);height:100%;left:-10px;'></div> <div class='formImptG' style='border-radius:3px;padding:5px;margin-bottom:20px;'> <label> <div style='position:relative;border-bottom:1px solid #606060;padding-top:10px;margint-top:5px;'><?php echo $linhash; ?></div> </label> </div> </div> <?php } ?> </form> <div class='passar emLineB emCursorP'>Passar</div> <script> $(document).ready(function() { $('.passar').click(function(passar) { var formdata = new FormData($("form[name='formResiduo']")[0]); var link = 'sys/incClient.php?teste=ex'; $.ajax({ dataType: 'json', type: 'POST', url: link, data: formdata, processData: false, contentType: false, success: function (result) { var data = result.split('|'); var rA = data[0]; var rB = data[1]; if(rA == "sucesso") { alert(rB); } return false; } }); }); }); </script> if($_GET['teste']=="ex") { foreach($_POST['valor'] AS $lines) { $sqlr = @mysqli_query($conn, "DELETE FROM tb_res WHERE idclir = '$lines'"); $sqle = @mysqli_query($conn, "DELETE FROM tb_end WHERE idclie = '$lines'"); $sqlh = @mysqli_query($conn, "DELETE FROM tb_his WHERE idclih = '$lines'"); } $arrch = "sucesso"."|".$lines; echo json_encode($arrch); exit; }
  10. OLÁ A TODOS, Boa tarde. Preciso de ajuda com o seguinte script. eu tenho uma array que é a seguinte: array (size=7) 0 => string 'gu' (length=2) 1 => string 'tr' (length=2) 2 => string 'fr' (length=2) 3 => string 'ip' (length=2) 4 => string 'al' (length=2) 5 => string 'po' (length=2) 6 => string 'xa' (length=2) Cada string da array de duas letra é a abreviatura de uma cidade; eu quero fazer uma pesquisa na base da dados para cada sigla dessa para ver qual a cidade correspondente. Como vai ser necessariamente um resultado apenas, eu tive que usar o foreach. Tipo foreach($array as $variavel); { $busca = $conn->query("SELECT * FROM tabela WHERE sigla = '$variavel'"); $resultado = $busca->fetch_assoc(); echo ' - '. $resultado['significado_da_sigla']; } } Não está funcionando perfeitamente, mas imprime apenas o último resultado. Eu já tentei uma variável para ir acumulando o resultado, tipo if (empty('$resultado_busca')) { $resultado_busca = $resultado['significado_da_sigla']; } else { $resultado_busca = $resultado_busca . ' - ' . $resultado['significado_da_sigla']; } ou seja, se a variável foi vazia (da primeira vez), então vai criar uma variável com o primeiro resultado, se a variável já existir (das outras vezes), então a variável vai ser igual à variavel anteriormente criado adicionando um traço e o próximo resultado. E depois, em vez de imprimir a variável com fetch_assoc $resultado['significado_da_sigla'] eu imprimiria a variável &resultado_busca, que em cada ciclo iria acumulando os resultados, mas também não está funcionando, essa não imprime nada na tela. Alguém pode dar uma ajuda? OBRIGADO, DESDE JÁ
  11. Eu criei um código que faz o seguinte: Ele pega siglas de uma tabela de dados e apresenta apenas as siglas constantes entre as variáveis $origem e $destino. Depois eu faço um explode e pesquiso cada sigla em outra tabela, procurando o que significa aquela sigla. Faço um foreach e dentro do foreach um select na tabela que tem o significado de cada sigla (tabela cidades) peço para imprimir na tela, mas imprime só o último resultado. Onde como faço para aparecer todos? if ($_COOKIE['user'] == 0) { ?> <!-- parte que vaia aparecer quando o usuário não estiver logado --> <?php } elseif ($_COOKIE['user'] > 0 && $origem == " " && $destino == " ") { ?> <!-- Esta parte vai aparecer só quando o usuário estiver logado. vAI CRIAR UM FORMULÁRIO DE BUSCA--> <section id='about' class="s-about"> <div class="row section-header has-bottom-sep" data-aos="fade-up"> <div class="col-full"> <h3 class="subhead subhead--dark">PROCURAR CARONAS</h3> <h1 class="display-1 display-1--light">Você está procurando uma carona</h1> </div> </div> <!-- end section-header --> <div class="row about-desc" data-aos="fade-up"> <div class="col-full"> <p> No formulário abaixo selecione as cidades de origem e de destino - O sistema vai identificar qual a direção em que você está pretendendo ir e vai listar as rotas possíveis. </p> <p align="center"> <?php $sql = 'SELECT id, sigla, cidade FROM cidades order by cidade'; $result = $conn->query($sql); echo '<form method=get action="#about"><SELECT name="origem" style="font-size: 25px; font-weight: bold; display: inline-block;">'; if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo '<OPTION value="' . $row["sigla"]. '">' . $row["cidade"] . '</option>'; }} else { echo "0 results"; } echo '</select> | '; $result = $conn->query($sql); echo '<SELECT name="destino" style="font-size: 25px; font-weight: bold; display: inline-block;">'; if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo '<OPTION value="' . $row["sigla"]. '">' . $row["cidade"] . '</option>'; }} else { echo "0 results"; } echo '</select> <Input type="submit" value="Procurar"> </form>'; ?> </div> </div> <!-- end about-desc --> <!-- end about-stats --> <div class="about__line"></div> </section> <!-- end s-about --> </p> <!-- Final da parte de procurar caronas --> <?php } elseif (!empty($_GET['origem']) && !empty($_GET['destino'])) { <!-- ESTA PARTE É O RESULTADO DA BUSCA FEITA PELO FORMUÁRIO --> $origem = $_GET['origem']; $destino = $_GET['destino']; $sql = "SELECT * FROM rotas WHERE rota LIKE '%$origem%$destino%' limit 2"; $result = $conn->query($sql); echo utf8_encode('<section id=about" class="s-about"> <div class=col-full> <P>A descrição do trajeto abaixo apresenta TODA A LINHA. Para escolher a melhor linha, observe a partir do seu ponto de partida. Caso queira, você pode ainda clicar em cada rota para ver por onde cada rota passa</p>'); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo '<p style="background-color: #000000; color: #FFFFFF;">' . utf8_encode($row['descricao']) . ' - '; $rotatotal = $row['rota']; $positioni = mb_strpos($rotatotal, $origem); $positionf = mb_strpos($rotatotal, $destino); $totalstr = mb_strlen($rotatotal); $rotaescol = mb_substr($rotatotal, $positioni, $positionf - $positioni + 2); $rotarray = explode(' ', $rotaescol); foreach($rotarray as $ct); { $sql2 = "SELECT * FROM cidades WHERE sigla = '$ct'"; $rescit = $conn->query($sql2); if ($rescit->num_rows > 0) { while($row2 = $rescit->fetch_assoc()) { echo ' - '. $row2['cidade']; }} else{ echo ''; } }}} } else { echo '<section id="about" class="s-about">0 resultsNão era para estar aparecendo isto."</section>'; } echo '</div></section> | '; <!-- FINAL DO SCRIPT -->
  12. Eu possuo um carrinho de compras que me mostra os itens selecionados pelo cliente dentro de um foreach, conforme código abaixo: <?php foreach($resultsCarts as $result) : ?> <tr> <td><?php echo $result['name']?></td> <td><input type="text" name="prod[<?php echo $result['id']?>]" value="<?php echo $result['quantity']?>" size="1" max="<?php echo $result['estoque']?>" min="1"/></td> <td>R$<?php echo number_format($result['price'], 2, ',', '.')?></td> <td>R$<?php echo number_format($result['subtotal'], 2, ',', '.')?></td> </tr> <?php endforeach;?> Eu gostaria de inserir todos os itens retornados dentro de uma tabela chamada itens_pedido, vinculando todos eles ao último pedido feito. O código que insere os dados do último pedido e que me retorna o identificador dela é o que segue abaixo, e funciona: $sql = "INSERT INTO psd_pedidos (pedido_id, pedido_data, pedido_data_hora, pedido_valor, pedido_status) values('','".date('Y-m-d')."','".date('Y-m-d H:i:s')."', '".$ttpagseguro."','finalizado')"; $stmt = $conn->prepare($sql); $stmt->execute(); $ultpedido = $conn->lastInsertId(); O problema que não estou conseguindo resolver é: como pegar a informação que e é retornada pela variável $ultpedido, que é o identificador do último pedido feito, e todos os itens do carrinho de compras e inseri-los na tabela psd_itens, vinculados a este último pedido. O campo que armazena o último pedido na tabela psd_itens é uma chave estrangeira da tabela psd_pedidos e tem o nome de pedido_id. Eu desenvolvi o seguinte código, que me parece não ter problemas, mas não estou sabendo usa-lo: //VARIAVEIS COM VALORES QUE RETORNAM NO FOREACH $nmproduto = $result['name']; $vlproduto = $result['price']; $qtproduto = $result['quantity']; $sbtproduto = $result['subtotal']; $sql = "INSERT INTO psd_itens(itens_id, pedido_id, itens_produto, itens_quantidade, itens_valor_produto, itens_total ) values( '', '".$ultpedido."', '".$nmproduto."', '".$vlproduto."', '".$qtproduto."', '".$sbtproduto."') "; $stmt = $conn->prepare($sql); $stmt->execute(); Sei que ele deve estar dentro do foreach mas todas as minhas tentativas com soluções de outras experiências retornaram erros. Alguém sabe como eu resolvo estes problemas?
  13. Olá colegas, eu venho avançando a cada dia na programação em PHP mas eu travei em uma estrutura e queria a ajuda dos colegas mais experientes. Eu tenho 3 tabelas: Adm_Funcionarios_Usuarios - contem login e senha # login, senha jose, 1234 Sis_Setores: aonde tem os nomes dos módulos e os links dele. Ex. Administrativo, Financeiro, etc. # linkNome link administrativo administrativo.php financeiro financeiro.php vendas vendas.php Adm_Funcionarios_Usuarios_Acessos - contem login e módulos # login, autorizados jose, administrativo, financeiro Hoje eu só uso o menu carregando todas as opções $sql = "SELECT * FROM Sis_Setores WHERE linkNome = '$Sistema' AND situacao = 1;"; $return = mysqli_query($conexao, $sql) or trigger_error(" Query falhou! SQL: $sql - Error: ".mysqli_error(), E_USER_ERROR); while($LinhaMenu = mysqli_fetch_assoc($return)) { echo '<a href="'.$LinhaMenu["link"].'" target="_self">'.$LinhaMenu["linkNome"]."</a>"; } O que eu estou tentando fazer é: (levando em consideração que eu já tenha as informações do usuário logado) 1 - Verifica quem é a pessoa logada / Já tenho isso pronto 2 - Verifica se a pessoa logada existe na tabela Adm_Funcionarios_Usuarios_Acessos no campo login / Já tenho isso pronto Não estou conseguindo fazer 3 - Verifica na tabela Adm_Funcionarios_Usuarios_Acessos o campo autorizados os módulos que serão carregados 4 - Percorre a array com os valores, exemplo: administrativo, vendas 5 - Se existe na array a palavra administrativo que também existe no campo linkNome da tabela Sis_Setores 6 - Carrega no menu apenas os links que existem dentro da array. O que eu tentei fazer sem sucesso (coisas de café com leite): $sql = "SELECT autorizados FROM Adm_Funcionarios_Usuarios_Acessos WHERE iduser = 1;"; $return = mysqli_query($conexao, $sql) or die(mysqli_error($conexao)); if(!$result = mysqli_fetch_array($return)) { echo "Deu Ruim no SQL dos Acessos"; } else { $autorizados = $result["autorizados"]; //echo $autorizados; foreach($autorizados as $valor) { $sql = "SELECT * FROM Sis_Setores WHERE linkNome = '$autorizados' AND situacao = 1;"; $return = mysqli_query($conexao, $sql) or trigger_error(" Query falhou! SQL: $sql - Error: ".mysqli_error(), E_USER_ERROR); while($LinhaMenu = mysqli_fetch_assoc($LinksSubSistema)) { echo '<a href="'.$LinhaMenu["link"].'" target="_self">'.$LinhaMenu["linkNome"]."</a>".$br; } } } O erro que dá é Warning: Invalid argument supplied for foreach() in testeArray.php on line 50 //Linha 50 -> foreach($autorizados as $valor) Agradeço desde já aos colegas.
  14. Boa noite, pessoal Gostaria de saber como faço para pegar gets repetidos na url, exemplo: pagina?a=1&b=2&a=2&a=5 Preciso pegar todos os valores de a, complicar e exibir no SELECT. Como? Assim: esse -> valores de a SELECT * FROM table WHERE esse = 1 AND esse = 2 AND esse = 3 AND esse = 5; Alguém tem algum raciocínio pra isso? Obrigado a todos pela ajuda.
  15. Caio_Lourençon

    Dúvidas sobre listagem de dados!

    Olá estou desenvolvendo um projeto utilizando a extensão MySQLi, e nisso aproveitando para utilizar algumas funções orientada a objeto! Gostaria de tirar umas dúvidas em relação a listagem de dados, são duas perguntas: 1) Utilizar a função foreach() ao invés de um while() com a função fetch_array() dentro, tem uma listagem mais rápida ou mais lenta? Pois com ambas consigo trazer os dados, No momento estou utilizando a foreach por ser mais rápida de se digitar. 2) Utilizo muitas listagens de tabelas diferentes na mesma página sempre chamando um novo SELECT, seria melhor criar uma função com um SELECT dentro para eu sempre reutiliza-lá ou não iria mudar muita coisa em questão de desempenho? Agradeço qualquer informação.
  16. -- Controller Lista os dados do usuário no card public function listardados(){ $matricula = Matricula::where('user_id', Auth::id())->get(); //dd($matricula); return view('dashboard.renovacao.teste', compact( 'matricula')); } -- Controller Salvar os Registros public function store(RenovacaoRequest $request){ $user = Auth()->user(); $dados = $request->all(); $renovacao = Renovacao::create($dados); return view('dashboard.renovacao.confirmacao', compact ('renovacao')); } -- View form @extends('layouts.app') @section('content') <div class="container"> <div class="row"> <form class="form-horizontal " id="regForm" action="{{route('renovacao.store')}}" method="POST"> <div class="card-panel white"> <h4 class="center">Solicitar Renovação</h4> <div class="row"></div> {{ csrf_field()}} <right> <a>**Dados Cadastrados**</a> </right> <div class="row"></div> <div class="row"></div> <div class="row"> @foreach($matricula as $matric) <div class="row"> <div class="col s6 m6"> <div class="input-field {{$errors->has('user_id') ? 'has-error' : ''}} "> <label for="produto">Nome do Pai:</label> <input type="text" class="form-control" name="nomerespo" value="{{ $matric->nomedopai }}"> </div> </div> <div class="col s6 m6"> <div class="input-field {{$errors->has('user_id') ? 'has-error' : ''}} "> <label for="produto">Nome do Aluno(a):</label> <input type="text" class="form-control" name="nomealuno" value="{{ $matric->nomealuno }}"> </div> </div> </div> @endforeach <div class = "row"> <div class="col s12"> <a title="Voltar Para Página Principal" class="btn orange darken-4 btn-info left " href="/admin">Voltar <i class="material-icons left">arrow_back_ios</i> </a> <button type="submit" class="btn orange darken-4 btn-info right">Confirmar <i class="material-icons left">save</i> </button> </div> </div> </div> </div> </form> </div> </div> @endsection No id do usuário ele tem 2 registro só que na hora de salvar ele só salva 1 registro e não os 2 como deveria Como Código acima Utilizando dd($dados) ; ele retorna isso e não traz os outros formulários que estava preenchidos que são as mesma coisa array:3 [▼ "_token" => "MZOBw295E6W5SEtPPnsvV4seev2GeH3M94rsrI71" "nomerespo" => "Mario" "nomealuno" => "Maria Joaquina" ] 1- Ele traz da tabela matricula o user_id relacionado ao usuário logado, automaticamente ele traz e joga no form e nele usuário verificar o nome do responsável e o nome do filho e clica no botão para salvar para confirmar. print -> https://prnt.sc/llsn19 2 - Depois que salva o adm vai na aba relatório para verificar se todos os campos foram salvo só que ele só ta salvando o ultimo nome do aluno e do pai queria que salve todos os dados... como estava no primeiro print. print tela do adm -> https://prnt.sc/llsof3
  17. Guilherme Luiz

    Fputcsv insere apenas uma linha

    Olá pessoal, Estou com um problema para escrever um arquivo csv utilizando a função FPUTCSV. <?php $queryList = "SELECT wzap.id as id, wzap.mobile as mobile, wzap.ddi as ddi, wzap.pushname as pushname, wzap.photo as photo, wzap.dlr_date as dataDlr, case when wzap.status = '0' then 'Pendente' when wzap.status = '1' then 'Enviado' when wzap.status = '2' then 'Entregue' when wzap.status = '3' then 'Não entregue' when wzap.status = '4' then 'Rejeitado' when wzap.status = '5' then 'Expirou' when wzap.status = '6' then 'Agendado' when wzap.status = '7' then 'Falha' end as status, case when wzap.status = '1' and wzap.substatus = '1' then 'Processado' when wzap.status = '2' and wzap.substatus = '1' then 'Ok' when wzap.status = '6' and wzap.substatus = '1' then 'Processado' when wzap.status = '7' and wzap.substatus = '1' then 'Sem saldo' when wzap.status = '7' and wzap.substatus = '2' then 'Erro no processamento' end as descricao, wzap.cost as tarifa, wzap.currency as moeda, wzap.text as texto, w.country as pais, channel.name as canalNome FROM wzap_mt as wzap INNER JOIN worldwide as w ON w.ddi = wzap.ddi LEFT JOIN wzap_channel as channel ON channel.id = wzap.channel_id WHERE wzap.user_id='{$userID}' and wzap.channel_id {$canalID} and wzap.dlr_date BETWEEN '".$inicio." 00:00:00' and '".$final." 23:59:59' UNION ALL SELECT wzap.id as id, wzap.mobile as mobile, wzap.ddi as ddi, null as pushname, null as photo, wzap.dlr_date as dataDlr, case when wzap.status = '0' then 'Pendente' when wzap.status = '1' then 'Enviado' when wzap.status = '2' then 'Entregue' when wzap.status = '3' then 'Não entregue' when wzap.status = '4' then 'Rejeitado' when wzap.status = '5' then 'Expirou' when wzap.status = '6' then 'Agendado' when wzap.status = '7' then 'Falha' end as status, case when wzap.status = '1' and wzap.substatus = '1' then 'Processado' when wzap.status = '2' and wzap.substatus = '1' then 'Ok' when wzap.status = '6' and wzap.substatus = '1' then 'Processado' when wzap.status = '7' and wzap.substatus = '1' then 'Sem saldo' when wzap.status = '7' and wzap.substatus = '2' then 'Erro no processamento' end as descricao, wzap.cost as tarifa, wzap.currency as moeda, wzap.text as texto, w.country as pais, channel.name as canalNome FROM wzap_mt_temp as wzap INNER JOIN worldwide as w ON w.ddi = wzap.ddi LEFT JOIN wzap_channel as channel ON channel.id = wzap.channel_id WHERE wzap.user_id='{$userID}' and wzap.channel_id {$canalID} and wzap.dlr_date BETWEEN '".$inicio." 00:00:00' and '".$final." 23:59:59' UNION ALL SELECT wzap.id as id, wzap.mobile as mobile, wzap.ddi as ddi, wzap.pushname as pushname, wzap.photo as photo, wzap.dlr_date as dataDlr, case when wzap.status = '8' then 'Recebido' end as status, case when wzap.status = '8' and wzap.substatus = '1' then 'Resposta recebida' end as descricao, wzap.cost as tarifa, wzap.currency as moeda, wzap.text as texto, w.country as pais, channel.name as canalNome FROM wzap_mo as wzap INNER JOIN worldwide as w ON w.ddi = wzap.ddi LEFT JOIN wzap_channel as channel ON channel.id = wzap.channel_id WHERE wzap.user_id='{$userID}' and wzap.channel_id {$canalID} and wzap.dlr_date BETWEEN '".$inicio." 00:00:00' and '".$final." 23:59:59' ORDER BY dataDlr DESC"; $sqlList = mysqli_query($connect_sql,$queryList); while($data = mysqli_fetch_assoc($sqlList)){ $stats[] = [ "id" => $data['id'], "mobile" => $data['mobile'], "pais" => $data['pais'], "nome" => $data['pushname'], "canal" => $data['canalNome'], "dataDlr" => date("d/m/y H:i:sa", strtotime($data['dataDlr'])), "status" => $data['status'], "desc" => $data['descricao'], "tarifa" => $data['tarifa'], "moeda" => $data['moeda'], "texto" => $data['texto'] ]; } $filename = sha1($userID.date("Y-m-d").rand(1,100000)); $header = ["ID","Número","País","Nome","Canal","DataStatus","Status","Descrição","Tarifa","Moeda","Texto"]; $file = fopen(BASEPATH."/export/{$filename}.csv", 'w'); //TRECHO PROBLEMATICO ABAIXO fputs($file, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) )); fputcsv($file,$header,","); foreach ($stats as $line) { fputcsv($file, $line,","); } //TRECHO PROBLEMATICO ACIMA $fileSize = filesize(BASEPATH."/export/{$filename}.csv"); ?> Meu código traz uma lista de uma consulta do meu banco de dados que fica salva no array $stats. Ao fazer o debug do array $stats vejo que os dados são recebidos perfeitamente neste modelo Array ( [id] => 25 [mobile] => 5511945658451 [pais] => Brasil [nome] => Guilherme [canal] => guilherme business [dataDlr] => 19/11/18 11:51:36am [status] => Entregue [desc] => Ok [tarifa] => 0.1 [moeda] => BRL [texto] => envio via portal - teste de agenda - 11h50m ) Array ( [id] => 28 [mobile] => 5511950917200 [pais] => Brasil [nome] => Comercial [canal] => guilherme business [dataDlr] => 19/11/18 11:51:27am [status] => Entregue [desc] => Ok [tarifa] => 0.1 [moeda] => BRL [texto] => envio via portal - teste de agenda - 11h50m ) Ao fazer o debug também do foreach da variavel $line eu também tenho todos os dados ou seja, minha busca no bd está ok e meu foreach também. Assim deveria ser escrito meu CSV onde cada indice do array $stats é uma linha separados por virgula. Porem meu csv quando visualizo, traz apenas uma linha no seguinte formato ID,Número,País,Nome,Canal,DataStatus,Status,Descrição,Tarifa,Moeda,Texto 27,5511945658451,Brasil,Guilherme,"guilherme business","21/11/18 13:16:41pm",Entregue,Ok,0.1,BRL,"teste foto perfil Já tentei de tudo e não consigo identificar o porque meu fputcsv está escrevendo apenas uma linha do meu array. Vendo este código alguem conseguiria me dar uma luz/orientação?
  18. Alessandro Silva_116859

    Argumento inválido fornecido para foreach

    public function activate( $purchase, $args ) { $data = array( 'api_key' => $args['token'], 'theme' => ETHEME_PREFIX, 'purchase' => $purchase, ); foreach ( $args as $key => $value ) { $data['item'][$key] = $value; } Erro nº 1 na linha 'api_key => $args ['token'] >>> Warning: Illegal string offset 'token' in /.../version-check.php on line 296 Erro nº 2 na linha foreach ( $args as $key => $value ) { >>> Warning: Invalid argument supplied for foreach() in /.../version-check.php on line 300
  19. Fabio G

    Foreach pegando só um registro

    Estou desenvolvendo uma tela de cadastro de fornecedor, porem o meu foreach está pegando só o ultimo registro num total de 3 registros. O que eu possa estar fazendo de errado? Abaixo o meu código e em anexo a minha tela. Muito obrigado <thead> <tr style="background-color: #CEF6EC"> <th>ID</th> <th>Nome Fornecedor</th> <th class="d-none d-sm-table-cell">Contato</th> <th class="d-none d-lg-table-cell">Telefone</th> <th width="100" class="text-center">Ações</th> </tr> </thead> <tbody> <?php $sql = "SELECT id,nome,con,tel FROM cad_for "; $sql = $pdo->query($sql); If($sql->rowCount()>0){ foreach($sql->fetchAll() as $fornecedor){ } } ?> <tr> <td><?php echo $fornecedor['id']; ?></td> <td><?php echo $fornecedor['nome']; ?></td> <td class="d-none d-sm-table-cell"><?php echo $fornecedor['con']; ?></td> <td class="d-none d-lg-table-cell"><?php echo $fornecedor['tel']; ?></td> <td> <a href="visualizar.php?id=<?php echo $fornecedor['id']; ?>" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="left" title="Visualizar"><i class="fas fa-eye"></i></a> <a href="editar.php?id=<?php echo $fornecedor['id']; ?>" class="btn btn-outline-warning btn-sm" data-toggle="tooltip" data-placement="left" title="Editar cadastro"><i class="fa fa-fw fa-edit"></i></a> </td> </tr>
  20. gust.php

    foreach com datatable não funciona

    Prezados, Estou tentando usar o datatable com foreach no php e não funciona, ou melhor, funciona quando carrega apenas um registro, se existirem mais registros não funciona, quando recarrego a página para de funcionar tbm. Podem ajudar? Estou usando assim: <table class="table table-responsive" id="tableIndexPedido"> <thead> <tr> <th>User</th> <th>Data</th> <th>Hora</th> <th>Serviço</th> <th data-priority="1">Açao</th> </tr> </thead> <?php foreach ($this->pedido as $p): ?> <tr> <td><?= $p->getUser()->getNome(); ?></td> <td><?= $p->getDATA_INICIO()->format("d/m/Y"); ?></td> <td><?= $p->getHORA_INICIO()->format("H:i"); ?></td> <td><h6><?= \wordwrap($p->getDESCRICAO(), 70, "<br>"); ?></h6></td> <td> <a href="<?= $this->url('servico', array('action' => 'pedidoServico', 'id' => $p->getIDPEDIDO())); ?>"><span class="label label-primary">Confirma</span></a> <a href="<?= $this->url('user', array('action' => 'deletaPedidoServico', 'id' => $p->getIDPEDIDO())); ?>"><span class="label label-danger">Cancela</span></a> </td> </tr> <?php endforeach; ?> </table> <script> $(document).ready(function() { $('#tableIndexPedido').dataTable({ "responsive": true, "bPaginate": false, "ordering": false, "info": false, "searching": false, "columnDefs": [ { responsivePriority: 1, targets: 0 }, { responsivePriority: 2, targets: 4 } ] } ); } ); </script>
  21. Boca

    Agrupar Array

    Pessoal, bom dia Tenho o seguinte array que puxo do banco de dados, para puxar serviços, estou precisando agrupar os serviços para que sejam exibidos da seguinte forma. Navio Hotel Alimentação Seguro Ou seja preciso agrupar os serviços com o mesmo ID, não posso colocar no banco um simples group by pois irei fazer um sub select com os produtos de cada serviço contratado Array ( [0] => stdClass Object ( [servico_id] => 10 [produto_id] => 19 [servico_nome] => Navio ) [1] => stdClass Object ( [servico_id] => 7 [produto_id] => 18 [servico_nome] => Hotel ) [2] => stdClass Object ( [servico_id] => 12 [produto_id] => 20 [servico_nome] => Alimentação ) [3] => stdClass Object ( [servico_id] => 9 [produto_id] => 11 [servico_nome] => Seguro ) [4] => stdClass Object ( [servico_id] => 10 [produto_id] => 13 [servico_nome] => Navio ) [5] => stdClass Object ( [servico_id] => 9 [produto_id] => 10 [servico_nome] => Seguro ) [6] => stdClass Object ( [servico_id] => 9 [produto_id] => 10 [servico_nome] => Seguro ) )
  22. Prezados, Estou tentando usar o datatable com foreach no php e não funciona, ou melhor, funciona quando carrega apenas um registro, se existirem mais registros não funciona, quando recarrego a página para de funcionar tbm. Podem ajudar? Estou usando assim: <table class="table table-responsive" id="tableIndexPedido"> <thead> <tr> <th>User</th> <th>Data</th> <th>Hora</th> <th>Serviço</th> <th data-priority="1">Açao</th> </tr> </thead> <?php foreach ($this->pedido as $p): ?> <tr> <td><?= $p->getUser()->getNOME(); ?> </td> <td><?= $p->getDATA_INICIO()->format("d/m/Y"); ?></td> <td><?= $p->getHORA_INICIO()->format("H:i"); ?></td> <td><h6><?= \wordwrap($p->getDESCRICAO(), 70, "<br>"); ?></h6></td> <td> <a href="<?= $this->url('servico', array('action' => 'pedidoServico', 'id' => $p->getIDPEDIDO())); ?>"><span class="label label-primary">Confirma</span></a> <a href="<?= $this->url('user', array('action' => 'deletaPedidoServico', 'id' => $p->getIDPEDIDO())); ?>"><span class="label label-danger">Cancela</span></a> </td> </tr> <?php endforeach; ?> </table> <script> $(document).ready(function() { $('#tableIndexPedido').dataTable({ "responsive": true, "bPaginate": false, "ordering": false, "info": false, "searching": false, "columnDefs": [ { responsivePriority: 1, targets: 0 }, { responsivePriority: 2, targets: 4 } ] } ); } ); </script>
  23. AllysonSouza

    funcao Foreach

    Bom, estou com um problema no meu código aqui, não liguem pelo código esta feio, esta documentando, e está funcionando, bom o meu problema é com a funcao FOREACH, não sei usar muito bem, to com um site aonde eu adiciono os produtos ao carrinho, e ali ponho a quantidade que quero, até ai funciona, mas alem de quantidade eu queria botar outro campo metros, pois é de madeiras, ali o cliente botaria o tamanho da madeira, ex: 3.5, ai ele atualizaria o valor da unidade e do total, enfim ja tentei de todos os jeitos e nenhum deu certo, até pq não sei fazer o devido uso do FOREACH, codigo a baixo.. <?php session_start(); if(!isset($_SESSION['carrinho'])){ $_SESSION['carrinho'] = array(); } //adiciona produto if(isset($_GET['acao'])){ //ADICIONAR CARRINHO if($_GET['acao'] == 'add'){ $id = intval($_GET['id']); if(!isset($_SESSION['carrinho'][$id])){ $_SESSION['carrinho'][$id] = 1; } else { $_SESSION['carrinho'][$id] += 1; } } //REMOVER CARRINHO if($_GET['acao'] == 'del'){ $id = intval($_GET['id']); if(isset($_SESSION['carrinho'][$id])){ unset($_SESSION['carrinho'][$id]); } } //ALTERAR QUANTIDADE AQUI O PROBLEMA, aonde eu tento botar os METROS if($_GET['acao'] == 'up'){ if(is_array($_POST['prod'])){ foreach($_POST['prod'] as $id => $qtd){ foreach($_POST['prod'] as $id => $mt){ $id = intval($id); $qtd = intval($qtd); $mt = intval($mt); if(!empty($qtd && $mt) || $qtd && $mt <> 0){ $_SESSION['carrinho'][$id] = $qtd; $_SESSION['carrinho'][$id] = $mt; }else{ unset($_SESSION['carrinho'][$id]); } } } } } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>s</title> </head> <body> <table> <caption>Carrinho de Compras</caption> <thead> <tr> <th width="244">Produto</th> <th width="79">Quantidade</th> <th width="79">Metros</th> <th width="89">Preco</th> <th width="100">SubTotal</th> <th width="64">Remover</th> </tr> </thead> <form action="?acao=up" method="post"> <tfoot> <tr> <td colspan="5"><input type="submit" value="Atualizar Carrinho" /></td> <tr> <td colspan="5"><a href="teste.php">Continuar Comprando</a></td> </tfoot> <tbody> <?php if(count($_SESSION['carrinho']) == 0){ echo ' <tr> <td colspan="5">Não há produto no carrinho</td> </tr> '; } else { require("conexao.php"); $total = 0; foreach($_SESSION['carrinho'] as $id => $qtd){ foreach($_SESSION['carrinho'] as $id => $mt){ $sql = "SELECT p.id AS idProd, p.nome AS produto, p.largura, p.comprimento, p.estilo, p.valor, p.valorCompra, p.estoque, p.imagem, c.id AS idCat, c.nome AS categoria, p.vendidos, p.tipo, p.detalhe FROM produtos p INNER JOIN categorias c ON p.categorias_id=c.id ORDER BY p.nome ASC"; $res = mysqli_query($con, $sql); $linha = mysqli_fetch_array($res); $nome = $linha['produto']; $preco = number_format($linha['valor'], 2, ',', '.'); $sub = number_format($linha['valor'] * $qtd, 2, ',', '.'); $total += $linha['valor'] * $qtd; echo ' <tr> <td>'.$nome.'</td> <td><input type="text" size="3" name="prod['.$id.']" value="'.$qtd.'" /></td> <td><input type="text" size="3" name="prod['.$id.']" value="'.$mt.'" /></td> <td>R$ '.$preco.'</td> <td>R$ '.$sub.'</td> <td><a href="?acao=del&id='.$id.'">Remove</a></td> </tr>'; } $total = number_format($total, 2, ',', '.'); echo '<tr> <td colspan="4">Total</td> <td>R$ '.$total.'</td> </tr>'; } } ?> </tbody> </form> </table> </body> </html> .
  24. Suellen Oliveira

    Junção de arrays

    Olá, preciso juntar alguns arrays secundários a um array principal de acordo com conteúdos presentes nestes arrays. Exemplo: Array principal Array( Array( [0] => array( "id_loja" => 123 "id_subloja" => 111 "nm_loja" => "teste" ) ) ) Exemplo de array secundário: Array( Array( [0] => ( "id_loja" => 123 "id_subloja" => 111 "id_forn" => 9 ) ) ) Imaginando esta situação com n registros em cada array e com vários arrays secundários, qual seria a melhor forma de obter o seguinte resultado: Array( array( [0] => ( "id_loja" => 123, "id_subloja" => 111, "nm_loja" => "teste", "id_forn" => 9, "qtd" => 765 ) ) ) O que preciso que aconteça é que o array principal receba diversos campos de outros arrays onde o id_loja e o id_subloja for igual. Eu fiz o seguinte: Foreach($arrayPrincipal as $p => $value){ Foreach($arraySecundario1 as $s => $dados){ If( $arrayPrincipal[$p]['id_loja'] == $arraySecundario1[$s]['id_loja'] && $arrayPrincipal[$p]['id_subloja'] == $arraySecundario1[$s]['id_subloja'] ) { $arrayPrincipal[$p]['id_forn'] = $arraySecundario1[$s]['id_forn']; } } } Isso funciona, ok, mas não é nada performático sendo que normalmente o array principal terá mais de mil registros e cada array secundários (que podem variar de 1 a 15) podem ter o mesmo número de registros do principal ou não. Como eu posso fazer essa junção de arrays de forma performática sendo que na atual situação preciso loopar e comparar conteúdos dos arrays?
  25. danipereira

    [Resolvido] Dúvida básica de foreach

    Dúvida bem básica: Tenho duas tabelas: produtos e reservas. Preciso listar os produtos que NÃO constam na reserva por um determinada período. Faço com um innerJoin e um foreach de produtos com if($produto!=$reserva_id) ou dois foreach sendo um com reservas e depois nos produtos != reservas naquele período? Não tou conseguindo fazer a listagem corretamente. -----PRODUTO--------------RESERVAS------------ produto_id reserva_id produto_nome produto_id produto_status data_reserva ------------------------------------------------ "SELECT imoveis.imv_id, imoveis_reservas.imv_id FROM imoveis INNER JOIN imoveis_reservas ON imoveis.imv_id =imoveis_reservas.imv_id"
×

Important Information

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