Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos. Comecei a pouco tempo um projeto pessoal de programação php orientada a objetos. Tenho um livro em casa do walace soares, no qual tentei inicialmente programar um versão de testes que ele disponibiliza no próprio livro, porém, não está funcionando de acordo. Vou postar aqui todo o código, se alguém pudesse me ajudar, retornando o código, com comentários nos locais onde está errado alguma coisa.
classbd.php
<?/* Classe - BD Propriedades bd -> tipo de banco de dados id -> identificador de conexão com o banco de dados operadores +bd() -> construtor +conecta() -> conecta o banco de dados desejado*/ class bd{ var $bd; var $id; function bd($sgbd="MySQL"){ $this->bd = $sgbd; } function conecta(){ $this->id = mysql_connect("localhost", "root", "root"); if($this->id){ mysql_select_db("carros", $this->id); } else{ $this->id=0; } } } class consulta{ var $bd; var $res; var $row; var $nrw; var $data; function consulta(&$bd){ $this->bd = $bd; } function executa($sql){ if($sql==""){ $this->res=0; $this->nrw=0; $this->row=1; } if($this->bd=="MySQL"){ $this->res = mysql_query($sql, $this->bd->id); $this->nrw = mysql_num_rows($this->res); } //$this->row = 0; if($this->nrw > 0){ $this->dados(); } function primeiro(){ $this->row = 0; $this->dados(); } function proximo(){ $this->row = ($this->row < ($this->nrw - 1)) ? ++ $this->row$this->nrw - 1); $this->dados(); } function anterior(){ $this->row = ($this->row > 0) ? --$this->row:0; $this->dados(); } function ultimo(){ $this->row = $this->nrw - 1; $this->dados(); } function navega($linha){ if($linha >= 0 and $linha < $this->nrw){ $this->row = $linha; $this->dados(); } } function dados(){ if($this->bd->bd == "MySQL"){ mysql_data_seek($this->res, $this->row); $this->data = mysql_fetch_array($this->res); } } } } ?>
lista_carros.php
<html><head><title>Lista de Carros</title><link rel="stylesheet" a href="carros.css"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><table width="760" border="0" align="center"> <tr> <td><table width="100%" border="0" align="center"> <tr> <td align="center" bgcolor="#CCCCCC"><span class="texto2">LISTA DE CARROS</span></td> </tr> <tr> <td>Informe abaixo os dados do seu carro ou clique <a href="carro.php?acao=L">AQUI</a> para ver a lista completa </td> </tr> </table> <form name="carro" action="carro.php" method="post"> <table width="100%" border="0" align="center"> <tr> <td width="33%"> </td> <td width="67%"> </td> </tr> <tr> <td>Proprietário:</td> <td><input name="proprietario" type="text" size="30" class="box"></td> </tr> <tr> <td>Marca:</td> <td><input name="marca" type="text" size="30" class="box"></td> </tr> <tr> <td>Modelo:</td> <td><input name="modelo" type="text" size="30" class="box"></td> </tr> <tr> <td>Cor:</td> <td><input name="cor" type="text" size="30" class="box"></td> </tr> <tr> <td>Opcionais:</td> <td><textarea name="opcionais" cols="30" rows="5" class="box_list"></textarea></td> </tr> <tr> <td>Ano de Fabricação:</td> <td> <input name="ano_fab" type="text" size="30" class="box"></td> </tr> <tr> <td>Ano Modelo:</td> <td><input name="ano_mod" type="text" size="30" class="box"></td> </tr> <tr> <td>Km Atual:</td> <td><input name="km_atual" type="text" size="30" class="box"></td> </tr> <tr> <td>Último Troca de Óleo:</td> <td><input name="troca_oleo" type="text" size="30" class="box"></td> </tr> <tr> <td height="26">Última Revisão:</td> <td><input name="revisao" type="text" size="30" class="box"></td> </tr> <tr> <td>Comentários</td> <td><textarea name="comentarios" cols="30" rows="5" class="box_list"></textarea></td> </tr> <tr> <td> </td> <td><input type="submit" name="enviar" value="OK"> <input type="reset" name="limpar" value="Limpar"> <input type="hidden" name="acao" value="I"> </td> </tr> </table> </form> </td> </tr></table></body></html>
classcarro.php
<?class carro{ var $acao; var $proprietario; var $marca; var $modelo; var $cor; var $opcionais; var $ano_fab; var $ano_mod; var $km_atual; var $troca_oleo; var $revisao; var $comentarios; function carro($acao){ $this->acao = $acao; $this->proprietario = ''; $this->marca = ''; $this->modelo = ''; $this->cor = ''; $this->opcionais = ''; $this->ano_fab = 0; $this->ano_mod = 0; $this->km_atual = 0; $this->troca_oleo = 0; $this->revisao = 0; $this->comentarios = ''; } function incluir($bd){ $sql = "INSERT INTO carros VALUES ("; $sql .= "'" . $this->proprietario . "',"; $sql .= "'" . $this->marca . "',"; $sql .= "'" . $this->modelo . "',"; $sql .= "'" . $this->cor . "',"; $sql .= "'" . $this->opcionais . "',"; $sql .= $this->ano_fab . ","; $sql .= $this->ano_mod . ","; $sql .= $this->km_atual . ","; $sql .= $this->troca_oleo . ","; $sql .= $this->revisao . ","; $sql .= "'" . $this->comentarios . "')"; $qry = new consulta($bd); $qry->executa($sql); } function listar($bd){ $sql = "SELECT * from carros ORDER BY proprietario"; $qry = new consulta($bd); $qry->executa($sql); //if($qry->nrw > 0){ echo "<table border=0 cellpading=0, cellspacing=3 width=660>"; echo " <tr bgcolor='#ffcc00'>"; echo " <td>Proprietário</td>"; echo " <td>Marca</td>"; echo " <td>Modelo</td>"; echo " <td>Cor</td>"; echo " <td>Ano Fabricação / Modelo</td>"; echo " <td>Última Troca Óleo</td>"; echo " <td>Km Atual</td>"; echo " <tr>"; for($i = 0; $i < $qry->nrw; $i++){ echo " <tr>"; echo " <td>" . $qry->data["proprietario"] . "</td>"; echo " <td>" . $qry->data["marca"] . "</td>"; echo " <td>" . $qry->data["modelo"] . "</td>"; echo " <td>" . $qry->data["cor"] . "</td>"; echo " <td>" . $qry->data["ano_fab"] . "/" . $qry->data["ano_mod"] . "</td>"; echo " <td>" . $qry->data["troca_oleo"] . "</td>"; echo " <td>" . $qry->data["km_atual"] . "</td>"; echo " </tr>"; $qry->proximo(); //} echo "</table>"; } //else{ // echo "<p><b>Nenhum Carro Cadastrado</b></p>"; //} }}?>
carro.php
<html><head><link rel="stylesheet" a href="carros.css"><title>Lista de Carros</title></head><body><table border="0" cellpadding="0" cellspacing="0" width="760"> <tr> <td width="100%" align="center" bgcolor="#FFCC00"><span class="texto2">Lista de Carros</span> </td> </tr> <tr> <td height="20"></td> </tr></table><? //if($acao == "" or empty($acao)){ // exit; //} $acao = $_GET["acao"]; //$acao = $_POST["acao"];" require("classbd.php"); require("classcarro.php"); $con = new bd(); $con->conecta(); $car = new carro($acao); $car->carro($acao); switch ($acao){ case 'I': $car->proprietario = $proprietario; $car->marca = $marca; $car->modelo = $modelo; $car->cor = $cor; $car->opcionais = $opcionais; $car->ano_fab = $ano_fab; $car->ano_mod = $ano_mod; $car->km_atual = $km_atual; $car->troca_oleo = $troca_oleo; $car->revisao = $revisao; $car->comentarios = $comentarios; $car->incluir($con); echo "Carro Incluído"; break; case 'L': $car->listar($con); }?></body></html>Carregando comentários...