Jump to content


Photo

Orientação De Objetos


  • Faça o login para participar
14 replies to this topic

#1 Carlos Maniero

Carlos Maniero

    Normal

  • Usuários
  • 72 posts
  • Sexo:Masculino

Posted 13/02/2010, 02:15

Olá pessoal, eu tenho o seguinte código:

[codebox]
<?php
$banco = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("brasil", $banco) or die(mysql_error());

class conecta{
function seleciona_dados($tabela, $campo, $ordem){

if($ordem == "crescente"){
$ordenar = "ASC";
}
else{
$ordenar = "DESC";
};

$sql_geral = mysql_query("SELECT * FROM ".$tabela." ORDER BY '".$campo."' ".$ordenar) or die(mysql_error());
mysql_fetch_array($sql_geral);
}
}
?>
[/codebox]

e esse que execulta a classe:
[codebox]
<?php
require("modulos/classe.php");
$db_conecta = new conecta;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
while ($city = $db_conecta->seleciona_dados('cidade', 'id', 'decrescente')){
echo $city['nome'];
}
?>
</body>
</html>
[/codebox]

Mais não funciona de jeito nenhum, alias se eu colocar o whlie direto na classe funciona, mas o objetivo da classe é para q possa usar em diferentes situações e não em uma só.

Alguem sabe o que há de errado com o meu código?

#2 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 13/02/2010, 03:21

Return... :assobio:

[]’sAté mais

#3 Carlos Maniero

Carlos Maniero

    Normal

  • Usuários
  • 72 posts
  • Sexo:Masculino

Posted 13/02/2010, 13:10

Cara sou novo nessa area de oo tem como você ser um pouco mais especifico em relação de onde ultilizar a função return?

ficaria muito grato!

#4 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 13/02/2010, 17:40

Return não faz parte do aprendizado de OOP. É uma estrutura de controle básica do PHP, que se aprende lá no início do manual: http://docs.php.net/return

PS: Num primeiro momento pode parecer uma resposta antipática, eu concordo. Mas saiba que é necessária. Para você compreender o PHP num nível automático, é preciso de muito estudo do manual. Muito. Você não tem idéia. Outra coisa: o aprendizado não tem fim. Nunca. Mais que recomendo esse texto de Bryan Woods, é muito esclarecedor: Programming is hard. Eu mesmo levei 5 anos para chegar aqui, onde eu reconheço estar no máximo no nível intermediário. Sei que estou muito longe do avançado, mais ainda do guru, que mesmo sendo guru nunca vai saber tudo.

[]’sAté mais

#5 Carlos Maniero

Carlos Maniero

    Normal

  • Usuários
  • 72 posts
  • Sexo:Masculino

Posted 14/02/2010, 14:44

Paulo Freitas Não interpretei sua resposta como sendo antipática não eu só não havia compreendido mesmo!
Vou dar uma estudada no manual, para ver se consigo compreender melhor.
seu eu tiver qualqer duvida eu volto a postar.

Agradeço pela sua atenção!

=]

Olha com o return eu consegui faze ele retornar com O VALOR deu um bug estranho ele só traz o primeiro resultado e mesmo assim ele o traz em um looping eterno.

da uma olhadinha como ficou o meu código:

class.php
[codebox]
<?php
$banco = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("brasil", $banco) or die(mysql_error());

class conecta{
function seleciona_dados($tabela, $campo, $ordem){

if($ordem == "crescente"){
$ordenar = "ASC";
}
else{
$ordenar = "DESC";
};

$conexao = mysql_query("SELECT * FROM ".$tabela." ORDER BY '".$campo."' ".$ordenar) or die(mysql_error());

$dados = mysql_fetch_array($conexao);
return $dados;

}
}
?>
[/codebox]

index.php
[codebox]
<?php
require("modulos/classe.php");
$db_conecta = new conecta;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
while($dados = $db_conecta->seleciona_dados('cidade', 'id', 'decrescente')){
echo $dados['nome'];
}
?>
</body>
</html>
[/codebox]

Edição feita por: Carlos Maniero, 14/02/2010, 14:48.


#6 dddidan

dddidan

    Ativo

  • Usuários
  • 381 posts
  • Sexo:Masculino
  • Localidade:Taboão da Serra - SP

Posted 15/02/2010, 10:27

Ele fica em loop sem fim, exibindo apenas um resultado, exibindo varios resultados, ou só faz o loop e não mostra nada?
Mais vale um Dev C++ na mão do que dois codeblocks voando

PHP - ||||||||||||||| MySql - |||||||||||||||
C/C++ - ||||||||||||||| Oracle - |||||||||||||||
PERL - |||||||||||||||

#7 Carlos Maniero

Carlos Maniero

    Normal

  • Usuários
  • 72 posts
  • Sexo:Masculino

Posted 15/02/2010, 14:47

fica em loop sem fim exibindo apenas um resultado, só mostra a primeira cidade sem fim!

#8 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 16/02/2010, 21:31

