Ir para conteúdo

ShadowDLL

Members
  • Total de itens

    386
  • Registro em

  • Última visita

Tudo que ShadowDLL postou

  1. ShadowDLL

    Como fazer relatorio

    Vamos lá! Sendo breve. Sim!, existe forma mais fácil do que ficar fazendo um "jogo" de combinações... SEGUE EXEMPLO: <?php // VARIÁVEIS PARA TESTE $idexame = 30; $convenio = 20; $data_inicio = "2020-10-20"; $data_termino = "2020-11-20"; // VARIÁVEL QUE ARMAZENARÁ O FRAGMENTO SQL DOS FILTROS $sqlFiltros = ""; // ARRAY COM AS VARIÁVEIS QUE SERÃO VERIFICADAS, E // SUAS RESPECTIVAS COLUNAS NO DB $filtros = [ // VARIÁVEL // COLUNA // OPERADOR 'convenio' => ['convenio', '='], 'posto' => ['posto', '='], 'status' => ['status', '='], 'data_inicio' => ['DATE(data_registro)', '>='], 'data_termino' => ['DATE(data_registro)', '<='] ]; // VERIFICA FILTROS foreach ($filtros as $variavel => $comparativo) { if (isset(${$variavel}) && ${$variavel}) { $sqlFiltros .= "{$comparativo[0]} {$comparativo[1]} '${$variavel}' AND "; } } // O IDEXAME É O UNICO QUE PROVAVELMENTE SEMPRE // VIRÁ COM VALOR EM SEU CÓDIGO $sql = " SELECT * FROM registropacientesexames WHERE %s codigo_exame = '$idexame' ORDER BY codigo_registro DESC "; // CONSTROI A SQL FINAL echo sprintf($sql, $sqlFiltros); RESULTADO: SELECT * FROM registropacientesexames WHERE convenio = '20' AND DATE(data_registro) >= '2020-10-20' AND DATE(data_registro) <= '2020-11-20' AND codigo_exame = '30' ORDER BY codigo_registro DESC
  2. ShadowDLL

    Cadastro de usuário + validação

    Sendo simplista, você não precisa passar pela primeira validação, pois você já o cadastrou e não foi retornado nenhum erro, então, agora, basta você obter e salvar o usuário que foi inserido em uma $_SESSION, e assim, fazer o redirecionamento para a página Principal, onde você irá obter os dados cadastrados e etc... Segue exemplo, abaixo: CÓDIGO [ CADASTRO ] <?php session_start(); include_once "connection/conecta.php"; if(isset($_POST['cadastrar'])){ @$usuario= trim(strip_tags($_POST['usuario'])); @$senha= trim(strip_tags($_POST['senha'])); @$nivel_acesso = trim(strip_tags($_POST['nivel_acesso'])); $insert = "INSERT INTO cad_usuario (usuario, senha, nivel_acesso) VALUES (:usuario, :senha, :nivel_acesso)"; try{ $result = $conexao->prepare($insert); $result->bindParam(':usuario',$usuario, PDO::PARAM_STR); $result->bindParam(':senha',$senha, PDO::PARAM_STR); $result->bindParam(':nivel_acesso', $nivel_acesso, PDO::PARAM_STR); $result->execute(); $contar = $result->rowCount(); if($contar>0){ echo '<div class="alert alert-success"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>Sucesso!</strong> O Usuario foi Cadastrado!</div>'; $_SESSION['usuario'] = $usuario; $_SESSION['autenticado'] = true; header('Location: principal.php'); }else{ echo '<div class="alert alert-danger"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>Erro ao cadastrar!</strong> Não foi possível cadastrar o Usuario.</div>'; } }catch(PDOException $e){ echo $e; } } CÓDIGO [ PRINCIPAL ] <?php require_once("connection/conecta.php"); ob_start(); session_start(); if (@!$_SESSION['autenticado']) { include_once "index.php"; exit("<div class='alert alert-danger col-sm-12'>Para acessar o sistema você deve efetuar login</div>"); } $logado = $_SESSION['usuario']; $sql = "SELECT * from cad_usuario WHERE usuario = '$logado' and situacao = 'A'"; try{ $result = $conexao->prepare($sql); $result->execute(); $contar = $result->rowCount(); if($contar = 1){ $loop = $result->fetchAll(); foreach ($loop as $show){ // USAR SESSAO PARA PODER "TRANSITAR" // OS DADOS RELEVANTES NO SISTEMA... // // A SENHA FOI REMOVIDA POR SEGURANÇA // // COMO JÁ TEMOS O USUARIO GUARDADO // EM SESSAO, NÃO TEMOS MOTIVO PARA // SETA-LO NOVAMENTE... $_SESSION['nivel'] = $show['nivel_acesso']; } print_r($_SESSION); } }catch (PDOWException $erro){ echo $erro; } ?> RECOMENDAÇÕES: 1 - Você poderia, no cadastro, fazer uma verificação para ver se o usuário já está sendo utilizado; 2 - Armazenar o ID do usuário em uma Sessão, pois pode ser de grande utilidade para você no futuro, principalmente caso queira obter dados relacionados a ele.
  3. ShadowDLL

    [ Resolvido ] Falha ao retornar dados com PDO

    # RESOLVIDO
  4. ShadowDLL

    [ Resolvido ] Falha ao retornar dados com PDO

    Vamos lá, Primeiro, antes de lhe mostrar um exemplo, poderia enviar o código onde você seleciona o item que deseja fazer o download?
  5. ShadowDLL

    [ Resolvido ] Falha ao retornar dados com PDO

    Este erro ira ocorrer porque, muito provavelmente, você está tentando fazer o Download do Arquivo via Ajax, e até onde sei, isso é impossível... Não seria mais fácil você apenas "redirecionar o usuário" passando o ID do conteúdo como um parâmetro GET? Segue exemplo para melhor compreensão: CÓDIGO [ INDEX.PHP ] <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title> TESTE </title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" /> </head> <body> <div class="container"> <table class="table"> <thead> <tr> <th># ID</th> <th># FILE</th> <th>#</th> </tr> </thead> <tbody> <?php $conn = new PDO ('mysql:host=localhost;dbname=onteach', 'root', 'root'); $conteudo = $conn->prepare("SELECT * FROM conteudo"); $conteudo->execute(); while ($key = $conteudo->fetch(PDO::FETCH_OBJ)):?> <tr> <td><?= $key->idConteudo ?></td> <td><?= $key->arquivo ?></td> <td> <a href="download.php?id=<?= $key->conteudo_video ?>" class="btn btn-danger"> DOWNLOAD </a> </td> </tr> <?php endwhile; ?> </tbody> </table> </div> </body> </html> CÓDIGO [ DOWNLOAD.PHP ] <?php //se não tiver o parametro, mata a aplicação. if (isset($_GET['id'])) { $codigo_video = $_GET['id']; } //Aqui está um exemplo simples de como fazer uma conexão PDO $host = 'localhost'; $db = 'onteach'; $user = 'root'; $pass = 'root'; $charset = 'utf8mb4'; $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; try { $pdo = new PDO($dsn, $user, $pass); } catch (PDOException $e) { throw new PDOException($e->getMessage(), (int)$e->getCode()); } //$pdoQuery = $pdo->query("SELECT conteudo.arquivo FROM conteudo WHERE conteudo.conteudo_video = '{$codigo_video}'"); try { $ready = $pdo->prepare("SELECT conteudo.arquivo FROM conteudo WHERE conteudo.conteudo_video = :codigo_video"); $ready->bindParam(':codigo_video', $codigo_video); $ready->execute(); } catch(PDOException $e) { echo $e->getMessage(); } while ($rs = $ready->fetch(PDO::FETCH_ASSOC)) { $local = 'upload/'; $local_arquivo = $local.$rs['arquivo']; if (file_exists($local_arquivo)) { header('Content-type: octet/stream'); // Indica o nome do arquivo como será "baixado". Você pode modificar e colocar qualquer nome de arquivo header('Content-disposition: attachment; filename="'.$rs['arquivo'].'";'); // Indica ao navegador qual é o tamanho do arquivo header('Content-Length: '.filesize($local_arquivo)); // Busca todo o arquivo e joga o seu conteúdo para que possa ser baixado readfile($local_arquivo); } else { echo "Arquivo nao existe!"; } } Vale a pena ressaltar que os códigos acima são apenas exemplos, sendo assim, podendo existir abordagens melhores que as utilizadas...
  6. Desculpe-me pelo inconveniente, tente agora: CÓDIGO: public function update($dados) { if (trim($dados['capa']) === "") { $dados['capa'] = null; } $update = $conn->prepare("UPDATE posts SET capa = IF(capa IS NULL, :capa, capa), titulo = :titulo, texto = :texto WHERE id = :id"); $update->bindValue(":id", $dados['id']); $update->bindValue(":capa", $dados['capa']); $update->bindValue(":titulo", $dados['titulo']); $update->bindValue(":texto", $dados['texto']); $update->execute(); }
  7. Segue solução, abaixo: CÓDIGO: public function update($dados) { $this->db->query("UPDATE posts SET capa = :capa, titulo = :titulo, texto = :texto WHERE id = :id AND capa IS NULL"); $this->db->bind(":id", $dados['id']); $this->db->bind(":capa", $dados['capa']); $this->db->bind(":titulo", $dados['titulo']); $this->db->bind(":texto", $dados['texto']); }
  8. ShadowDLL

    [ Resolvido ] Falha ao retornar dados com PDO

    O "problema" foi um pouco mais "fundo", contudo, implementando as orientações de @André Severino, segue, abaixo, possível solução: CÓDIGO: <?php //se não tiver o parametro, mata a aplicação. if (isset($_POST['codigo_video'])) { $codigo_video = $_POST['codigo_video']; } //Aqui está um exemplo simples de como fazer uma conexão PDO $host = 'localhost'; $db = 'onteach'; $user = 'root'; $pass = 'root'; $charset = 'utf8mb4'; $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; try { $pdo = new PDO($dsn, $user, $pass); } catch (PDOException $e) { throw new PDOException($e->getMessage(), (int)$e->getCode()); } //$pdoQuery = $pdo->query("SELECT conteudo.arquivo FROM conteudo WHERE conteudo.conteudo_video = '{$codigo_video}'"); try { $ready = $pdo->prepare("SELECT conteudo.arquivo FROM conteudo WHERE conteudo.conteudo_video = :codigo_video"); $ready->bindParam(':codigo_video', $codigo_video); $ready->execute(); } catch(PDOException $e) { echo $e->getMessage(); } while ($rs = $ready->fetch(PDO::FETCH_ASSOC)) { $local = 'upload/'; $local_arquivo = $local.$rs['arquivo']; if (file_exists($local_arquivo)) { header('Content-type: octet/stream'); // Indica o nome do arquivo como será "baixado". Você pode modificar e colocar qualquer nome de arquivo header('Content-disposition: attachment; filename="'.$rs['arquivo'].'";'); // Indica ao navegador qual é o tamanho do arquivo header('Content-Length: '.filesize($local_arquivo)); // Busca todo o arquivo e joga o seu conteúdo para que possa ser baixado readfile($local_arquivo); } else { echo "Arquivo nao existe!"; } }
  9. ShadowDLL

    Upload de arquivo de áudio

    Poderia me informar o tamanho do áudio que está tentando subir? Ambos os códigos aqui estão funcionando, então acredito eu que o tamanho do áudio que você está tentando subir passa o limite. Tente fazer o seguinte, abra o arquivo php.ini, e altere as linhas de acordo com os valores abaixo: memory_limit = 128M max_execution_time = 300 upload_max_filesize = 20M post_max_size = 24M TESTE: <?php if ($_POST) { if ( $_POST['titulo'] !== "" && $_POST['texto'] !== "" && $_POST['padre'] !== "" && $_POST['data'] !== "" && $_FILES['audio']['name'] !== "" && $_FILES['foto']['name'] !== "" ) { $titulo = $_POST['titulo']; $texto = $_POST['texto']; $padre = $_POST['padre']; $audio = $_FILES['audio']; $imagem = $_FILES['foto']; $data = date('Y-m-d', strtotime($_POST['data'])); if (preg_match("/^image\/(pjpeg|jpeg|png|jpg|gif|bmp)$/", $imagem['type'])) { if (preg_match("/^audio\/(mp3|MP3)$/", $audio['type'])) { preg_match ("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $imagem['name'], $ext); $dd = date('msdYiH'); $imagem_nome = $dd. "." . $ext[1]; $imagem_dir = "../am/" . $imagem_nome; preg_match ("/\.(mp3|MP3|wav|wma){1}$/i", $audio['name'], $ext); $dd = date('msdYiH'); $audio_nome = $dd. "." . $ext[1]; $audio_dir = "../am/" . $audio_nome; if ( @move_uploaded_file($imagem["tmp_name"], $imagem_dir) && @move_uploaded_file($audio["tmp_name"], $audio_dir) ) { $sql = utf8_decode("INSERT INTO palavra (titulo, foto, data, audio, texto, padre) VALUES ('$titulo','$imagem_nome','$data','$audio_nome', '$texto', '$padre')"); if ($conn->query($sql) === TRUE) { echo "<script>alert(\"Cadastro realizado com sucesso.\");</script>"; } else { echo "Erro: " . $sql . "<br />" .$conn->error; } } else { echo "<script>alert(\"Falha ao enviar arquivo.\");</script>"; } } else { echo "<script>alert('Arquivo em formato inválido! erro no upload do audio. Cadastro não foi realizado.');</script>"; } } else { echo "<script>alert(\"Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Cadastro não foi realizado.\");</script>"; } } else { echo "<script>alert(\"Preencha todos os campos.\");</script>"; } echo "<script>window.location=\"palavra.php\";</script>"; } ?> <form method="post" enctype="multipart/form-data"> <span>Texto</span><br> <input type="text" name="texto"><br> <span>Titulo</span><br> <input type="text" name="titulo"><br> <span>Padre</span><br> <input type="text" name="padre"><br> <span>Data</span><br> <input type="text" name="data" value="20/03/2020"><br> <span>Audio</span><br> <input type="file" name="audio"><br> <span>Foto</span><br> <input type="file" name="foto"><br><br> <button type="submit">Enviar</button> </form>
  10. ShadowDLL

    Listar registros através de páginas em PHP

    Segue link que pode ser útil: LINK: https://www.gigasystems.com.br/artigo/12/paginacao-de-resultados-com-php-pdo-e-mysql
  11. ShadowDLL

    Upload de arquivo de áudio

    Tente assim: CÓDIGO: <?php if ($_POST) { if ( $_POST['titulo'] !== "" && $_POST['texto'] !== "" && $_POST['padre'] !== "" && $_POST['data'] !== "" && $_FILES['audio']['name'] !== "" && $_FILES['foto']['name'] !== "" ) { $titulo = $_POST['titulo']; $texto = $_POST['texto']; $padre = $_POST['padre']; $audio = $_FILES['audio']; $imagem = $_FILES['foto']; $data = date('Y-m-d', strtotime($_POST['data'])); if (preg_match("/^image\/(pjpeg|jpeg|png|jpg|gif|bmp)$/", $imagem['type'])) { if (preg_match("/^audio\/(mp3|MP3)$/", $audio['type'])) { preg_match ("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $imagem['name'], $ext); $dd = date('msdYiH'); $imagem_nome = $dd. "." . $ext[1]; $imagem_dir = "../am/" . $imagem_nome; preg_match ("/\.(mp3|MP3|wav|wma){1}$/i", $audio['name'], $ext); $dd = date('msdYiH'); $audio_nome = $dd. "." . $ext[1]; $audio_dir = "../am/" . $audio_nome; if ( @move_uploaded_file($imagem["tmp_name"], $imagem_dir) && @move_uploaded_file($audio["tmp_name"], $audio_dir) ) { $sql = utf8_decode("INSERT INTO palavra (titulo, foto, data, audio, texto, padre) VALUES ('$titulo','$imagem_nome','$data','$audio_nome', '$texto', '$padre')"); if ($conn->query($sql) === TRUE) { echo "<script>alert(\"Cadastro realizado com sucesso.\");</script>"; } else { echo "Erro: " . $sql . "<br />" .$conn->error; } } else { echo "<script>alert(\"Falha ao enviar arquivo.\");</script>"; } } else { echo "<script>alert('Arquivo em formato inválido! erro no upload do audio. Cadastro não foi realizado.');</script>"; } } else { echo "<script>alert(\"Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Cadastro não foi realizado.\");</script>"; } } else { echo "<script>alert(\"Preencha todos os campos.\");</script>"; } echo "<script>window.location=\"palavra.php\";</script>"; } ?>
  12. ShadowDLL

    passar dados da pesquisa no banco para html

    Você poderia utilizar Ajax para realizar a busca, e após o mesmo, inserindo o resultado na página html utilizando a função append(). Segue links úteis: http://devfuria.com.br/javascript/ajax-php-jquery/ https://www.devmedia.com.br/ajax-com-jquery-trabalhando-com-requisicoes-assincronas/37141 https://api.jquery.com/append/
  13. ShadowDLL

    Upload de arquivo de áudio

    Provavelmente o erro está ocorrendo porque você está armazenando os dados vindos do formulário sem antes realizar qualquer tipo de "validação" nos mesmos... Tente fazer assim: <?php if ($_POST) { if ( $_POST['titulo'] !== "" && $_POST['texto'] !== "" && $_POST['padre'] !== "" && $_POST['data'] !== "" ) { $titulo = $_POST['titulo']; $texto = $_POST['texto']; $padre = $_POST['padre']; $data = date("Y-m-d", strtotime($_POST['data'])); $audio = ($_FILES['audio']['name'] !== "") ? $_FILES['audio'] : FALSE; $arquivo = ($_FILES['foto']['name'] !== "") ? $_FILES['foto'] : FALSE; if ($arquivo && $audio) { if (!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $arquivo["type"])) { echo utf8_encode("<script> alert ('Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Cadastro não foi realizado.');</script>"); } if (!preg_match("/^audio\/(mp3|MP3)$/", $audio["type"])) { echo utf8_encode("<script> alert ('Arquivo em formato inválido! erro no upload do audio. Cadastro não foi realizado.');</script>"); } else { preg_match ("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext); $dd = date("msdYiH"); $imagem_nome = $dd. "." . $ext[1]; $imagem_dir = "../am/" . $imagem_nome; preg_match ("/\.(mp3|MP3|wav|wma){1}$/i", $audio["name"], $ext); $dd = date("msdYiH"); $audio_nome = $dd. "." . $ext[1]; $audio_dir = "../am/" . $audio_nome; if ( @move_uploaded_file($arquivo["tmp_name"], $imagem_dir) && @move_uploaded_file($audio["tmp_name"], $audio_dir) ) { $sql = utf8_decode("INSERT INTO palavra (titulo, foto, data, audio, texto, padre) VALUES ('$titulo','$imagem_nome','$data','$audio_nome', '$texto', '$padre')"); if ($conn->query($sql) === TRUE) { echo utf8_encode("<script> alert (\"Cadastro realizado com sucesso.\");</script>"); } else { echo "Erro: " . $sql . "<br />" .$conn->error; } } else { echo utf8_encode("<script> alert (\"Falha ao enviar arquivo.\");</script>"); } } } else { echo utf8_encode("<script> alert ('Selecione os arquivos.');</script>"); } } else { echo utf8_encode("<script> alert (\"Cadastro realizado com sucesso.\");</script>"); } echo utf8_encode('<script>window.location="palavra.php";</script>'); } ?> Alias, organizei algumas coisas em teu código também, basta testar.
  14. ShadowDLL

    Onde estou errando? colocar variavel no php/mysql

    Provavelmente você está errando nas "instruções", pois você está confundindo INSERT com UPDATE. Para entender melhor, Recomendo a leitura dos artigos, abaixo: Comandos básicos do MySQL (Insert, Delete, Update e Select) MySQL Tutorial
  15. ShadowDLL

    Pegando valor de API

    Provavelmente o mesmo está ocorrendo porque você está tentando usar variáveis que só serão criadas caso o arquivo cointrade exista... Tente fazer algo assim então: CÓDIGO: <?php $cache_cointrade = 'cointrade'; if (file_exists($cache_cointrade)) { if (time() - filemtime($cache_cointrade) > $cachetime) { $cache = file_get_contents("https://api.cointradecx.com/public/ticker?market=BTC_BRL"); file_put_contents($cache_cointrade, $cache); $json_cointrade = file_get_contents($cache_cointrade); } else { $json_cointrade = file_get_contents($cache_cointrade); } $data_coin_trade = json_decode($json_cointrade, true); $cointrade_price = $data_coin_trade['result'][0]['last']; $cointrade_volume = $data_coin_trade['result'][0]['vol24h']; $varcointrade = $cointrade_price * $cointrade_volume; echo "<pre>"; var_dump($data_coin_trade); var_dump($cointrade_price); var_dump($cointrade_volume); var_dump($varcointrade); } else { echo "O arquivo não existe!"; }
  16. ShadowDLL

    Pegando valor de API

    Vamos lá! Segue exemplo de retorno da API utilizada: array(3) { ["success"]=> bool(true) ["message"]=> string(0) "" ["result"]=> array(1) { [0]=> array(11) { ["timestamp"]=> int(1585171832) ["market"]=> string(7) "BTC_BRL" ["ask"]=> string(10) "35449.9999" ["bid"]=> string(10) "34450.0001" ["last"]=> string(10) "34004.0000" ["spread"]=> string(6) "2.9028" ["low24h"]=> string(10) "33000.0000" ["high24h"]=> string(10) "35799.9999" ["vol24h"]=> string(10) "2.11694748" ["quoteVolume"]=> string(14) "73242.52739178" ["isFrozen"]=> int(0) } } } Repare que os dados que você deseja obter estão dentro de um array, então para você obter o mesmo deveria fazer algo como no exemplo abaixo: CÓDIGO: $cointrade_price = $data_coin_trade['result'][0]['last']; $cointrade_volume = $data_coin_trade['result'][0]['vol24h'];
  17. ShadowDLL

    Resolvido - Calcular Diferença entre horas

    Segue exemplo, abaixo: TABELAS E DADOS A SER UTILIZADOS: CREATE TABLE cursos ( idCurso INT NOT NULL AUTO_INCREMENT, nomeCurso VARCHAR(50) NOT NULL, PRIMARY KEY(idCurso) ); INSERT INTO cursos (nomeCurso) VALUES ('Sociologia'); CREATE TABLE curso_escolhido ( idEscolhido INT NOT NULL AUTO_INCREMENT, idCursoPretendidoEscolhido INT NOT NULL, idCursoAlunoEscolhido INT NOT NULL, checkedCursoEscolhido INT NOT NULL, PRIMARY KEY(idEscolhido), FOREIGN KEY (idCursoPretendidoEscolhido) REFERENCES cursos (idCurso) ); INSERT INTO curso_escolhido (idCursoPretendidoEscolhido, idCursoAlunoEscolhido, checkedCursoEscolhido) VALUES (1, 1, 1); CREATE TABLE carga_horaria ( idCarga INT NOT NULL AUTO_INCREMENT, idAlunoCargaHoraria INT NOT NULL, idCursoCargaHoraria INT NOT NULL, horaPraticaCargaHoraria TIME NOT NULL, PRIMARY KEY(idCarga), FOREIGN KEY (idCursoCargaHoraria) REFERENCES cursos (idCurso) ); INSERT INTO carga_horaria (idAlunoCargaHoraria, idCursoCargaHoraria, horaPraticaCargaHoraria) VALUES (1, 1, '02:00:00'), (1, 1, '02:00:00'), (1, 1, '02:00:00'), (1, 1, '02:00:00'), (1, 1, '02:00:00'); PHP: <?php // PARA EXEMPLO $idAluno = 1; $conecta = new mysqli('localhost', 'root', '', 'seu_db'); // PARA EXEMPLO $consultCursoAluno = " select * from cursos inner join curso_escolhido ON (cursos.idCurso = curso_escolhido.idCursoPretendidoEscolhido) where idCursoAlunoEscolhido = '$idAluno' and checkedCursoEscolhido = '1' " ; $conectaCursoAluno = $conecta->query($consultCursoAluno); while($resultCursoAluno = $conectaCursoAluno->fetch_object()){?> <!-- //Consigo pegar os cursos que o aluno está fazendo --> NomeCurso: <?php echo $resultCursoAluno->nomeCurso?> <br> <?php $sqlCurso = " select * from carga_horaria where idAlunoCargaHoraria = '$idAluno' and idCursoCargaHoraria = '".$resultCursoAluno->idCurso."' " ; $conectaCurso = $conecta->query($sqlCurso); $soma = 0; // $paraSubtrair = new DateTime('@0'); $totalHoras = new DateTime('@0'); // while($result = $conectaCurso->fetch_object()){ // OBTEM O TEMPO E ARMAZENA $horaPra = $result->horaPraticaCargaHoraria; // SEPARA EM PARTES A STRING $partes = explode(':', $horaPra); // CRIA INTERVALO $intervalo = new DateInterval( 'PT' . (int)$partes[0] . 'H' . $partes[1] . 'M' . $partes[2] . 'S' ); // ADICIONA O INTERVALO NO TOTAL $totalHoras->add($intervalo); ?> <?php }?> <?php $diferenca = $paraSubtrair->diff($totalHoras); echo "========[ TOTAL ]========<br/>"; echo $diferenca->format('%d Dia(s), %H Hora(s), %i Minuto(s) e %s Segundo(s)'); echo "<br/>"; echo "Dias: " . $diferenca->d; echo "<br/>"; echo "Horas: " . $diferenca->h; echo "<br/>"; echo "Minutos: " . $diferenca->i; echo "<br/>"; echo "Segundos: " . $diferenca->s; ?> <br> <?php }?> RESULTADO: NomeCurso: Sociologia ========[ TOTAL ]======== 0 Dia(s), 10 Hora(s), 0 Minuto(s) e 0 Segundo(s) Dias: 0 Horas: 10 Minutos: 0 Segundos: 0
  18. ShadowDLL

    Apagar foto do bd e da pasta

    Vamos lá! 1º - Faça um SELECT para obter o caminho até o arquivo; 2º - Utilize a função unlink para deletar a imagem; 3º - Delete o registro no banco de dados. LINK ÚTIL: https://forum.imasters.com.br/topic/383844-resolvido deletar-imagens-de-uma-pasta-referente-ao-id/
  19. ShadowDLL

    Resolvido - Calcular Diferença entre horas

    Segue exemplo: CÓDIGO: <?php // CONVERTE SEGUNDOS EM H:I:S function converteSegundos($segundos) { $data1 = new DateTime("@0"); $data2 = new DateTime("@$segundos"); return $data1->diff($data2)->format('%H:%i:%s'); } $horasTeoricas = 23400; // 06:30:00 $horasTeoricasVIsualizadas = 18000; // 05:00:00; // OBTEM DIFERENCA $diferenca = $horasTeoricas - $horasTeoricasVIsualizadas; // MOSTRA DIFERENCA echo converteSegundos($diferenca); // 01:30:0
  20. ShadowDLL

    Problema com Requisição Ajax e Atualização de dados (Update).

    Disponível ;)
  21. ShadowDLL

    Problema com Requisição Ajax e Atualização de dados (Update).

    CÓDIGO: <?php require "../init.php"; include "../config.php"; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Liga RE$ENHÃO 2020</title> </head> <body> <div> <?php $id = $_GET['id']; $sql = $db->query("SELECT * FROM cadastro WHERE id = '$id'"); $sql->execute(); foreach($sql->fetchAll() as $res); if(isset($_POST['atualizar'])){ $name=addslashes(trim($_POST['name'])); $ur=addslashes(trim($_POST['ur'])); $email=addslashes(trim($_POST['email'])); $password=addslashes(trim($_POST['password'])); $celular=addslashes(trim($_POST['celular'])); $update = $db->prepare("UPDATE cadastro SET name=:name, ur=:ur, email=:email, password=:password, celular=:celular WHERE id = '$id'"); $update->bindValue(':name', $name); $update->bindValue(':ur', $ur); $update->bindValue(':email', $email); $update->bindValue(':password', $password); $update->bindValue(':celular', $celular); $update->execute(); if($update == ''){ echo "<script language='javascript'> window.alert('Erro ao alterar dados!'); </script>"; }else{ echo "<meta http-equiv='refresh' content='0; URL= ../index.php'> <script language='javascript'> window.alert('Dados atualizados com sucesso!'); </script>"; }} ?> <!-- ////// Formlário dados pessoais do Usuário \\\\\\ --> <div style="background-color:#fff;height:auto;width:33%;color:#000;float:left;"> <form action="arquivos/update_usuario.php?id=<?php echo $res['id']; ?>" method="post" enctype="multipart/form-data"> <label for="name"><span>Nome: </span></label> <input type="text" name="name" value="<?php echo $res['name']; ?>"> <br /> <label for="ur"><span>Estado: </span></label> <input type="text" name="ur" value="<?php echo $res['ur']; ?>"> <br /> <label for="celular"> <span>E-mail: </span> <?php echo $res['email']; ?> </label> <input hidden="" type="text" name="email" value="<?php echo $res['email']; ?>"> <input hidden="" type="text" name="password" value="<?php echo $res['password']; ?>"> <br /> <label for="celular"><span>Celular: </span></label> <input type="text" name="celular" value="<?php echo $res['celular']; ?>"> <br /> <input type="submit" name="atualizar" value="Atualizar"> </form> </div> <?php # UPDATE da Foto if(isset($_POST['enviar'])){ $id = $_GET['id']; $foto = $_FILES['foto']; $sqlUpdate = "UPDATE cadastro SET foto = ? WHERE id = ?"; $dados = array($foto, $id); $pasta = '../upload/'; if (isset($_POST['enviar'])){ $check = @$_POST['apagar']; foreach($check as $foto){ $delcheck = $sqlUpdate = ("UPDATE cadastro SET foto = ? WHERE id = ?"); unlink($pasta.'/'.$foto); if ($delcheck >= '1'){ echo 'Imagem deletada com sucesso!'; }else{ echo 'Erro ao deletar imagem, tente novamente!'; }}}} ?> <?php include "Upload.class.php"; if ((isset($_POST["enviar"])) && (! empty($_FILES['foto']))){ $upload = new Upload($_FILES['foto'], 1000, 800, "../upload/"); echo $upload->salvar(); } ?> <div> <form action="arquivos/update_usuario.php?id=<?php echo $res['id']; ?>" method="POST" enctype="multipart/form-data"> <?php $id = $_GET['id']; $sql = $db->prepare("SELECT * FROM cadastro WHERE id='$id'"); $sql->execute(); foreach($sql->fetchAll() as $res){ ?> <input size="1" type="hidden" name="id" value="<?php echo $res['id'];?>" readonly> <input type="hidden" type="checkbox" name="apagar[]" value="<?php echo $res['foto'];?>" checked readonly> <?php } ?> <img src="../upload/<?php echo $res['foto'];?>"/><br /> <label>Selecione uma nova imagem:</label><br /> <input type="file" name="foto" accept="image/*" ><br /> <input type="submit" name="enviar" value="Atualizar"> </form> </div> </div> </body> </html>
  22. ShadowDLL

    Problema com Requisição Ajax e Atualização de dados (Update).

    Acredito que o mesmo esteja ocorrendo porque o action do formulário presente no arquivo update_usuario.php está apontando para o local errado... Tente assim: update_usuario.php <?php require "../init.php"; include "../config.php"; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Liga RE$ENHÃO 2020</title> </head> <body> <div> <?php $id = $_GET['id']; $sql = $db->query("SELECT * FROM cadastro WHERE id = '$id'"); $sql->execute(); foreach($sql->fetchAll() as $res); if(isset($_POST['atualizar'])){ $name=addslashes(trim($_POST['name'])); $ur=addslashes(trim($_POST['ur'])); $email=addslashes(trim($_POST['email'])); $password=addslashes(trim($_POST['password'])); $celular=addslashes(trim($_POST['celular'])); $update = $db->prepare("UPDATE cadastro SET name=:name, ur=:ur, email=:email, password=:password, celular=:celular WHERE id = '$id'"); $update->bindValue(':name', $name); $update->bindValue(':ur', $ur); $update->bindValue(':email', $email); $update->bindValue(':password', $password); $update->bindValue(':celular', $celular); $update->execute(); if($update == ''){ echo "<script language='javascript'> window.alert('Erro ao alterar dados!'); </script>"; }else{ echo "<meta http-equiv='refresh' content='0; URL= ../index.php'> <script language='javascript'> window.alert('Dados atualizados com sucesso!'); </script>"; }} ?> <!-- ////// Formlário dados pessoais do Usuário \\\\\\ --> <div style="background-color:#fff;height:auto;width:33%;color:#000;float:left;"> <form action="arquivos/update_usuario.php?id=<?=$_GET['id']?>" method="post" enctype="multipart/form-data"> <label for="name"><span>Nome: </span></label> <input type="text" name="name" value="<?php echo $res['name']; ?>"> <br /> <label for="ur"><span>Estado: </span></label> <input type="text" name="ur" value="<?php echo $res['ur']; ?>"> <br /> <label for="celular"> <span>E-mail: </span> <?php echo $res['email']; ?> </label> <input hidden="" type="text" name="email" value="<?php echo $res['email']; ?>"> <input hidden="" type="text" name="password" value="<?php echo $res['password']; ?>"> <br /> <label for="celular"><span>Celular: </span></label> <input type="text" name="celular" value="<?php echo $res['celular']; ?>"> <br /> <input type="submit" name="atualizar" value="Atualizar"> </form> </div> <?php # UPDATE da Foto if(isset($_POST['enviar'])){ $id = $_GET['id']; $foto = $_FILES['foto']; $sqlUpdate = "UPDATE cadastro SET foto = ? WHERE id = ?"; $dados = array($foto, $id); $pasta = '../upload/'; if (isset($_POST['enviar'])){ $check = @$_POST['apagar']; foreach($check as $foto){ $delcheck = $sqlUpdate = ("UPDATE cadastro SET foto = ? WHERE id = ?"); unlink($pasta.'/'.$foto); if ($delcheck >= '1'){ echo 'Imagem deletada com sucesso!'; }else{ echo 'Erro ao deletar imagem, tente novamente!'; }}}} ?> <?php include "Upload.class.php"; if ((isset($_POST["enviar"])) && (! empty($_FILES['foto']))){ $upload = new Upload($_FILES['foto'], 1000, 800, "../upload/"); echo $upload->salvar(); } ?> <div> <form action="arquivos/update_usuario.php?id=<?=$_GET['id']?>" method="POST" enctype="multipart/form-data"> <?php $id = $_GET['id']; $sql = $db->prepare("SELECT * FROM cadastro WHERE id='$id'"); $sql->execute(); foreach($sql->fetchAll() as $res){ ?> <input size="1" type="hidden" name="id" value="<?php echo $res['id'];?>" readonly> <input type="hidden" type="checkbox" name="apagar[]" value="<?php echo $res['foto'];?>" checked readonly> <?php } ?> <img src="../upload/<?php echo $res['foto'];?>"/><br /> <label>Selecione uma nova imagem:</label><br /> <input type="file" name="foto" accept="image/*" ><br /> <input type="submit" name="enviar" value="Atualizar"> </form> </div> </div> </body> </html>
  23. ShadowDLL

    PHP - Estou tentando fazer um envio de comentários ao bd

    Vamos lá! 1º - Uma alternativa seria passar parâmetros via GET e depois verificar o mesmo, contudo, o alerta sempre será exibido enquanto o parâmetro estiver na URL. Segue exemplo: CÓDIGO: <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Sistema de comentários</title> </head> <body> <?php // VERIFICA PARÂMETRO "MSG" VIA GET, // E RETORNA O "ALERTA". if(isset($_GET['msg'])){ if ($_GET['msg']==="success"){ $msg = "Enviado com sucesso!!!"; }else{ $msg = "Preencha todos os campos!!!"; } echo " <style> .msg { padding: 10px 20px; text-align: center; border: 2px solid #999; margin-bottom: 20px; font-weight: 700; background: #000; color: #fff; } </style> <div class='msg'> <span>".$msg."</span> </div> "; } ?> <form action="" method="post"> <span>Nome: </span><input type="text" name="nome"><br> <span>Email: </span><input type="text" name="email"><br> <span>Mensagem: </span><input type="text" name="mensagem"><br> <input type="submit" name="enviar" value="Enviar"><br> </form> <?php if(isset($_POST['enviar'])){ $nome = $_POST['nome']; $email = $_POST['email']; $mensagem = $_POST['mensagem']; // NECESSARIO PREENCHER TODOS OS CAMPOS if($nome == '' or $email == '' or $mensagem == ''){ header('Location:index.php?msg=error'); } else{ // PASSAMOS PARÂMETRO MSG VIA GET header('Location:index.php?msg=success'); } } ?> </body> </html> 2º - Você pode usar "Flash Message", que exibirá o alerta uma única vez. Exemplo: CÓDIGO: <?php // OBRIGATÒRIO session_start(); ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Sistema de comentários</title> </head> <body> <?php if (isset($_SESSION["flash"])){ echo " <style> .msg { padding: 10px 20px; text-align: center; border: 2px solid #999; margin-bottom: 20px; font-weight: 700; background: #000; color: #fff; } </style> <div class='msg'> <span>".$_SESSION["flash"]["texto"]."</span> </div> "; unset($_SESSION["flash"]); } ?> <form action="" method="post"> <span>Nome: </span><input type="text" name="nome"><br> <span>Email: </span><input type="text" name="email"><br> <span>Mensagem: </span><input type="text" name="mensagem"><br> <input type="submit" name="enviar" value="Enviar"><br> </form> <?php if(isset($_POST['enviar'])){ $nome = $_POST['nome']; $email = $_POST['email']; $mensagem = $_POST['mensagem']; // NECESSARIO PREENCHER TODOS OS CAMPOS if($nome == '' or $email == '' or $mensagem == ''){ $_SESSION["flash"] = array ( "tipo" => "success", "texto" => "Preencha todos os campos!!!" ); }else{ $_SESSION["flash"] = array ( "tipo" => "success", "texto" => "Enviado com sucesso!!!" ); } header('Location:index.php'); } ?> </body> </html>
  24. ShadowDLL

    Como posso criar uma query de requisição no php

    Tente novamente, perdoe-me pelo deslize.
×

Informação importante

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