Ir para conteúdo
Fórum Script Brasil

wootzor

Membros
  • Total de itens

    480
  • Registro em

  • Última visita

Tudo que wootzor postou

  1. wootzor

    PAGINA DE ORÇAMENTO EM PHP

    Não encontra qual página? A processaForm.php?
  2. É isto que pretendes? function clicked() { document.getElementsByTagName("h4")[0].innerHTML = "Um título diferente..."; }
  3. Sim, está. Agora é perceber porque é que a stored procedure não está a devolver o valor correcto.
  4. wootzor

    PAGINA DE ORÇAMENTO EM PHP

    Repara que antes de definires a variável $para tens uma instrução $_REQUEST a mais (ou que não foi completada) e não termina com ponto-e-vírgula, daí o erro.
  5. Esse erro específico costuma ocorrer quando o result set (no caso a variável $sql), devolve um valor booleano e não um objecto. Experimenta fazer debug e verifica o valor da variável após a execução da instrução mysql_query e antes de entrar no ciclo while. Edit: Reparei agora que na imagem não tens nenhum IDE aberto. Usas o Notepad++ para escrever código em PHP, é? Nesse caso, fazer debug torna-se um pouco mais complexo. Tenta escrever a variável com echo ou um print_r da variável $sql (para perceber se é um array ou booleano).
  6. Confirma se alteraste o 'delimiter' para // como na imagem. Acabei de testar e funciona exactamente como no exemplo.
  7. Em princípio não. Estás a usar o phpMyAdmin para gerir a base de dados, certo?
  8. Experimenta algo assim: <?php header('Content-Type: text/html; charset=utf-8'); $directory = "txt/"; $files = glob($directory . '*.txt'); //devolve array com nomes de ficheiros com extensão 'txt' $rand = rand(0, count($files) - 1); $path = $files[$rand]; //caminho para o ficheiro $handle = fopen($path, "r"); $contents = fread($handle, filesize($path)); fclose($handle); ?> <html> <head> </head> <body> Número gerado: <?php echo ($rand+1); ?><br /><!-- ($rand+1) porque $rand começa em 0 (primeira posição do array) --> Conteúdo do ficheiro: <br /> <?php echo $contents; ?> </body> <footer></footer> </html>
  9. Penso que o problema é que, antes de criar a stored procedure, tens de alterar o limitador de uma instrução para um (conjunto de) caracter(es) diferente do ponto-e-vírgula, assim: DELIMITER //; CREATE PROCEDURE spLucro (OUT lucro FLOAT) BEGIN DECLARE receita FLOAT; DECLARE despesa FLOAT; SET receita = (SELECT sum(tvalor) FROM transaccoes WHERE ttipos='RECEITA'); SET despesa = (SELECT sum(tvalor) FROM transaccoes WHERE ttipos='DESPESA FIXA' OR ttipos='DESPESA VARIÁVEL'); SELECT (receita-despesa) INTO lucro FROM transaccoes LIMIT 1; END// DELIMITER ;
  10. A stored procedure tem de ser criada no MySQL e não a partir do PHP. SELECT sum(tvalor) AS Receita FROM transacoes WHERE ttipos='RECEITA'; SELECT sum(tvalor) AS Despesa FROM transacoes WHERE ttipos='DESPESA FIXA' OR ttipos='DESPESA VARIÁVEL'; CALL spLucro(@lucro); SELECT @lucro AS Lucro; Estas quatro linhas eram simplesmente de exemplo. Não é possível executar várias instruções num único comando mysql_query(). Experimenta antes algo assim: $sql = mysql_query("CALL spLucro(@lucro)"); while ($dados = mysql_fetch_array($sql)) { echo "R$ ".$dados[0].",00"; }
  11. Não? Experimentei agora mesmo tanto no Google Chrome como no IE 11 e abriu normalmente.
  12. wootzor

    maior valor do banco

    Utilizando a função MAX(campo) consegues obter o que pretendes: SELECT MAX(`id`) FROM `tbl` WHERE `nome` = "Maria";
  13. wootzor

    Tabelas HTML

    Já se passou quase um mês, portanto provavelmente já descobriste a solução mas aqui fica: <table border="1" cellpadding="10"> <tr> <th colspan="4">Configuração dos apartamentos</th> <!-- Tinhas o colspan a 3, passa a 4 depois da alteração da estrutura --> </tr> <tr> <th colspan="2">Todos</th> <!-- Alargar a duas colunas --> <th>Standard</th> <th>Luxo</th> </tr> <tr> <td colspan="2">Ar-condicionado<br /> Frigobar</td><!-- Alargar a duas colunas --> <td>17m²<br /> TV 14""</td> <td>21m²<br /> TV 21""</td> </tr> <tr> <th rowspan="2">Diarias por<br />Temporada</th> <th>Alta</th> <td>R$ 200,00</td> <td>R$ 250,00</td> </tr> <tr> <th>Baixa</th> <td>R$ 120,00</td> <td>R$ 180,00</td> </tr> </table> O código que tens está praticamente correcto, falta apenas utilizar o atributo colspan em dois locais, identificados no código. Ao colocares o colspan nesses dois locais (para além do cabeçalho), as restantes células vão ser automaticamente "empurradas" para a direita.
  14. Que código é que tens até agora? Edit: Seria algo assim: <!doctype html> <html> <head> <title>.</title> <meta charset="UTF-8" /> </head> <body> <form action="#"> <p> Nome do Tribunal: <input type="text" id="nome_tribunal" /> </p> <p> Site: <input type="text" id="site" list="sites" /> <datalist id="sites"> <option value="http://www.site1.com" label="Site1.com - Descrição"> <option value="http://www.123site.com" label="123Site.com - Descrição"> <option value="http://www.site-xpto.com" label="Site-XPTO.com - Descrição"> </datalist> </p> <p> Nome do Oficial de Justiça: <input type="text" id="nome_oficial" /> </p> <p> E-mail: <input type="text" id="email" /> </p> <p> Data: <input type="date" id="data" /> </p> <p> Hora: <select id="hora" size="1"> <option value="">-- : --</option> <option value='8:00'>8:00</option> <option value='8:05'>8:05</option> <option value='8:10'>8:10</option> <option value='8:15'>8:15</option> <option value='8:20'>8:20</option> <option value='8:25'>8:25</option> <option value='8:30'>8:30</option> <option value='8:35'>8:35</option> <option value='8:40'>8:40</option> <option value='8:45'>8:45</option> <option value='8:50'>8:50</option> <option value='8:55'>8:55</option> <option value='9:00'>9:00</option> <option value='9:05'>9:05</option> <option value='9:10'>9:10</option> <option value='9:15'>9:15</option> <option value='9:20'>9:20</option> <option value='9:25'>9:25</option> <option value='9:30'>9:30</option> <option value='9:35'>9:35</option> <option value='9:40'>9:40</option> <option value='9:45'>9:45</option> <option value='9:50'>9:50</option> <option value='9:55'>9:55</option> <option value='10:00'>10:00</option> <option value='10:05'>10:05</option> <option value='10:10'>10:10</option> <option value='10:15'>10:15</option> <option value='10:20'>10:20</option> <option value='10:25'>10:25</option> <option value='10:30'>10:30</option> <option value='10:35'>10:35</option> <option value='10:40'>10:40</option> <option value='10:45'>10:45</option> <option value='10:50'>10:50</option> <option value='10:55'>10:55</option> <option value='11:00'>11:00</option> <option value='11:05'>11:05</option> <option value='11:10'>11:10</option> <option value='11:15'>11:15</option> <option value='11:20'>11:20</option> <option value='11:25'>11:25</option> <option value='11:30'>11:30</option> <option value='11:35'>11:35</option> <option value='11:40'>11:40</option> <option value='11:45'>11:45</option> <option value='11:50'>11:50</option> <option value='11:55'>11:55</option> <option value='12:00'>12:00</option> <option value='12:05'>12:05</option> <option value='12:10'>12:10</option> <option value='12:15'>12:15</option> <option value='12:20'>12:20</option> <option value='12:25'>12:25</option> <option value='12:30'>12:30</option> <option value='12:35'>12:35</option> <option value='12:40'>12:40</option> <option value='12:45'>12:45</option> <option value='12:50'>12:50</option> <option value='12:55'>12:55</option> <option value='13:00'>13:00</option> <option value='13:05'>13:05</option> <option value='13:10'>13:10</option> <option value='13:15'>13:15</option> <option value='13:20'>13:20</option> <option value='13:25'>13:25</option> <option value='13:30'>13:30</option> <option value='13:35'>13:35</option> <option value='13:40'>13:40</option> <option value='13:45'>13:45</option> <option value='13:50'>13:50</option> <option value='13:55'>13:55</option> <option value='14:00'>14:00</option> <option value='14:05'>14:05</option> <option value='14:10'>14:10</option> <option value='14:15'>14:15</option> <option value='14:20'>14:20</option> <option value='14:25'>14:25</option> <option value='14:30'>14:30</option> <option value='14:35'>14:35</option> <option value='14:40'>14:40</option> <option value='14:45'>14:45</option> <option value='14:50'>14:50</option> <option value='14:55'>14:55</option> <option value='15:00'>15:00</option> <option value='15:05'>15:05</option> <option value='15:10'>15:10</option> <option value='15:15'>15:15</option> <option value='15:20'>15:20</option> <option value='15:25'>15:25</option> <option value='15:30'>15:30</option> <option value='15:35'>15:35</option> <option value='15:40'>15:40</option> <option value='15:45'>15:45</option> <option value='15:50'>15:50</option> <option value='15:55'>15:55</option> <option value='16:00'>16:00</option> <option value='16:05'>16:05</option> <option value='16:10'>16:10</option> <option value='16:15'>16:15</option> <option value='16:20'>16:20</option> <option value='16:25'>16:25</option> <option value='16:30'>16:30</option> <option value='16:35'>16:35</option> <option value='16:40'>16:40</option> <option value='16:45'>16:45</option> <option value='16:50'>16:50</option> <option value='16:55'>16:55</option> <option value='17:00'>17:00</option> </select> </p> <fieldset> <legend>Operações</legend> <button type="submit">Enviar</button> <button type="reset">Limpar</button> </fieldset> </form> </body> <footer></footer> </html>
  15. Penso que o melhor caminho será criar uma stored procedure que faz os cálculos necessários internamente e devolve apenas o resultado final. Fica um exemplo. Seguindo essa lógica, para obteres o total (a que chamei lucro) basta fazeres o seguinte: <?php $result = mysql_query("CALL spLucro(@lucro)"); if (!$result) { echo "Ocorreu um erro: " . mysql_errno() . ': '. mysql_error(); } else { while ($row = mysql_fetch_row($result)) { echo $row; } } Atenção que o código PHP não foi testado, pelo que pode precisar de alguns ajustes mas a lógica é essa. Considera também utilizar mysqli ou PDO em vez da extensão mysql para aceder à base de dados.
  16. Não sei se é isto que pretendes, mas aqui vai. Utilizando jQuery: $(document).ready(function () { $("#selectsearch").on("change", function () { if (this.value == "CargoController") { $("#soletra").attr("name", "car_nome") .attr("value", "${car.car_nome}"); } else { $("#soletra").attr("name", "sec_nome") .attr("value", "${sec.sec_nome}"); } }); });
  17. wootzor

    Link PHP

    Olá. Seria algo assim?
  18. O que pretendes fazer é um pouco complexo para conseguir explicar aqui. De qualquer forma, normalmente os processos de edição fazem-se passando o id do registo entre páginas, e não o nome. Vou tentar colocar aqui apenas os passos lógicos: Tipicamente vais precisar de dois ficheiros, um para apresentar os dados e outro para o processo de edição (users.php e edit.php, por exemplo). Passas o id do registo a editar entre ficheiros por query string ("/edit.php?id=1"). Neste segundo ficheiro procedes à actualização do registo. Utilizei a seguinte estrutura como exemplo (tabela funcionario): users.php (lista de utilizadores): <?php //após estabelecer a ligação à BD $query = "SELECT * FROM `funcionario`"; $result = $mysqli->query($query); ?> <!doctype html> <html> <head> <title>.</title> </head> <body> <table border> <thead> <th>Nome</th> <th>Função</th> <th>Editar</th> </thead> <tbody> <?php if ($result->num_rows > 0) { while ($row = $result->fetch_row()) { echo "<tr><td>" . $row[1] . "</td><td>" . $row[2] . "</td><td><a href='edit.php?id=" . $row[0] . "'>Editar</td></tr>"; } } ?> </tbody> </table> </body> </html> Ficheiro edit.php (edição dos detalhes de utilizador): <?php header('Content-type: text/html; charset=utf-8'); $id = isset($_GET["id"]) ? $_GET["id"] : null; $mysqli = new mysqli($host, $user, $passw, $db); //substituir pelas tuas credenciais de acesso à BD if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } if (isset($_POST["nome"]) && isset($_POST["funcao"])) { $nome = $_POST["nome"]; $funcao = $_POST["funcao"]; $query = "UPDATE `funcionario` SET `nome` = '$nome', `funcao` = '$funcao' WHERE `id` = $id"; $result = $mysqli->query($query); if ($result) { echo "Registo editado!"; } else { echo "Ocorreu um erro ao editar o registo com o ID $id"; } } $query = "SELECT * FROM `funcionario` WHERE `id` = $id"; $result = $mysqli->query($query); ?> <!doctype html> <html> <head></head> <body> <form action="<?php echo $_SERVER['PHP_SELF']; ?>?id=<?php echo $id; ?>" method="POST"> <table border> <thead> <th>ID</th> <th>Nome</th> <th>Função</th> </thead> <tbody> <tr> <?php while ($row = $result->fetch_assoc()) { ?> <td><?php echo $row['id']; ?></td> <td><input type="text" name="nome" value="<?php echo $row['nome']; ?>" /></td> <td><input type="text" name="funcao" value="<?php echo $row['funcao']; ?>" /></td> <?php } //endwhile; ?> </tr> </tbody> </table> <button type="submit">Editar</button> </form> </body> </html> Como disse, é muito código para explicar ao pormenor, embora o processo em si seja relativamente simples a partir do momento em que se percebe a lógica. Espero que ajude! :)
  19. O teu código está certo e funciona correctamente. Experimenta colocar um alert(nome.length) ou alert(x) para obteres o valor.
  20. Não sei que cálculos pretendes fazer, mas tens um erro no código: parede é uma váriavel e estás a tentar utilizá-la como string na soma. Experimenta substituir a variável s3 por: var s3 = parseInt((parede + 500) * (largura) + (parede) * 0.024/1000);
  21. wootzor

    Formatar variavel

    É relativamente fácil de fazer para um caso ou para o outro. Agora para os dois casos em simultâneo (10 e 11 dígitos) não consegui. De qualquer forma fica aqui uma lógica que podes tentar seguir e melhorar de acordo com o que pretendes: $original = "2122228888"; $formatado = "(" . substr($original, 0, 2) . ")" . substr($original, 2, 4) . "-" . substr($original, -4); echo $original . " => " . $formatado; Resulta em: "2122228888 => (21)2222-8888".
  22. Que eu conheça, tens duas bibliotecas para esse fim: TCPDF e FPDF, cujos sites contém páginas com exemplos de uso.
  23. wootzor

    Retirar ( ) - de Select

    Não percebi o que pretendes. Recebes o valor no formato 2122228888 e tem-no armazenado na tabela no formato (21)2222-8888. É isso? Já agora, o valor que recebes vem de onde? Um formulário em PHP? Edit: Já vi que sim.
  24. EDIT: Peço desculpa mas só depois reparei que isto está na secção de SQL Server e não de MySQL. De qualquer forma, espero que possa ser útil, embora a sintaxe seja diferente. Aconselho a ler algo sobre triggers. Em vez de tentar "reinventar a roda", podes utilizar um trigger, que existe precisamente para operações semelhantes à que pretendes. Aqui tens um exemplo: CREATE TABLE `Produto` ( `Id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `Nome` VARCHAR(50) NOT NULL, `Stock` INT NOT NULL ); CREATE TABLE `Venda` ( `Id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `ProdutoId` INT NOT NULL, `Quantidade` INT NOT NULL, FOREIGN KEY (`ProdutoId`) REFERENCES Produto(`Id`) ); -- Inserir dados na tabela `Produto` INSERT INTO `Produto` (`Nome`, `Stock`) VALUES ("Produto A", 100), ("Produto B", 200); -- Criar trigger para actualizar automaticamente o stock disponível em função das vendas. CREATE TRIGGER `tgVendas` AFTER INSERT ON `Venda` FOR EACH ROW UPDATE `Produto` SET `Stock` = (`Stock` - NEW.Quantidade); -- Testar o trigger criado INSERT INTO `Venda` (`ProdutoId`, `Quantidade`) VALUES (1, 5), (2,10);
  25. Ficam aqui algumas ideias retiradas de outro fórum. No entanto, penso que a maioria se enquadra no tipo de projectos que referes. 1 - gestão de escola com turmas, alunos, consulta de notas via web, horarios etc... 2 - programa de gestão de um clube de vídeo, com um sistema de multas e notificação ao utilizador do programa 3 - Jogo da Batalha Naval 4 - Gestao de restaurante : - Menu do restaurante (menu, mas não é a interface ) - Adicionar/Remover elementos do Menu - Stock com lista de ingredientes e quantidade disponível - Adicionar/Remover quantidades de ingredientes do stock - Restaurante tem um nº pré-definido de mesas - Para cada mesa, deve-se poder: Abrir uma nova conta, adicionar um elemento do menu à conta, anular um elemento da conta, fechar a conta e imprimir factura. - Deves manter uma relação entre os elementos do menu e as quantidades de ingredientes necessárias à sua manufactura - A venda de um prato ou bebida implica a dedução das quantidades adequadas do stock, e apenas deverá ser possível se o stock o permitir - O cancelamento de uma venda deverá permitir, opcionalmente, voltar a adicionar as quantidades adequadas ao stock (caso não tenham sido inutilizadas) ​ 5 - Gestao de uma lan house: - Conta de utilizador (nome, nick, idade, mail, etc) - Quando se cria a conta, é necessário depositar um montante (ou não, mas se não há €€ também não há lan para ninguém ) - Associado à conta está o montante em €€ disponível até ao momento - Caso não haja dinheiro na conta, é necessário depositar - Relação dinheiro/nº horas disponíveis - Nº de pcs existentes na lan - Informação relativa a cada pc - Jogos/Aplicações disponíveis - Quantos/Quais pcs estão ocupados e com que Jogos/Aplicações - Gestão da lan em si (Nome, Despesa, Facturação, Horário de Funcionamento) ​ 6 - sistema de contagem de bilhetes, categorias de bilhetes e diferentes preços, marcações de bilhetes, escolas, grupos, venda online, etc... 7 - software de gestão de assistencias técnicas 8 - Cabeça robotica formada por 2 webcams e vários servos (para poder olhar para todas as direcções). A cabeça filtrava o tom de pele da pessoa que estava à frente dela e quando a pessoa se movia a cabeça seguia-a. A cabeça estava ligada a um pc que fazia os calculos (somar as imagens das webcams e dividir por 2, filtrar a pele e o por o que não era pele a preto, e dar indicações para que a cabeça se mexesse de forma a que a pele estivesse no centro da imagem). Tudo feito em c++ e openCV 9 - Criação de um Web Site para marcação de exames, e consulta dos horarios e dias das que os mesmos sao realizados 10 - Cd interativo de uma obra de literária 11 - sistema de alarme controlado por pc: camaras de vigilancia,sensores de movimento, modem (para enviar uma msg caso o alarme disparasse), sirene (obvio),leitor de banda magnetica! software desenvolvido em delphi. ​ 12 - programa para guardar doenças contagiosas (malaria, meningite e essa cena toda) 13 - Base de Dados sobre gestão de uma loja (a designar) 14 - apresentação e demonstração de servidores linux (servidores de email, de firewall, de DNS, etc. ) 15 - apresentação de programas úteis para o funcionamento e segurança de uma rede 16 - demonstração da instalação do Joomla, Moodle ou outro CMS. não considero isto uma boa opção, apenas disse porque um colega meu fez isso. como um dos professores tinha a mania que PHP era o futuro e que Joomla é que estava na moda, sacou de lá um 15 17 - Organizar uma lan party 18 -Software que permita: - Gestão de Clientes - Alertas de Aniversários de clientes - Gestão de fornecedores e carteira dos mesmos(pagamentos em falta etc) - Gestão de Stocks - Alerta de Stock baixo(Mediante introdução de stock mínimo razoável na introdução do artigo na base de dados) - Gestão de Facturas - Alerta de Facturas em Aberto a expirar - Gestão de Orçamentos - Gestão de documentos de entrada de material - Gestão de reparações de equipamentos e emissão de documento para anexar no equipamento e outro para o cliente - Gestão de datas previstas para entrega dos equipamentos na assistência com alerta de prazos - Gestão de equipamentos enviados para garantia - Consulta de Históricos de clientes (Compras, Assitencias, devoluções) - consulta de históricos de fornecedores(Material vendido, artigos fornecidos) - Gestão de contratos de assistência com empresas - Alertas de Manutenção periódica de maquinas das empresas em assistência - Gestão de maquinas por cliente(mediante numero atribuído a mesma na venda ou primeira assistência da mesma) - Base de dados Encriptada - Pagina em ASP onde o cliente mediante um código de acesso poderia consultar o estado da reparação em tempo real.
×
×
  • Criar Novo...