Ir para conteúdo
Fórum Script Brasil

ikkinet

Membros
  • Total de itens

    435
  • Registro em

  • Última visita

Tudo que ikkinet postou

  1. No laravel, na controller, voce faz uma renderizacao de uma view. Isso quer dizer que, o "final" da execucao de um metodo da controller é voce chamar o `render()` passando uma view. Ali no render, voce pode appendar no final um outro metodo em que passa as variaveis. Assim, a controller fica: <?php class IndexController extends Controller { public function index(): View { $data['nome'] = 'Pedro'; $data['idade'] = 37; $data['valor'] = 25.2; $data['notas'] = [ 'q1' => 8, 'q2' => 7, 'q3' => 9, 'q4' => 10, ]; return view('nome_do_arquivo_da_view')->with($data); } } Dessa forma, a controller fica organizada, e passa o array inteiro para a view. Mas, tem que lembrar que, fazendo dessa forma, ao chegar na view, as variaveis se tornam independentes, isso é, se na controller chama $data['nome'] na view vai se chamar apenas $nome. E voce pode fazer assim na view: <div class="row"> <label>Nome</label> <p>{{ $nome }}</p> </div> <div class="row"> <label>Idade</label> <p>{{ $idade }}</p> </div> <div class="row"> <label>Valor</label> <p>{{ money_format($valor) }}</p> </div> <div class="row"> <label>Media das notas dos bimestres</label> <p>{{ (($q1 + $q2 + $q3 + $q4) / 4) }}</p> </div> Lembrando que essa sintaxe ai é se voce estiver usando o Blade como view manager, e lembrando que o exemplo é meramente didatico. A boa pratica diz que a Media, por exemplo, deve ser calculada na Controller e na view voce só exibe o resultado. Mas foi só pra entender como usar as variaveis na view.
  2. não sei se entendi muito bem, mas entendi o objetivo. Geralmente em se tratando de matrizes (que é basicamente um array de arrays, ou um array multidimensional), nos temos duas - ou mais, mas não vem a esse caso - chaves. Por exemplo, temos um array de numeros, que representa cada jogo. E temos um array de jogos, que representa todas as possibilidades. Assim, poderiamos chamar esse array de $array[jogos][numeros]. Dito isso, talvez para fins de clareza de codigo, seria melhor pre-popular esse array multidimensional com os numeros, e depois percorre-lo novamente fazendo a exibicao, e ai esoclhendo quando colocar as cores. Assim seria como eu faria: // Popula a matriz com 6 jogos de 6 numeros cada $array = []; for($i = 0; $i < 6; $i+=1) { $linha = []; do { do { $numero = rand(1,60); } while(in_array($numero, $linha)); $linha[] = $numero; } while(count($linha) < 6); sort($linha); $array[] = $linha; } // Exibe na tela // Seleciona se a sorte é horizontal (1), vertical (2) ou diagonal (3) $sorte = rand(1,3); // Seleciona a linha ou a coluna dependendo do resultado anterior // Se for diagonal, só tem 2 possibilidades: descendente (comeca da esquerda topo para a direita baixo) ou // ascendente (comeca da esquerda baixo para a direita topo) // Portanto, se for diagonal, verificamos se o $sorte 2 é par para descedente ou impar para ascendente $sorte2 = rand(1,6); echo '<h1>Palpite da Mega-Sena</h1>'; echo '<h3>Escolha da sorte: ' . ($sorte == 1 ? 'linha '.$sorte2 : ( $sorte == 2 ? 'coluna '.$sorte2 : 'diagonal ' . ($sorte2 % 2 == 0 ? 'descendente' : 'ascendente') ) ) . '</h3>'; echo '<table style="font-family: monospace">'; foreach($array as $linha => $jogo) { echo '<tr>'; foreach($jogo as $coluna => $numero) { $class = ''; if( ( $sorte == 1 && $linha == ($sorte2 - 1) ) || ( $sorte == 2 && $coluna == ($sorte2 - 1) ) || ( $sorte == 3 && $sorte2 % 2 == 0 && $coluna == $linha ) || ( $sorte == 3 && $sorte2 % 2 == 1 && ($coluna == (5 - $linha) ) ) ) { $class = 'danger'; } echo '<td class="' . $class . '">'; echo $numero; echo '</td>'; } echo '</tr>'; } echo '</table>';
  3. Sobre misturar php com javascript, acho que foi mais questao de postar aqui. Ate porque ele referencia o dados.php na chamada async. então eu assumo que aquele ============= é justamente para separar que são dois arquivos diferentes, um dados.php, que vai fazer a parte do backend, e responder um json, e a parte do front-end que consumira essa api. Sobre a questao de colocar varios blocos ou um so, não sei, porque não sou bom nisso de front-end.
  4. Depende da necessidade, mas o mais indicado seria usar o ?? Esse operador verifica se o valor antes dele é nulo. Se não for, usa ele, se for, usa o que esta depois. Por exemplo: $a = 1; $b = 'test'; $c = null; $d = ''; echo $a ?? 'fallback $a'; // ira mostrar: 1 echo $b ?? 'fallback $b'; // ira mostrar: test echo $c ?? 'fallback $c'; // ira mostrar: fallback $c echo $d ?? 'fallback $d'; // ira mostrar: (em branco) é mais ou menos como o if que voce fez, mas mais elegante, e fazendo a checagem na hora da exibicao, echo "<tr><td>".$pedido['id']."<td>".$pedido['total']."<td>". ($dia ?? 'problema');
  5. Se funcionou, otimo, mas talvez voce queira especificar no header da resposta que esse corpo é um json. Voce faz isso usando o header('Content-Type: application/json; charset=utf-8'); antes do echo.
  6. Que legal, não sabia que dava pra fazer isso. Bom, então talvez não seja esse o problema dele. Vamos ver a resposta de qual erro especificamente está ocorrendo.
  7. Poderia dizer que erro específico está ocorrendo? Pelo código, eu percebi que tem um erro no HTML formado, não sei se é porque aqui formatou errado, ou se no seu código realmente está assim, mas nesse trecho: <p class="preço"'. $preço . "€" . '</p> Está faltando um > para fechar o <p <p class="preço"'. $preço . "€" . '> ALGO AQUI </p> Sem contar que o class preço, não tenho certeza se class name aceita ç Aliás, o mesmo para o nome da variável aqui $preço = $row['pdiapreco']; nome de variável em PHP não pode conter ç
  8. http://php.net/manual/pt_BR/function.str-getcsv.php#114764 Veja mais sobre esse link
  9. ikkinet

    AJUDA PHP Front-end

    Se já está nesse formato, você pode tentar fazer o SELECT usando o IN $conn->query("SELECT * FROM tb_cat_produtos WHERE id_categoria IN (".$tb_catalogos['id_categoria'].")")
  10. Bom, vou partir do pressuposto que você tem a tabela "pessoa" e que tem a tabela "evento" e terá a tabela "pessoa_evento" para vincular as duas. Daí você lê o CSV, quebra as linhas e colunas. Não vou entrar nesse mérito porque vou assumir que essa parte você já tem pronto. Daí, você faz: foreach($linhas as $l) { $pessoa = $conn->query("SELECT * FROM pessoa WHERE cod_emp = ".$l['cod_emp']); if($pessoa->num_rows == 0){ $conn->query("INSERT INTO pessoa (cod_emp, cp_nome, cpf, cp_nome_cargo) VALUES (".$l['cod_emp'].", '".$l['cp_nome']."', '".$l['cpf']."', '".$l['cp_nome_cargo']."'); } $evento = $conn->query("SELECT * FROM evento WHERE cod_event = ".$l['cod_event']); if($evento->num_rows == 0){ $conn->query("INSERT INTO evento (cod_event, cp_nome_eve, sq_cargo) VALUES (".$l['cod_event'].", '".$l['cp_nome_eve']."', '".$l['sq_cargo']."')"); } $conn->query("INSERT INTO pessoa_evento (cod_emp, cod_event, competencia) VALUES (".$l['cod_emp'].", ".$l['cod_event'].", '".$l['competencia']."')"); } Eu não testei o código, fui fazendo agora, mas a lógica é mais ou menos essa. A cada loop ele verifica se já existe a pessoa no banco, se não existir, insere. O mesmo com o evento. Daí ele vincula os dois na terceira tabela.
  11. Bom, eu criei a mesma estrutura que você, usando o mae.php e filha.php do primeiro post e o test.php do segundo (que dá o include nos dois arquivos). Pra mim, o que apareceu não foi um erro, foi um Warning, mas que afeta totalmente o funcionamento dos scripts: Notice: Undefined variable: palavra in /var/www/html/mae.php on line 7 O que acontece é que, na função imprimePalavra da classe mae, você dá um echo na variável $palavra. Dentro do método, essa variável não existe. Para acessar a variável da classe, é preciso usar $this->palavra. Fazendo apenas esta alteração, funcionou corretamente aqui.
  12. ikkinet

    PHPMailer e Locaweb

    Está enviando várias vezes porque a chamada ao ajax está dentro do map(). O map percorre cada campo e, para cada campo que ele percorre, ele chama o ajax postando a informação e, portanto, enviando um email. Um jeito fácil de resolver isso é setando uma variável de controle de erro. Aí depois verifica a variável e depois chama o ajax. Algo mais ou menos assim: //Percorrendo os campos var erro_form = false; $.map(campos, function(campo){ // ======= Minha enorme validação :P if ( /* algo errado */ ) { erro_form = true; } }); if (! erro_form ){ $.ajax({ type: "POST", url: script_reservas, data: campos, beforeSend: function(){ status.hide().html('<p style="color: #337AB7"><img src="'+ tema +'images/loading_icon.svg"> Enviando ...</p>').fadeIn(); }, error: retorno, success: retorno, complete: function(){form_reservas.get(0).reset();} }); }
  13. ikkinet

    Verificar usuário com PDO

    Bom, pra começar a lógica do seu if está falha: if (!empty($usuario) AND !empty($senha)) { Com o if desse jeito, se você digitar o usuário e a senha ele vai entrar na condição e vai dar o refesh. O certo seria: if (empty($usuario) || empty($senha)) {
  14. ikkinet

    Soma SQL errada!

    A princípio, eu faria diferente. Eu já iria somando em uma variável, no próprio php, os valores dentro do loop. Evita ter que fazer uma nova consulta só para obter uma soma de valores que eu já tenho em tempo de execução. De qualquer forma, se ainda quer continuar fazendo uma nova query, o WHERE da query que traz os resultados é exatamente o mesmo? Porque a soma está sendo feita no mysql, e não no php, logo, o "erro" está na consulta.
  15. Isso, provavelmnete, é da codificação do Json. Tenta usar um var_dump no array antes de usar o json_encode.
  16. Cara, Nesse caso específico, o mais fácil para você fazer é colocar isso na sua query. Dá pra fazer isso no código, também, mas na query resolve. if($_GET['operacao'] == 'banners'){ header('Content-Type: application/json; charset=utf-8'); $url = "http://www.site.com.br/"; $rs = $mysqli->query("SELECT CONCAT(".$url.",foto) AS image FROM banners"); $registros = mysqli_num_rows($rs); $arr = array(); while($row = $rs->fetch_assoc()) { $arr[] = $row; } $json_encode = json_encode($arr); echo $json_encode; }
  17. Bom, a primeira coisa é que você não tá fechando corretamento, a tag de declaração do iframe. Falta um > Não sei se foi erro só aqui na hora de escrever, mas isso seria o bastante pra acontecer algo desse tipo, porque ele não considera que o </ esteja realmente fechando o iframe, colocando todo o restante dentro desse iframe.
  18. Pelo que vi, o preço padrão é 50 e cada item marcado, acrescenta 10, certo? Faz o seguinte. No código, pode ser onde você vai imprimir, mesmo, coloca: $valor = 50; if($dvd == 'SIM') $valor += 10; if($banner == 'SIM') $valor += 10; $valor = number_format($valor, 2, ',', '.'); echo 'R$ '.$valor; Vê se é isso mesmo que quer, se não for, avisa aqui.
  19. De qualquer jeito os dados do primeiro formulário serão gravado? Partindo do pressupost que sim, é só salvar esses dados no banco, normalmente.. Depois verifica, se o cara marcou sim, aparecem esses três campos apenas e atualiza a tabela no registro inserido (mysql_insert_id). Se não, já está pronto..
  20. Cara. Pra saber mais detalhes de porque está dando erro, na parte do else, em que manda imprimir que deu erro, coloca assim: echo "deu erro: ".mysql_error(); Imprimirá uma mensagem de retorno do MySQL que poderá te dizer o que está acontecendo que está dando erro.
  21. Use a função date() do PHP, com o parâmetro "H" para horas com o zero inicial (se aplicável), "i" para minutos com o zero inicial (se aplicável) e "s" para segundos com zero inicial (se aplicável). Veja o link para mais detalhes.
  22. SELECT nome FROM tabela WHERE RIGHT(data, 5) between '03-01' and '03-31' ORDER BY RIGHT(data, 5)
  23. Bom.. Nesse caso, pode até haver outros meios, mas eu faço assim: "SELECT * FROM produtos WHERE nome LIKE '%".implode('%', explode(' ', $_POST['nome']))."%'" Assim, ele converte em array, separando onde há espaços e depois retorna para string, juntando as partes com %.
  24. Dá uma estudadinha nessa página aqui.. Vai te ajudar bastante. http://br.php.net/manual/pt_BR/language.variables.scope.php
×
×
  • Criar Novo...