@ CARLOS MINEIRO
Seguindo a mesma linha de pensamento do @ PAULO FREITAS ex @ PAULO RICARDO ex @ Paulo Freitas (o carinha que gosta de mudar de nick :D ), não basta apenas ler o manual, copiar códigos, adaptar, reescrever ou levar a linguagem pra cama (nerd pervertido :D ).

Você precisa começar do começo, precisa entender o que você está pedindo para a linguagem dizer ao computador. Olha só o exemplo em linguagem humana.

ENQUANTO ( $arrDados FOR_IGUAL_A NUMERO_DE_LINHAS_DO_MYSQL( $SQL ) )

Agora olha o que você mandou a linguagem dizer para a máquina
ENQUANTO( $arrDados FOR_IGUAL_A CONSULTA_E_SELECIONA_DADOS( 'cidade', 'id', 'decrescente' ) )

<?php while($dados = $db_conecta->seleciona_dados('cidade', 'id', 'decrescente')) ?>

Da forma como você escreveu a linguagem sempre irá realizar o loop e iniciar uma nova consulta na base de dados, muito me espanta não ter travado o computador...

Falopa!

#9 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 17/02/2010, 08:10

Mais não funciona de jeito nenhum, alias se eu colocar o whlie direto na classe funciona, mas o objetivo da classe é para q possa usar em diferentes situações e não em uma só.

A utilidade da "classe" não seria afetada por isto. Do jeito que foi feita daria na mesma de toda forma.

Alguem sabe o que há de errado com o meu código?

Sua função não tem ponteiro para ser usada como tal.

Tu não vai aprender o conceito de ponteiro da noite pro dia... Te garanto que a maioria aqui sequer faz noção do que é um ponteiro e como criar um. Eu mesmo após 5 anos aprendendo PHP não me garantiria muito, ainda que eu tenha uma noção exata do que deva ser feito... :blush:

Seu conceito de lógica e programação orientada a objeto precisa mudar para que tu comece a enxergar um ponteiro nisso tudo. Vou ter que recorrer inevitavelmente ao texto do Bryan Woods novamente: Programming is hard.

Tá, eu sei, não ajudei em nada. Aparentemente.

[]’sAté mais

#10 Carlos Maniero

Carlos Maniero

    Normal

  • Usuários
  • 72 posts
  • Sexo:Masculino

Posted 17/02/2010, 14:25

Paulo Freitas, se você não quiser ajudar eu não ligo mais vc ficar repetindo toda hora que para mim conseguir eu necessito estudar incessantemente o manual eu ja sei pra sua informação tudo o que eu aprendi até agora foi atravez do manual então não precisa ficar falando pra mim estudar.

se eu postei aqui é porque obtive dificuldade nos meus estudos, agora você fica falando toda hora que para chegar onde chegou precisou de 5 anos de estudos o que eu tenho a ver com isso, tenho 16 anos e a dois estudo php quando tiver a sua idade espero ter e acredito que vou ter bem mais abilidades com o php do que você só que espero nunca perder uma coisa, a humildade, por que o que adianta tanto estudo?
Pra ficar dizendo para os outros que estudou que é moderador de forum e coisa e tal?

De você eu vi muitas palavras e poucas atitudes!

Já que você não pode me ajudar tive que procurar ajuda em outro forum e o pessoal lá foi muito bacana comigo e de primeira entenderam minha dificuldade e me mostrara como fazer o que eu desejava, agora estou estudando muito isso, e o cara não precisou fica mandando eu estudar simplesmente me ajudou, agora EU vo estudar o código dele e tentar entender!

Quando ver meus tópicos no forum não precisa ajudar, OK?
Por que não preciso que ninguem me mande estudar pois isso ja faço por conta própria!

Pra quem quiser a solução:
http://forum.imaster.../383191-return/


Grato Carlos Maniero!

#11 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 17/02/2010, 15:16

Por estas e outras que não animo muito em TENTAR ENSINAR a galera...

@ CARLOS MANIACO
Tente entender que num fórum, o interesse é trocar conhecimento e não fazer um script e entregar pronto (isso eu faço no trabalho e ganho dinheiro em troca), o @ PAULO FREITAS é um usuário antigo que costuma ser modesto em dizer que sabe pouco mas muito pelo contrário, sabe pra baralho, não estou falando de PHP estou falando de programação, programador não é uma pessoa que entende uma unica linguagem, entende várias e principalmente como funcionam...

Acredite o que ele disse antes e depois é muito importante para seu futuro profissional.

Por mais que você ache que é mais fácil pegar uma classe pronta e estudá-la, ainda assim, é melhor criar a classe e entendê-la, documenta-la para que daqui uns 6 meses quando notar que ela está obsoleta você possa saber exatamente onde fazer a modificação certa para conseguir resultados melhores.

Vai por mim, pressa em ter algo pronto não gera resultado.

Falopa!

#12 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 17/02/2010, 15:37

Paulo Freitas, se você não quiser ajudar eu não ligo mais vc ficar repetindo toda hora que para mim conseguir eu necessito estudar incessantemente o manual eu ja sei pra sua informação tudo o que eu aprendi até agora foi atravez do manual então não precisa ficar falando pra mim estudar.

