Hola estimads, queria hacerles una preguntita, stoy trabajando en un sistema de avisos simple, el usuario ingresa a un formulario, publica el aviso, estos se muestran en una pagina de resultados (solo algunos datos de los avisos), y tengoun enlace que debe llevarme a una pagina "detalle" de ese aviso y mostrarme todo el contenido.
Estoy trabajando con PDO, recien estoy comenzando con esta tecnica, hasta ahora mi crud resulta bien: puedo crear avisos, se almacenan bien en la bd, puedo actualizar pero no me puedo plantear bien el tema de mstrar el detalle. vi algunos ejemplos aca en la apgina y a algo llegue, pero si borro el aprametro desde el borowser deja de funcionar todo. Les dejo algo de codigo a ver si me pueden ayudar un poco...Saludos a todos
Codigo Pagina de Resultados:
Código PHP:
<?php
require ('crud/conexionDB.php');
require ('crud/funcionesCrud.php');
$modelo= new Operaciones;
$modelo->select='*';
$modelo->from='avisos';
/*$modelo->condition='cod_aviso=1';*/
$modelo->Seleccionar();
$filas=$modelo->rows;
$total_avisos=count($filas);
?>
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">
</head>
<body>
<!--Contenedor Principal-->
<div class="container">
<div id="filtro">
<strong>Filtrar por Fecha de Publicación:</strong>
<strong>Filtrar por Categoria de Aviso:</strong>
<strong>Filtrar por Comuna:</strong>
</div>
<div id="buscador">
<strong>Buscar Aviso:</strong>
<form>
<label for="busca">Buscar:</label>
<input type="text" name="busca" placeholder="Buscar Aviso"/>
<input type="submit" name="buscar" value="Buscar"/>
</form>
</div>
<div id="resultados">
<h1>Avisos Publicados</h1>
<!--Mostramos el Total de Avisos Publiados-->
<strong>Tenemos: <?php echo $total_avisos; ?> Avisos Publicados</strong><br>
<!--Mostramos los avisos-->
<div class="row">
<?php
foreach($filas as $fila)
{
echo"<article id='aviso' class='col-lg-4'>";
//Imagen
echo "<p>".$fila['cod_aviso']."</p>";
echo "Comuna:" .$fila['comuna']."<br>";
echo "Categoria:" .$fila['categoria_aviso']."<br>";
echo "valor:" .$fila['valor_producto']."<br>";
echo "Aviso:" .$fila['aviso']."<br>";
echo "Nombre:" .$fila['nombre']."<br>";
echo "Telefono Celular:" .$fila['tel_celular']."<br>";
echo "Telefono Fijo:" .$fila['tel_fijo']."<br>";
echo "Email:" .$fila['correo_electronico']."<br>";
echo "Direccion :" .$fila['direccion']."<br>";
//Boton para ir a Detalle de Aviso
echo "<a href='detalleaviso.php?cod_aviso=".$fila['cod_aviso']."'>Ver Aviso</a>";
echo"</article>";
}
?>
</div><!--row-->
</div>
</div><!--Contenedor Principal-->
</body>
</html>
Si en la url escribo por ejempo : http://localhost:8080/sist_avisos/detalleaviso.php?cod_aviso=2, me muestra perfecto todo lo del aviso con codigo 2, pero si coloco por ejempo cod_aviso=20, muestra errores ya que no existe ese registro.
Este es el codigo de la pagina "detalle":
Código PHP:
<?php
/**
* @author: Nicolás Ezequiel Almonacid
* @category: Script
* @copyright: @nicoalmonacid - www.nicolasalmonacid.com
*/
require ('crud/conexionDB.php');
require ('crud/funcionesCrud.php');
if($_REQUEST['cod_aviso'])
{
$cod_aviso= ($_REQUEST['cod_aviso']);
$modelo= new Operaciones;
$modelo->select='*';
$modelo->from='avisos';
$modelo->condition= "cod_aviso=$cod_aviso";
$modelo->Seleccionar();
$filas=$modelo->rows;
foreach($filas as $fila)
{
$cod_aviso=$fila['cod_aviso'];
$comuna=$fila['comuna'];
$titulo_aviso=$fila['titulo_aviso'];
$categoria_aviso=$fila['categoria_aviso'];
$valor_producto=$fila['valor_producto'];
$aviso=$fila['aviso'];
$nombre=$fila['nombre'];
$tel_celular=$fila['tel_celular'];
$tel_fijo=$fila['tel_fijo'];
$correo_electronico=$fila['correo_electronico'];
$direccion=$fila['direccion'];
}
}
?>
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title></title>
<meta name="description" content="">
<!--<meta name="viewport" content="width=device-width, initial-scale=1">-->
<link rel="stylesheet" href="css/normalize.min.css">
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/main.css">
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
</head>
<body>
<!--Contenedor Principal-->
<div class="container">
<h1>Avisos Clasificados de CHILOE AVISOS</h1>
<div id="resultados">
<h1>Avisos Publicados</h1>
<!--Mostramos los avisos-->
<div class="row">
<?php
echo"<div id='fullaviso' class='col-lg-4'>";
echo "Codigo Aviso:" .$fila['cod_aviso']."<br>";
echo "Comuna:" .$fila['comuna']."<br>";
echo "Categoria:" .$fila['categoria_aviso']."<br>";
echo "valor:" .$fila['valor_producto']."<br>";
echo "Aviso:" .$fila['aviso']."<br>";
echo "Nombre:" .$fila['nombre']."<br>";
echo "Telefono Celular:" .$fila['tel_celular']."<br>";
echo "Telefono Fijo:" .$fila['tel_fijo']."<br>";
echo "Email:" .$fila['correo_electronico']."<br>";
echo "Direccion :" .$fila['direccion']."<br>";
echo"</div>";
?>
</div><!--row-->
</div>
</div><!--Contenedor Principal-->
</body>
</html>
y el archivo del crud (hasta ahora)
Código PHP:
<?php
/**
*
*/
class Operaciones{
//Inserción de Datos
public $insertInto;
public $insertColumns;
public $insertValues;
public $mensaje;
//Select de Registros
public $select;
public $from;
public $condition;
public $rows;
//Actualizacion
public $update;
public $set;
//Metodo para la Insercion de Registros
public function Insertar()
{
//Creamos la conexion
$modelo= new ConexionDB;
//llamamos al meotdo conectar
$conexion =$modelo->conectar();
//Parametrizamos las variables
$insertInto=$this->insertInto;
$insertColumns=$this->insertColumns;
$insertValues=$this->insertValues;
//
$sql="INSERT INTO $insertInto ($insertColumns) VALUES($insertValues)";
//Preparamos la Consulta
$consulta= $conexion->prepare($sql);
//Comprobamos si existe algun error
if(!$consulta) {
//Si existe algun error
$this->mensaje="No se pudo Publicar El mensaje, contacte con el Administrador de la Plataforma";
}else{
//si no hay error ejecutamos la consulta
$consulta->execute();
$this->mensaje="Aviso Publicado con Exito..CLICK AQUI PARA VISUALIZARLO";
}
}// Fin Insertar
//Seleccionar
public function Seleccionar()
{
$modelo= new ConexionDB;
$conexion= $modelo->conectar();
$select= $this->select;
$from= $this->from;
$condition= $this->condition;
if($condition != ''){
$condition = " WHERE " . $condition;
}
$sql= "SELECT $select FROM $from $condition";
//preparamos la consulta
$consulta=$conexion->prepare($sql);
$consulta->execute();
//Recorremos todos los registros con un bucle
while($filas = $consulta->fetch())
{
$this->rows[] = $filas;
}
}//Fin Seleccionar
public function Actualizar()
{
$modelo = new ConexionDB;
$conexion = $modelo->conectar();
$update = $this->update;
$set = $this->set;
$condition = $this->condition;
if($condition != ''){
$condition = " WHERE " . $condition;
}
$sql="UPDATE $update SET $set $condition";
$consulta= $conexion->prepare($sql);
if($consulta){
$this->mensaje="Error al Actualizar el Aviso...Contacte con el Administrador";
}else{
$consulta->execute();
$this->mensaje="Aviso actualizado con Exito";
}
}//fin actualizar
}//Fin clase
?>
Agradesco a todos su ayuda...