Orientação De Objetos
#1
Posted 13/02/2010, 02:15
[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?
#3
Posted 13/02/2010, 13:10
ficaria muito grato!
#4
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/returnPS: 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
Posted 14/02/2010, 14:44
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
Posted 15/02/2010, 10:27
PHP - ||||||||||||||| MySql - |||||||||||||||
C/C++ - ||||||||||||||| Oracle - |||||||||||||||
PERL - |||||||||||||||
#7
Posted 15/02/2010, 14:47
#8
Posted 16/02/2010, 21:31
Seguindo a mesma linha de pensamento do @ PAULO FREITAS ex @ PAULO RICARDO ex @ Paulo Freitas (o carinha que gosta de mudar de nick ), não basta apenas ler o manual, copiar códigos, adaptar, reescrever ou levar a linguagem pra cama (nerd pervertido ).
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
Posted 17/02/2010, 08:10
A utilidade da "classe" não seria afetada por isto. Do jeito que foi feita daria na mesma de toda forma.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ó.
Sua função não tem ponteiro para ser usada como tal.Alguem sabe o que há de errado com o meu código?
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...
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
Posted 17/02/2010, 14:25
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
Posted 17/02/2010, 15:16
@ 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
Posted 17/02/2010, 15:37
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.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.
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 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?
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.
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.De você eu vi muitas palavras e poucas atitudes!
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.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!
Nao, você felizmente não dita aquilo que eu devo ou não fazer.Quando ver meus tópicos no forum não precisa ajudar, OK?
Se estudasse com afinco simplesmente não teria perguntado, pois já teria encontrado a resposta antes. Simples assim.Por que não preciso que ninguem me mande estudar pois isso ja faço por conta própria!
No mais, o que lhe falta é, acima de tudo, maturidade. Um dia tu vai saber o que é isso. Ao menos espero.
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.Por estas e outras que não animo muito em TENTAR ENSINAR a galera...
[]’sAté mais
#13
Posted 17/02/2010, 16:10
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
Posted 17/02/2010, 16:16
Veja isso
Se você aprendeu sobre public, protected e private é porque você leu o manual e não porque pegou o código pronto , 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...atravez do meu estudo em cima desse script aprendi sobre funções Public, Protected e private. E consegui criar minha primeira classe!
Falopa!
#15
Posted 17/02/2010, 16:23
sempre tive vontade de usar "->" em meus códigos só que nunca intendia para que servia!
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)