Ir para conteúdo
Fórum Script Brasil

Scripter

Membros
  • Total de itens

    125
  • Registro em

  • Última visita

Tudo que Scripter postou

  1. o exemplo a seguir funciona da seguinte maneira, cada "instance" da classe PHP, terá seu próprio Nome, Sobrenome, Telefone e Endereço, e esses dados serão inseridos em um BD. Tudo começa numa pagina html, aonde esses valores são inseridos... ++++++ pagina1.html ++++++++++ <html> <head> <title>Cadastro de Pessoas com PHP OO</title> </head> <body> <center> <form action=cadastra.php method=post> Nome: <input type=text name=nome><br> Sobrenome: <input type=text name=sobrenome><br> <br> Telefone: <input type=text name=telefone><br> Endereço: <input type=text name=end><br> <input type=submit value=Cadastra!></form></center></body></html> ++++++++++++++++++++ agora, a pagina cadastra.php <?php class Cadastrado { // aqui começa a planta baixa de sua classe var $nome; var $telefone; var $sobrenome; var $end; var $con; function __construct($nome,$sobrenome,$telefone,$ende) { //um construtor... $this->nome = $nome; //repare que o $ vai antes do this, e nome fica sem. Explicando, nesse caso, as variaveis de instancia da classe Cadastrado, vao ter o valor dos argumentos passado ao construtor $this->telefone=$telefone; $this->sobrenome=$sobrenome; $this->end=$ende; } function conecta($local, $usuario, $senha) { //função que conecta ao banco de dados, e retorna o handler da conexão... if($this->con=mysql_connect("$local","$usuario","$senha")) { return true; } else { return false; } } function cadastra($db, $tabela) { //função que cadastra echo $db; mysql_select_db($db,$this->con); $query = "INSERT INTO $tabela VALUES ('NULL','$this->nome','$this->sobrenome','$this->telefone','$this->end')"; /* neste caso eu suponho que você tem um BD, com 5 colunas, id, nome, sobrenome, telefone e endereço, nessa sequencia, qlqr coisa só adapte para sua necessidade... */ mysql_query($query,$this->con) or die(mysql_error()); } function nome_completo() { $completo = $this->nome." ".$this->sobrenome; return $completo; } function qual_nome() { return $this->nome; } function qual_sobrenome() { return $this->sobrenome; } function qual_end() { return $this->end; } function qual_telefone() { return $this->telefone; } } //fim da classe $cadastro1 = new Cadastrado($_POST["nome"],$_POST["sobrenome"],$_POST["telefone"],$_POST["end"]); //agora vamos cadastra-lo if($cadastro1->conecta("localhost","root","")) { $cadastro1->cadastra("teste","teste"); //agora só para mostrar um pouco mais: echo "Você cadastrou: ".$cadastro1->nome_completo(); echo "<br>Com o telefone: ".$cadastro1->qual_telefone(); echo "<br>Morando no endereço: ".$cadastro1->qual_end(); } else { echo "Não conectou ao BD"; exit(); } ?> o bom disso é que você pode instanciar multiplos cadastros ao mesmo tempo, ex: $cadastro1 = new Cadastrado($vars......); $cadastro2 = new Cadastrado($vars......); entendeu? dai fica muito mais facil de lidar... mais se você quer conhecer mesmo POO, estude Java... +++ EDIT ++++++ alguns problemas corrigidos, código substituido
  2. atribua a saida de mysql_error(), a uma variavel, e depois echo nela... boa sorte, amanha eu vejo, to cansadao >.<
  3. ... realmente não estou entenendo, o erro aponta para a linha 17 do config.php, você tem certeza que você postou o arquivo /home/www/blackmix.awardspace.biz/pedido/config.php
  4. você tem certeza que você apresentou o arquivo config.php completo??
  5. mostre o arquivo verifica.php novamente, que é o alvo de nossa discussão.
  6. Gabriel, porem, você não pode fazer todas linhas da coluna e depois voltar para a primeira para colocar a segunda coluna... você deve preencher as 2 colunas simultaneamente, coluna1, coluna2, pula linha, coluna1, coluna2, pula linha...
  7. vamos analizar o erro: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/www/blackmix.awardspace.biz/pedido/config.php:17) in /home/www/blackmix.awardspace.biz/pedido/verifica.php on line 13 o erro diz que a session já foi iniciada no arquivo config.php, linha 17, então, como este arquivo esta sendo importado por este, seus conteudos se juntam, incluindo o session_start(); simplesmente retire desta pagina o session_start()... apenas lembrando que session_start(), ao contrario do que muitos pensam, não deve necessariamente ser a primeira linha do arquivo, após as tags <?php, e sim, a primeira coisa a aparecer antes de que qualquer coisa seja mandado ao navegador, ou seja, qlqr HTML, incluindo até a propria tag HTML, e qualquer coisa que aparessa no código fonte da pagina... então, se o arquivo imortado, config.php, mandar qlqr coisa HTML, já não vai dar certo tambem
  8. realmente parece uma quesão extremamente simples, porem, não tanto, devido ao fato de dividir em tabela, pois, como mostrar quando acabou esta linha, e está na hora de começar a proxima, sendo que os valores estão na mesma coluna do BD (eu suponho...), já que o loop while (que eu particularmente uso para pegar valores de BD) só pega 1 linha de cada vez..., simples, um contador, observe o código: <? import conecta_ao_banco.php; //só poupando meu trabalho de conectar ao BD... $query = "SELECT * FROM tabela"; $dados = mysql_query($query); $contador = 1; echo "<table border=1><tr><th>Coluna1</th><th>Coluna2</th></tr><tr>"; while($row=mysql_fetch_array($dados,MYSQL_ASSOC)) { if($contador>2){ $contador=2; echo "<tr><td>$row["campo"]</td>"; } elseif($contador==1) { echo "<td>$row["campo"]</td>"; $contador++; } else { echo "<td>$row["campo"]</td></tr>"; $contador++; } } echo "</table>"; ?> explicando o código: a cada passada do loop for, os if's se repetirao, checando o valor de $contador e fazendo a ação ideal, note que a clausula elseif só sera executada uma vez... qlqr coisa posta ai colega ++++ EDIT ++++++ talvez este mesmo processo possa ser feito com arrays, porem, eu considero este processo aqui apresentado mais simples de entender E de fazer...
  9. quando você executa da algum erro?? já tentou pelo metodo do while? while($row=mysql_fetch_array($delete2)){ $imagen = $row["imagen"]; unlink("imagens/".$imagen); unlink("fotos/".$imagen); } como o limite é 1, não havera nenhum problema e o while sera executado apenas 1 vez... tente tmb dar um echo $imagen; depois de $imagen = $tupla["imagen"]; para ver qual valor imagen esta pegando...
  10. ya ^^ vo aproveita que to com tempo livre e vo explica tudim ^^ -----paginaDoForm.html----- <html> <head> <title>Passando valores pra umas pagina php</title> </head> <body> <form action=script.php method=post> <!-- inicia o formulario, quando ele for submetido, seus valores irao para a pagina script.php, pelo método post (existem apenas post e get) --> <input type=text name=textinho> <!-- insere o campo de texto chamado textinho, só se preocupe com o nome dele na pagina PHP --> <br> <input type=submit value=Manda!> <!--o botão que manda... --> </form> </body> </html> -------script.php-------- <?php $valor1 = $_POST["textinho"]; /* atribui a valor1, o valor da variavel textinho (lembra que era o nome do campo de texto?) da variavel global _POST, para pegar valores de forms de outra pagina, você primeiro deve saber de que modo os valores serao enviados, post ou get, no caso de post, a variavel global é $_POST, e get, é $_GET. após a variavel você coloca entre colchetes, o nome do campo html do qual você quer tirar a informação... ex $variavel1 = $_POST["campo"]; ou $variavel1 = $_GET["campo"] */ echo $valor1; //mostra o valor da variavel $valor1, que tem o valor do campo html, traduzindo, mostra o conteudo do campo html... ?> agora você me pergunta, qual a diferença entre get e post? simples, você já deve te observado nos links das paginas, apos o pagina.php, um ?e depois uma palavra, ex, o link deste tópico: http://scriptbrasil.com.br/forum/index.php?showtopic=136457 showtopic é uma variavel sendo passada pelo metodo get, e sera recuperada por alguma outra pagina atraves de $_GET... ?showtopic=136457 variavel showtopic, com o valor 136457... enquanto post, é passado, podemos dizer, discretamente, sem que ninguém veja explicitamente, apenas atraves da variavel $_POST... o metodo get suporta, se eu não me engano, 255 caracteres apenas... ou seja, pequenos textos, valores de variaveis, nada mais, enquanto post suporta gigantescas quantidades de texto... você tambem pode fornecer valores para uma outra pagina manualmente, atraves de get: ex: <a href=pagina.php?variavel1=valor1>Link</a> <!-- cria um link para a pagina.php, enviando no campo $_GET, a variavel variavel1, com o valor, valor1, para pegar esta informação na pagina php, você deve acessar a variavel $_GET[variavel1]... e como faço para passar mais de um valor?? simples, usando & (e comercial)... ex: <a href=pagina.php?variavel1=valor1&variavel2=valor2&variavel3=valor3>Link</a> lembando o limite de 255 caracteres... infelizmente, com post iso não é possivel... (até onde eu saiba), só através de forms mesmo... entendeu? qlqr coisa posta ai colega +++++++++ EDIT++++++++++++ ah eskeci da parte de salvar o arquivo... bem, vamos la... ----script.php de novo----- <?php $valor1 = $_POST["textinho]; $arquivo = fopen("texto.html", a+); //pra maiores informações em como usar os modos do fopen (parametro no qual eu coloquei a+) visite este link fwrite($arquivo,$valor1); //escreve em $arquivo, o conteudo de $valor1 fclose($arquivo); //fecha o handler do arquivo ?> isso é claro é apenas um basicão, pra maiores informações visite este link, e este, e este. -------- mais exemplos: <?php $valor = "Pindamonhangaba"; if(is_writeable(arquivo.txt)) //se o arquivo pode ser escrito... { if(!$arquivo = fopen("arquivo.txt","a+")){ echo "Não consegui abrir o arquivo..."; exit; } fwrite($arquivo,$valor); fclose($arquivo); } else { echo "O arquivo não pode ser alterado..."; } ?>
  11. simples: $con = mysql_connect("local_aonde_esta_o_banco_de_dados","usuario","senha"); faz a conexão com o banco, e retorna a variavel $con se deu certo ou não. if($con) // se $con é true, ou seja, conectou ao banco de dados, seleciona com qual banco você deseja trabalhar. { mysql_select_db("banco_de_dados"); //seleciona qual o banco $query = "SELECT * FROM tabela"; //literalmente, seleciona tudo (*), de uma tabela chamada tabela, é claro que essa linha pode ser bem mais extensa, mais esse é o basico $dados = mysql_query($query,$con); //executa seu pedido, o segundo argumento é a variavel que informa a conexão com o bd, é opcional... os dados resultantes são atribuidos a variavel $dados while($row=mysql_fetch_array($dados,MYSQL_ASSOC) // é meio complicado explicar, mais é aqui que a data se torna acessivel, em modo associativo, você já vai entender. { // supondo que você tenha dentro da tabela tabela, 3 campos: nome, idade e sobrenome, e você tem tres entradas para cada campo, ou seja, 3 linhas: // Rogerio 35 Pereira //Alberto 20 Silva //Alex 15 Cani //a primeira vez que o loop é executado, a primeira linha é pega, Rogério 35. echo $row["nome"]; //mostra o conteudo do campo nome, no caso do primeiro loop, Rogério, é ai que entra a parte do MYSQL_ASSOC, ele permite que você referencie os dados pelo nome do campo, no caso, o campo nome. echo $row["idade"]; //mostra o conteudo do campo idade da linha atual, no caso da linha 1, 35, da linha 2, 20, e da linha 3, 15. } //o loop termina, while checara se há mais dados para serem retirados, no caso, a linha seguinte, a linha 2, o processo ocorrera tudo de novo, e no caso da linha 2, a saida sera Alberto20 mysql_close($con); //fecha a conexão com o bd, na verdade é opcional, pois ao sair desta pagina, ela é automaticamente encerrada. } //fim do if else { echo "Não foi possivel conectar ao bd"; //obvio... } você tambem pode usar outro comando para coletar os dados, mysql_fetch_assoc($variavel_que_contem_dados); essa função automaticamente já retorna valores do tipo associativo, que nem mysql_fetch_array() com o argumento MYSQL_ASSOC. para outros tipos de argumentos, veja este link. é claro que existem mais maneiras de coletar dados... cada um tem sua preferencia, eu prefiro mysql_fetch_assoc e mysql_fetch_array com MYSQL_ASSOC... você escolhe, mais o conceito principal é este... mais exemplos: $user = usuario; $passwd = 123456; $bd = testes; $con = mysql_connect("localhost","$user","$passwd"); if($con) { mysql_select_db(banco); $query = "SELECT * FROM tabela WHERE 'sobrenome' = Pereira"; //seleciona todas as linhas da tabela tabela aonde os campos sobrenomes sejam Pereira. $dados = mysql_query($query,$con); $tem=mysql_num_rows($dados); //checa quantas linhas de resultado existem, e poe o valor na variavel tem. if($tem>=1) //se tem 1 linhas ou mais de resultado { $i = 1; while($row=mysql_fetch_assoc($dados)){ echo "Nome $i: $row["nome] $row["sobrenome"]"; } } //note que não tem else, se tem linhas, mostra-as e segue o código, se não tem, apenas segue o código $query = "INSERT INTO tabela VALUES ('Roberto', '14', 'Silveira')"; //insere por ordem em que os campos aparecem no banco de dados, os valores Roberto, 14 e Silveira, ou seja, em sequencia, nome, idade e sobrenome, lembra? se o numero de valores passados é menor do que o numero de campos, vai dar errado, e se você poe muitos valores, para poucos campos, tambem. mysql_query($query); //estamos apenas inserindo, intao não é necessario outra variavel mysql_close($con); } else { echo "Não foi possivel conectar ao BD"; } se você deseja adicionar valores a campos especificos, você usa o comando insert assim: $query = "INSERT INTO tabela (campo1, campo5, etc) VALUES ('valor_para_o_campo1', 'valor_para_o_campo_5', 'valor_para_o_campo_etc')"; é isso ai manim, qlqr coisa pergunta
  12. Scripter

    Ajuda...

    experimente dar um echo $banida; antes de fazer o switch, para ver qual valor a variavel está pegando... complicadinho esse banco de dados ai hein >.<
  13. este forum é sobre JAVA, não javaSCRIPT, leia melhor.
  14. ele não está conseguindo se conectar ao banco de dados, checa ai se ta funfando tudo direitinho, local aonde esse banco esta hospedado, porta, usuario, senha, veja se esse banco de dados esta realmente funcional... é problema ou com o bd, ou com o código que conecta.
  15. $banco1 = "/home/www/emerson.eu.pn/down/games/java/downloads.txt"; e $banco2 = "/home/www/emerson.eu.pn/wap/down/games/java/downloads.txt"; lol
  16. Scripter

    Ajuda

    tira o . de depois do $produto. fica só echo "O produto é ".$produto; malz, n vi o erro antes
  17. Scripter

    Ajuda

    bem, se você postou exatamente o código, ctrl+c e ctrl+v, ele tem erros nos inputs, input 1: <input name="Prduto" type="text"id="produto" size="20" /> o campo da variavel global $_POST, é o NAME do campo, no caso Prduto, não a id, que por sinal esta colada ao type, no php, você deveria se referir a $_POST["Prduto"] para pegar o valor desse input. ----------------- input 2 & 3: <input name=numero1" type="text" id="numa" value="" size="12 /> <input name="numero2" type="text" id="numb" size="12" /> o mesmo erro do input 1 no código php, você deve se referir ao NAME do campo para pegar seu valor... -------------- algumas conveniencias: você não precisa colocar name em tudu que é campo, nem value, por exemplo: o input 2 não precisa desse value em branco, é apenas código a mais que torna seu script complicado. o input submit tambem não precisa de nome... eee, por ultimo, você não fexou a tag form, e sim, abriu uma nova... ------------- seu código html corrigido: <body> <form id="form" name="form1" method="post" action="calcula.php"> Nome do Produto <input name="Prduto" type="text" id="produto" size="20" /> <br /> <br /> Valor cobrado <input name="numero1" type="text" id="numa" size="12" /><br /><br /> valor a receber <input name="numero2" type="text" id="numb" size="12" /> <br /><br /> <input type="submit" value="Calcular" tabindex="3" /> </form> </body> </html> não sei se o id faz muita diferença para você, mais se você não usa nenhum cód css nessa pagina, por conveniencia é melhor tira-los tambem, dexando apenas: Nome do Produto <input name="Prduto" type="text" size="20" /> <br /> <br /> Valor cobrado <input name="numero1" type="text" size="12" /><br /><br /> valor a receber <input name="numero2" type="text" size="12" /> <br /><br /> <input type="submit" value="Calcular" tabindex="3" /> ++++++++++++++++++++++ no código PHP, você deve se referir ao name dos campos html, cóigo corrigido: $produto = $_POST["Prduto]; $numero1 = $_POST["numero1"]; $numero2 = $_POST["numero2"]; $troco = $numero2 - $numero1; echo "O produto é ".$produto.; echo "O Troco é de ".$troco." reais"; é isso ai manim, qlqr coisa posta
  18. Scripter

    Java linux ou windows

    olha, nunca mexi com banco de dados do OO, na verdade nam sabia que ele tinha, na verdade mesmo nunk mexi com banco de dados com java, apenas com PHP =D mais penso que, como o OO é multi plataforma (me refiro ao fato dele ter versões para windows e linux), você pode usa sim sem diferença nas linhas de código de accesso...
  19. temos primeiro que ter em mente, que uma classe nada mais é que uma planta baixa de um objeto, uma classe sozinha não faz nada... o que você deveria fazer é o seguinte: na classe vendedor (vou apenas postar o código, porque explicar demoraria muito, depois resumo um pouco): class Vendedor { int notas1, notas2, notas5, notas10, notas20, notas50, notas100; Vendedor(int numDeNotas1, int numDeNotas2, int numDeNotas5, int numDeNotas10, int numDeNotas20, int numDeNotas50, int numDeNotas100) { //isso é um construtor notas1 = numDeNotas1; notas2 = numDeNotas2; notas5 = numDeNotas5; notas10 = numDeNotas10; notas20 = numDeNotas20; notas50 = numDeNotas50; notas100 = numDeNotas100; } void fazPagamento(int numDeNotas1, int numDeNotas2, int numDeNotas5, int numDeNotas10, int numDeNotas20, int numDeNotas50, int numDeNotas100) { notas1 += numDeNotas1; notas2 += numDeNotas2; notas5 += numDeNotas5; notas10 += numDeNotas10; notas20 += numDeNotas20; notas50 += numDeNotas50; notas100 += numDeNotas100; //acrescenta os valores aos valores já existentes. } } e na classe Caixa: class Caixa { public static void main(String[] args) { //começa o programa Vendedor vend1 = new Vendedor(10, 10, 10, 10, 10, 10, 10); //dez notas de cada valor, note o new Vendedor, ele chama o construtor da classe vendedor, e informa através dos parametros, quantas notas devem haver, agora para se referir aquele vendedor, você se refere ao objeto vend1; //efetuando pagamentos: vend1.fazPagamento(5,0,0,5,0,0,1); //acrescenta 5 notas de 1, 0 de 2, 0 de 5, 5 de 10, 0 de 20, 0 de 50 e 1 nota de 100. //supondo que você quer saber quanto dinheiro tem naquele caixa (vend1), você faria: int tantoDeNotasDeUmNoCaixa = vend1.notas1; //atribui o campo notas1 do objeto vend1 (agora com 15 notas de 1, lembra?) a variavel tantodenotas....... System.out.println(tantoDeNotasDeUmNoCaixa); //imprime na tela quantas notas você tem... } } espero que você tenha entendido... qlqr coisa pergunta ai +++++ EDIT +++++ para informar tambem quantas notas existem no caixa, você tambem pode criar um método para dizer isto, então sua classe Vendedor (vendedor, não caixa), ficaria assim: [...] //isso significa todo o código da classe vendedor, que eu não vou colocar aqui, se você for usar, insira depois do PENULTIMO } da classe vendedor: void dizValores() { System.out.println(notas1); System.out.println(notas2); System.out.println(notas5); System.out.println(notas10); System.out.println(notas20); System.out.println(notas50); System.out.println(notas10); } e sua classe CAIXA ficaria assim: class Caixa { public static void main(String[] args) { //começa o programa Vendedor vend1 = new Vendedor(10, 10, 10, 10, 10, 10, 10); //dez notas de cada valor, note o new Vendedor, ele chama o construtor da classe vendedor, e informa através dos parametros, quantas notas devem haver, agora para se referir aquele vendedor, você se refere ao objeto vend1; //efetuando pagamentos: vend1.fazPagamento(5,0,0,5,0,0,1); //acrescenta 5 notas de 1, 0 de 2, 0 de 5, 5 de 10, 0 de 20, 0 de 50 e 1 nota de 100. //supondo que você quer saber quanto dinheiro tem naquele caixa (vend1), você faria: vend1.dizValores(); //simples assim } } ++++++++ EDIT 2 +++++++++ isso também traz o beneficio de você poder ter multiplos caixas: ex: Vendedor vend2 = new Vendedor(10,15,20,10,0,6,7); Vendedor vend3 = new Vendedor(20,10,1,3,20,50,100); cada vendedor tem uma copia independende de cada variavel e metodo, ou seja: vend2.dizValores(); é diferente de vend3.dizValores(); você trata cada um individualmente... ++++++++ EDIT 3 ++++++++++ você também pode setar uma variavel de um objeto manualmente: vend1.notas1 = 5; vend2.notas100 = 1000000000000000; //quem dera =D qlqr coisa posta ai colega.
  20. Scripter

    Java linux ou windows

    access é um banco de dados da microsoft, não da plataforma Java, ou seja: access != linux && access == windows. voce sem duvida pode usar qualquer recurso da linguagem java em qualquer plataforma, porém softwares de terceiros já é diferente...
  21. agora e explicação, function soma($valor1,$valor2){ $soma=$valor1+$valor2; return $soma; } a palavra function diz que estamos declarando uma função, nesse caso, de nome soma. As variaveis entre parenteses, chamam-se parametros. Esses parametros são usados como variaveis DENTRO (apenas dentro) da função... $soma, é uma variavel que esta presente apenas dentro da função, e ela, assim como valor1 e 2, serão 'descartadas' após o término da função. enfim, o valor de soma é definido através da soma de valor 1 com valor 2, e a ultima linha, return $soma, retona o valor da variavel soma a função que a invocou. poderíamos usar tambem: $var = soma(4, 5); // $var teria o valor de 9, note que os parametros devem ser substituidos por numeros ou echo soma(4, 5); diretamente... Nota.: você não pode usar palavras como argumentos (parametros), pois retornaria 0, para "somar" palavras é usado o operador ponto (.). ex function soma_palavra($palavra1, $palavra2){ $palavra3 = $palavra1.$palavra2; return $palavra3; } $palavra = soma_palavra("Aew ", "mano"); //$palavra agora é Aew mano ou echo soma_palavra("Aew ", "mano"); diretamente ok? tomara que te ajude em algo...
  22. Você tem a opção de se ele marcar sim insere altomaticamente o restante do formulario com javascript coisa que eu tmb sempre tive curiosidade de sabe como faiz =D
  23. colega, ve tmb se os arquivos no include começam uma sessão la tambem, porque se começa, serão 2 sessões ao mesmo tempo, isso, se enterpretarmos e traduzirmos aquele erro, se encaixa diretamente... ++++++++++ EDIT ++++++++++++++ headers already sent (output started at C:\Inetpub\wwwroot\mti-prod\htdocs\consulta.php:2) essa linha diz que a sessão já foi iniciada no arquivo consulta.php na linha 2, se esse arquivo incluir esse que você posto aqui, já vai da erro, porque são 2 sessões (ou mais) ao mesmo tempo...
  24. Scripter

    Java linux ou windows

    sem duvida você consegue, esse é o bom do Java, você dexa de programar na plataforma Linux ou Windows, e passa a programa na plataforma Java, que essa por sua vez, roda em qualquer outra plataforma hardware-based, ex, windows, linux, etc!
×
×
  • Criar Novo...