PHP Básico - Clase 6

Posteado el 02. Nov, 2013 por in Php, PHP

En esta clase realizaremos modificaciones en nuestra página frontal del blog y agregaremos comentarios a nuestros posts por lo que agregaremos una pagina de detalle de nuestros posts.

Descargar Código

Primero iniciaremos cambiando nuestro blog frontal modificaremos el index.php para que despliegue las imágenes que se han subido dentro del administrador de posts, además crearemos dos páginas post.php y comentarios_save.php con las que tendremos una página especial para desplegar los detalles de nuestro post y sus comentarios, aquí pondremos también el formulario de comentarios con el que guardaremos nuestros comentarios anidados al post en nuestra nueva tabla posts_comentarios.

En la base de datos crearemos la tabla posts_comentarios con el siguiente script:

CREATE TABLE IF NOT EXISTS `posts_comentarios` (
  `int` bigint(20) NOT NULL AUTO_INCREMENT,
  `post_id` bigint(20) NOT NULL,
  `usuario_id` bigint(20) NOT NULL,
  `comentario` text NOT NULL,
  `fecha_crea` datetime NOT NULL,
  `estatus` char(1) NOT NULL DEFAULT 'A',
  PRIMARY KEY (`int`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Esto nos creará la tabla en nuestra base de datos, para correr el script recuerden entrar a phpmyadmin y seleccionar su base de datos, dentro de esta parte seleccionen SQL y ahi peguen el script para crear la tabla.

Luego de esto modificaremos el index.php para que quede de la siguiente manera:

<?php
//Este archivo contendrá todo lo relacionado a la conexion de la base de datos;
include_once('includes/constantes.php');
 
$con = mysql_connect(BD_SERVIDOR,BD_USUARIO,BD_PASSWORD,BD_BASE);
mysql_select_db(BD_BASE);
$query = "SELECT id, fecha_publica, usuario_id, titulo, contenido FROM posts WHERE estatus = 'P'";
$res = mysql_query($query);
 
function getImages($id)
{
 
	$mysql_host 	= '127.0.0.1';
	$mysql_user 	= 'root';
	$mysql_password = '';
	$mysql_base 	= 'curso_php';
 
	$con2 = mysql_connect($mysql_host,$mysql_user,$mysql_password);
	mysql_select_db($mysql_base);
	$query2 = "SELECT * FROM multimedia WHERE post_id = '$id'";
	$res2 = mysql_query($query2);
 
	return $res2;
 
}
?>
<html>
	<head>
		<title>El blog de Frisley</title>
 
		<link rel="stylesheet" href="css/bootstrap-theme.min.css" type="text/css" media="all" />
		<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css" media="all" />
		<link rel="stylesheet" href="default.css">
 
		<script src="js/jquery-2.0.3.min.js"></script>
		<script src="js/jquery-migrate-1.2.1.min.js"></script>
		<script src="js/bootstrap.min.js"></script>
	</head>
	<body>
 
	<!-- Static navbar -->
    <div class="navbar navbar-default navbar-static-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="index.php">Mi blog</a>
        </div>
        <div class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li><a href="admin/index.php">Administracion</a></li>
          </ul>
 
          <ul class="nav navbar-nav navbar-right">
            <li><a href="">Iniciar Sesion</a></li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </div>
 
	<div class="container">
 
		<div class="panel panel-default">
		  <div class="panel-heading">Pensamientos de mi cabeza</div>
		  <div class="panel-body">
		    <?php while($row = mysql_fetch_assoc($res)){ ?>
			<div>
				<h3><a href="post.php?id=<?php echo $row['id']; ?>"><?php echo $row['titulo'];?></a></h3>
				<div>
					<?php 
					$images = getImages($row['id']);
					while($img = mysql_fetch_assoc($images)){ ?>
					<img src="<?php echo $img['archivo']; ?>" width="150"/>
					<?php } ?>
				</div>
				<p><?php echo $row['contenido'];?></p>
				<hr />
			</div>
			<?php } ?>
		  </div>
		</div>
 
	</div>
	</body>
</html>
<?php
 
mysql_close($con);
 
?>

En este código se modifico el loop donde desplegamos nuestro post para agregar un link al titulo que direcciona a nuestra nueva página post.php donde desplegaremos los detalles del post, además se agrego un subloop que despliega las imagenes que estén incluidas en el post y también agregamos una función llamada getImages() que va a traer las imagenes del post y las regresa para poder desplegarlas.

Luego crearemos un nuevo archivo llamado post.php donde desplegaremos la info de nuestro post enviandole el id del mismo, copiaremos el código de index.php y lo usaremos como base para modificarlo que en lugar de desplegar todos los posts solo despliege el que le estamos enviando.

Agregaremos una función más llamada getComentarios() la que nos permitirá ir a traer todos los comentarios de nuestro post, esta función busca en la base de datos en la tabla recien creada los comentarios del post y regresa los resultados para que puedan ser usados en la página en un subloop; esto además de la ya creada getImagenes() que nos trae las imagenes del post.

<?php
session_start();
//Este archivo contendrá todo lo relacionado a la conexion de la base de datos;
include_once('includes/constantes.php');
 
$theid = $_GET['id'];
 
$con = mysql_connect(BD_SERVIDOR,BD_USUARIO,BD_PASSWORD,BD_BASE);
mysql_select_db(BD_BASE);
$query = "SELECT id, fecha_publica, usuario_id, titulo, contenido FROM posts WHERE id = '$theid'";
$res = mysql_query($query);
 
function getImages($id)
{
 
	$mysql_host 	= '127.0.0.1';
	$mysql_user 	= 'root';
	$mysql_password = '';
	$mysql_base 	= 'curso_php';
 
	$con2 = mysql_connect($mysql_host,$mysql_user,$mysql_password);
	mysql_select_db($mysql_base);
	$query2 = "SELECT * FROM multimedia WHERE post_id = '$id'";
	$res2 = mysql_query($query2);
 
	return $res2;
 
}
 
function getComentarios($id)
{
 
	$mysql_host 	= '127.0.0.1';
	$mysql_user 	= 'root';
	$mysql_password = '';
	$mysql_base 	= 'curso_php';
 
	$con2 = mysql_connect($mysql_host,$mysql_user,$mysql_password);
	mysql_select_db($mysql_base);
	$query2 = "SELECT * FROM posts_comentarios WHERE post_id = '$id'";
	$res2 = mysql_query($query2);
 
	return $res2;
 
}
?>
<html>
	<head>
		<title>El blog de Frisley</title>
 
		<link rel="stylesheet" href="css/bootstrap-theme.min.css" type="text/css" media="all" />
		<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css" media="all" />
		<link rel="stylesheet" href="default.css">
 
		<script src="js/jquery-2.0.3.min.js"></script>
		<script src="js/jquery-migrate-1.2.1.min.js"></script>
		<script src="js/bootstrap.min.js"></script>
	</head>
	<body>
 
	<!-- Static navbar -->
    <div class="navbar navbar-default navbar-static-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="index.php">Mi blog</a>
        </div>
        <div class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li><a href="admin/index.php">Administracion</a></li>
          </ul>
 
          <ul class="nav navbar-nav navbar-right">
            <li><a href="">Iniciar Sesion</a></li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </div>
 
	<div class="container">
 
		<div class="panel panel-default">
		  <div class="panel-heading">Pensamientos de mi cabeza</div>
		  <div class="panel-body">
		    <?php while($row = mysql_fetch_assoc($res)){ ?>
			<div>
				<h3><a href="post.php?id=<?php echo $row['id']; ?>"><?php echo $row['titulo'];?></a></h3>
				<div>
					<?php 
					$images = getImages($row['id']);
					while($img = mysql_fetch_assoc($images)){ ?>
					<img src="<?php echo $img['archivo']; ?>"/>
					<?php } ?>
				</div>
				<p><?php echo $row['contenido'];?></p>
				<hr />
			</div>
 
			<div style="background-color: #f0f0f0; padding: 10px; ">
				<h3>Comentarios</h3>
				<form action="comentarios_save.php" method="post">
					<?php if(isset($_SESSION['id']) && $_SESSION['id'] != ''){ ?>
					<input type="hidden" name="usuario" value="<?php echo $_SESSION['id']; ?>">
					<?php }else{ ?>
					<input type="hidden" name="usuario" value="1">
					<?php } ?>
					<input type="hidden" name="post" value="<?php echo $row['id']; ?>">
					<textarea name="comentario"></textarea><br/>
					<button type="submit">Comentar</button>
 
				</form>
				<div>
					<?php 
					$comentarios = getComentarios($row['id']);
					while($com = mysql_fetch_assoc($comentarios)){ 
						echo '<div style="padding: 10px; border-bottom: 1px solid #e0e0e0; ">';
 
						echo $com['comentario'].'<br/><br/>';
						echo $com['fecha_crea'].' - ';
						echo $com['usuario_id'];
						echo '</div>';
					} ?>
				</div>
			</div>
			<?php } ?>
 
		  </div>
		</div>
 
	</div>
	</body>
</html>
<?php
 
mysql_close($con);
 
?>

Ya con esto modificado crearemos la pagina comentarios_save.php con la que guardaremos los comentarios en nuestra tabla.

<?php 
	$mysql_host 	= '127.0.0.1';
	$mysql_user 	= 'root';
	$mysql_password = '';
	$mysql_base 	= 'curso_php';
 
	$con = mysql_connect($mysql_host,$mysql_user,$mysql_password);
	mysql_select_db($mysql_base);
 
	$usuario 	= $_POST['usuario'];
	$post 	= $_POST['post'];
	$comentario	= $_POST['comentario'];
	$estatus 	= 'A';
	$fecha_crea = date('Y-m-d H:i:s');
 
	//INSERTAR POST
	$query = "INSERT INTO posts_comentarios 
		(post_id,usuario_id,comentario, fecha_crea, estatus) 
		VALUES ('$post','$usuario','$comentario','$fecha_crea','$estatus')";
 
	$res = mysql_query($query);
	mysql_close($con);
 
	header('location: post.php?id='.$post);
 
?>

Esto nos permitirá ya crear los comentarios y guardarlos en nuestra base de datos.


Tags:

Una respuesta para “PHP Básico - Clase 6”

  1. Bitacoras.com

    02. Nov, 2013

    Información Bitacoras.com

    Valora en Bitacoras.com: En esta clase realizaremos modificaciones en nuestra página frontal del blog y agregaremos comentarios a nuestros posts por lo que agregaremos una pagina de detalle de nuestros posts. Descargar Código Primero iniciaremos ca…

Deja tu Comentario

Tutoriales en la web se reserva el derecho de moderación de los comentarios. Evita por favor utilizar palabras soeces, ataques directos e insultos, de lo contrario tu comentario será eliminado.

Hire PHP Developer India
Get Adobe Flash player