Estou lhe ajudando mais do que você imagina. Se eu sou repetitivo é porque você ignora o real aprendizado do manual. Simples assim. Você não quer aprender. Você quer que lhe dão a resposta primeiro. De mim você jamais vai conseguir isto.

se eu postei aqui é porque obtive dificuldade nos meus estudos, agora você fica falando toda hora que para chegar onde chegou precisou de 5 anos de estudos o que eu tenho a ver com isso, tenho 16 anos e a dois estudo php quando tiver a sua idade espero ter e acredito que vou ter bem mais abilidades com o php do que você só que espero nunca perder uma coisa, a humildade, por que o que adianta tanto estudo?
Pra ficar dizendo para os outros que estudou que é moderador de forum e coisa e tal?

Humildade é aquilo que lhe falta, mal agradecido. Eu te dei a resposta que você precisava: aprender ponteiros. Quer o código? Se você me pagar eu talvez dedique o meu precioso tempo para tal. Fechado? Eu cobro baratinho. :)

Se você estuda o PHP há 2 anos e ainda está com esta mentalidade, é tempo para desistir. Estou falando sério. Bryan Woods também.

Quanto a ser administrador (e não moderador) do fórum, pra mim isso é tão importante... Estou aqui porque gosto, não tenho esta mentalidade de adolescente que vê status onde não existe. E ainda por cima não ganho nada com isso. Só perco.

De você eu vi muitas palavras e poucas atitudes!

Essa é uma opinião tua que, creio eu, não é compartilhada pelos demais. Pelo menos até hoje em 6 anos de fórum eu nunca li uma bobagem dessa, muito pelo contrário, já fui agradecido por não dar a resposta em código. E bem, minha reputação ali do lado deve dizer alguma coisa. Se eu fosse de poucas atitudes estaria zerada. :)

Já que você não pode me ajudar tive que procurar ajuda em outro forum e o pessoal lá foi muito bacana comigo e de primeira entenderam minha dificuldade e me mostrara como fazer o que eu desejava, agora estou estudando muito isso, e o cara não precisou fica mandando eu estudar simplesmente me ajudou, agora EU vo estudar o código dele e tentar entender!

Eu não posso lhe ajudar? Eu disse pra você fazer exatamente o que te entregaram em código. Mas eu não sou hipócrita em entregar código feito para quem não demonstra o menor interesse naquilo que está fazendo e ainda debocha daqueles que querem ajudar intelectualmente.

Quando ver meus tópicos no forum não precisa ajudar, OK?

Nao, você felizmente não dita aquilo que eu devo ou não fazer.

Por que não preciso que ninguem me mande estudar pois isso ja faço por conta própria!

Se estudasse com afinco simplesmente não teria perguntado, pois já teria encontrado a resposta antes. Simples assim.

No mais, o que lhe falta é, acima de tudo, maturidade. Um dia tu vai saber o que é isso. Ao menos espero.

Por estas e outras que não animo muito em TENTAR ENSINAR a galera...

Liga não, quem sai perdendo nunca somos nós... Ainda que a própria pessoa não aproveite a resposta, haverá outra que aproveitará. Principalmente quando a pessoa é determinada e sabe buscar aquilo que almeja, que recorre à autocrítica como forma de aprimoramento. ;-)

[]’sAté mais

#13 Carlos Maniero

Carlos Maniero

    Normal

  • Usuários
  • 72 posts
  • Sexo:Masculino

Posted 17/02/2010, 16:10

Paulo, desculpe minha irritação é que eu tenho um modo diferente de aprender e bem particular.
Simplesmente quando tenho muita dificuldade em um especifico código procuro algo semi-pronto para tomar como padrão, e refaço pra atender as minhas necessidades.
Eu simplesmente fiqeui meio estressado pois realmente desejava o código pronto! e você me mandou ler o manual.

De qualquer forma é isso ae forum é um lugar de tirar as duvidas e não um lugar de insultos.
e se alguem tiver alguma duvida parecida pode estar pesquisando ai.

Mais volto a diser cada um tem um modo diferente de aprendizado as vezes o meu não é o mesmo que o seu, por exemplo atravez do meu estudo em cima desse script aprendi sobre funções Public, Protected e private. E consegui criar minha primeira classe!

de qualquer forma vamos esquecer esse mau entendido, ok?

#14 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 17/02/2010, 16:16

@ CARLOS MANIERO
Veja isso

atravez do meu estudo em cima desse script aprendi sobre funções Public, Protected e private. E consegui criar minha primeira classe!

Se você aprendeu sobre public, protected e private é porque você leu o manual e não porque pegou o código pronto :D , além disso (muito além eu diria) estes "extras" não fazem nem parte da solução do seu problema e nem muito menos do problema...

Falopa!

#15 Carlos Maniero

Carlos Maniero

    Normal

  • Usuários
  • 72 posts
  • Sexo:Masculino

Posted 17/02/2010, 16:23

a mais ja fiquei feliz por poder criar minha primeira classe aqui para envio de email(s)!!!!

sempre tive vontade de usar "->" em meus códigos só que nunca intendia para que servia!




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq