
04/05/2012, 16:31
|
| | Fecha de Ingreso: julio-2011
Mensajes: 24
Antigüedad: 13 años, 8 meses Puntos: 0 | |
Respuesta: Problemas con php mysql [CODE]
Código:
<?php
class Conexion // se declara una clase para hacer la conexion con la base de datos
{
var $con;
function Conexion()
{
// se definen los datos del servidor de base de datos
$conection['server']="localhost"; //host
$conection['user']="root"; // usuario
$conection['pass']="root"; //password
$conection['base']="productos"; //base de datos
// crea la conexion pasandole el servidor , usuario y clave
$conect= mysql_pconnect($conection['server'],$conection['user'],$conection['pass']);
if ($conect) // si la conexion fue exitosa , selecciona la base
{
mysql_select_db($conection['base']);
$this->con=$conect;
}
}
function getConexion() // devuelve la conexion
{
return $this->con;
}
function Close() // cierra la conexion
{
mysql_close($this->con);
}
}
class sQuery // se declara una clase para poder ejecutar las consultas, esta clase llama a la clase anterior
{
var $pconeccion;
var $pconsulta;
var $resultados;
function sQuery() // constructor, solo crea una conexion usando la clase "Conexion"
{
$this->pconeccion= new Conexion();
}
function executeQuery($cons) // metodo que ejecuta una consulta y la guarda en el atributo $pconsulta
{
$this->pconsulta= mysql_query($cons,$this->pconeccion->getConexion());
return $this->pconsulta;
}
function getResults() // retorna la consulta en forma de result.
{return $this->pconsulta;}
function Close() // cierra la conexion
{$this->pconeccion->Close();}
function Clean() // libera la consulta
{mysql_free_result($this->pconsulta);}
function getResultados() // debuelve la cantidad de registros encontrados
{return mysql_affected_rows($this->pconeccion->getConexion()) ;}
function getAffect() // devuelve las cantidad de filas afectadas
{return mysql_affected_rows($this->pconeccion->getConexion()) ;}
}
class Cliente
{
var $nombre; //se declaran los atributos de la clase, que son los atributos del cliente
var $desc;
var $foto;
var $precio;
var $marca;
var $id;
function Cliente($nro=0) // declara el constructor, si trae el numero de cliente lo busca , si no, trae todos los clientes
{
if ($nro!=0)
{
$obj_cliente=new sQuery();
$result=$obj_cliente->executeQuery("select * from producto where id = $nro"); // ejecuta la consulta para traer al cliente
$row=mysql_fetch_array($result);
$this->id=$row['id'];
$this->nombre=$row['nombre'];
$this->desc=$row['desc'];
$this->foto=$row['foto'];
$this->precio=$row['precio'];
$this->marca=$row['marca'];
}
}
function getClientes() // este metodo podria no estar en esta clase, se incluye para simplificar el codigo, lo que hace es traer todos los clientes
{
$obj_cliente=new sQuery();
$result=$obj_cliente->executeQuery("select * from producto"); // ejecuta la consulta para traer al cliente
return $result; // retorna todos los clientes
}
// metodos que devuelven valores
function getID()
{ return $this->id;}
function getNombre()
{ return $this->nombre;}
function getDesc()
{ return $this->desc;}
function getFoto()
{ return $this->foto;}
function getPrecio()
{ return $this->precio;}
function getMarca()
{ return $this->marca;}
// metodos que setean los valores
function setNombre($val)
{ $this->nombre=$val;}
function setDesc($val)
{ $this->desc=$val;}
function setFoto($val)
{ $this->foto=$val;}
function setPrecio($val)
{ $this->precio=$val;}
function setMarca($val)
{ $this->marca=$val;}
function updateCliente() // actualiza el cliente cargado en los atributos
{
$obj_cliente=new sQuery();
$query="UPDATE producto SET nombre='$this->nombre', desc='$this->desc', foto='$this->foto', precio='$this->precio', marca='$this->marca' WHERE id=$this->id";
$obj_cliente->executeQuery($query); // ejecuta la consulta para traer al cliente
return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados
}
function insertCliente() // inserta el cliente cargado en los atributos
{
$obj_cliente=new sQuery();
$query="INSERT INTO producto (nombre, desc, foto, precio, marca) VALUES ('$this->nombre', '$this->desc', '$this->foto', '$this->precio', '$this->marca')";
$obj_cliente->executeQuery($query); // ejecuta la consulta para traer al cliente
return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados
}
function deleteCliente($val) // elimina el cliente
{
$obj_cliente=new sQuery();
$query="delete from producto where id=$val";
$obj_cliente->executeQuery($query); // ejecuta la consulta para borrar el cliente
return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados
}
}
$nombre="";
$desc="";
$foto="";
$cliente="";
$marca="";
$id="";
if (isset($_GET['md'])) // si la operacion es modificar, este valor viene seteado y ejecuta el siguiente codigo
{
$cliente=new Cliente($_GET['md']); // instancio la clase cliente pasandole el nro de cliente, de esta forma lo busca
$nombre=$cliente->getNombre(); // obtengo el nombre
$desc=$cliente->getDesc(); // obtengo el apellido
$foto=$cliente->getFoto(); // obtengo la fecha de nacimiento
$precio=$cliente->getPrecio();
$marca=$cliente->getMarca(); // obtengo su peso
$id=$cliente->getID(); // obtengo el id
}
?>
<div >
<form method="POST" action="index.php">
<input type="hidden" name="id" value="<?php print $id ?>">
<table border=1>
<tr>
<td>Nombre</td>
<td><input type="text" name="nombre" value = "<?php print $nombre ?>"></td>
</tr>
<tr>
<td>Descripcion</td>
<td><label for="desc"></label>
<textarea name="desc" cols="40" id="desc"><?php print $desc ?></textarea></td>
</tr>
<tr>
<td>Foto</td>
<td><input type="text" name="foto" value = "<?php print $foto ?>">'yyyy-mm-dd'</td>
</tr>
<tr>
<td>Precio</td>
<td><input type="text" name="precio" value = "<?php print $precio ?>">
formato: XXX.XXasda</td>
</tr>
<tr>
<td>Marca</td>
<td><input type="text" name="marca"value = "<?php print $marca ?>"></td>
</tr>
<tr>
<td></td>
<td align =right><input type="submit" name="submit" value ="<?php if(is_numeric($id)) print "Modificar"; else print "Ingresar";?>"></td>
</tr>
</table>
</form>
</div>
<?php
if (isset($_POST['submit'])&&!is_numeric($_POST['id'])) // si presiono el boton ingresar
{
$cliente=new Cliente();
//print_r($_POST);
$cliente->setNombre($_POST['nombre']); // setea los datos
$cliente->setDesc($_POST['desc']);
$cliente->setFoto($_POST['foto']);
$cliente->setPrecio($_POST['precio']);
$cliente->setMarca($_POST['marca']);
print " Consulta ejecutada: ". $cliente->insertCliente(); // inserta y muestra el resultado
}
if (isset($_POST['submit'])&&is_numeric($_POST['id'])) // si presiono el boton y es modificar
{
$cliente=new Cliente($_POST['id']); // instancio la clase pasandole el nro de cliente para cargar los datos
$cliente->setNombre($_POST['nombre']); // setea los datos nuevos
$cliente->setDesc($_POST['desc']);
$cliente->setFoto($_POST['foto']);
$cliente->setPrecio($_POST['precio']);
$cliente->setMarca($_POST['marca']);
print " Consulta ejecutada: ". $cliente->updateCliente(); // inserta y muestra el resultado
}
if (isset($_GET['br'])&&is_numeric($_GET['br'])) // si presiono el boton y es eliminar
{
$cliente=new Cliente();
print " Consulta ejecutada: ". $cliente->deleteCliente($_GET['br']); // elimina el cliente y muestra el resultado
}
$cliente=new Cliente();
$clientes= $cliente->getClientes(); // obtiene todos los clientes para despues mostrarlos
print '<br/><br/><table border=1>'
.'<tr><td>Nombre:</td>'
.'<td>Descripcion:</td>'
.'<td>Foto</td>'
.'<td>Precio</td>'
.'<td>Marca</td>'
.'<td>Modificar</td>'
.'<td>Borrar</td></tr>';
while ($row=mysql_fetch_Array($clientes)) // recorre los clientes uno por uno hasta el fin de la tabla
{
print '<tr>'
.'<td>'.$row['nombre'] .'</td>'
.'<td>'.$row['desc'] .'</td>'
.'<td>'.$row['foto'] .'</td>'
.'<td>'.$row['precio'] .'</td>'
.'<td>'.$row['marca'] .'</td>'
'<td><a href="index.php?md='.$row['id'].'">Modificar</a></td>' // en este ejemplo para simplificar se envian los parametros por get utilizando un href
.'<td><a href="index.php?br='.$row['id'].'">Borrar</a></td>' // lo correcto seria enviarlos por post con un submit por ejem.
.'</tr>';
}
print '</table>';
?>
.
Última edición por aletutuca; 04/05/2012 a las 16:38 |