Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] ¿Como hacer una página de impresión de entradas?

Estas en el tema de ¿Como hacer una página de impresión de entradas? en el foro de PHP en Foros del Web. Hola, antes tenía una duda respecto a otros aspectos de este CMS que estoy creando. La que tengo ahora es ¿como hago un articulo? ._. ...
  #1 (permalink)  
Antiguo 02/01/2014, 19:21
 
Fecha de Ingreso: mayo-2013
Ubicación: Cúcuta
Mensajes: 98
Antigüedad: 11 años, 6 meses
Puntos: 2
¿Como hacer una página de impresión de entradas?

Hola, antes tenía una duda respecto a otros aspectos de este CMS que estoy creando. La que tengo ahora es ¿como hago un articulo? ._. Creo que obviaron ese pequeño punto en el editorial de Maestros del web

Quiero crear la página ver.php la cual se modificará de acuerdo a la URL pero ¿como hago esto? Intento hacerlo pero me imprime todo lo de la tabla ¿como imprimo solo determinada row determinada por el id?

Graciaaaaas.
  #2 (permalink)  
Antiguo 02/01/2014, 19:38
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: ¿Como hacer una página de impresión de entradas?

Si te entendí bien, lo que quieres hacer es filtrar los resultados de un búsqueda en la BD en base a un dato dado. La sentencia sería así:

Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE campo = dato

De acuerdo a ese filtro, solamente se mostrarán los datos que correspondan al dato indicado.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 02/01/2014, 21:53
 
Fecha de Ingreso: mayo-2013
Ubicación: Cúcuta
Mensajes: 98
Antigüedad: 11 años, 6 meses
Puntos: 2
Respuesta: ¿Como hacer una página de impresión de entradas?

Cita:
Iniciado por Alexis88 Ver Mensaje
Si te entendí bien, lo que quieres hacer es filtrar los resultados de un búsqueda en la BD en base a un dato dado. La sentencia sería así:

Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE campo = dato

De acuerdo a ese filtro, solamente se mostrarán los datos que correspondan al dato indicado.

Saludos
No entiendo bien, ¿tendría que hacer un query por cada cosa? ¿Un query para el titulo, articulo, keywords, tags etc? Este es el [URL="http://www.maestrosdelweb.com/editorial/phpcms1/"]enlace[/URL] que estoy usando como base pero no dicen nada acerca del "ver.php" ¿No hay una manera más práctica de hacer esto? Gracias x_x
  #4 (permalink)  
Antiguo 02/01/2014, 22:42
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: ¿Como hacer una página de impresión de entradas?

La idea es que, en cada enlace, envíes un valor que será el que se utilizará como filtro en la consulta. Por ejemplo, supongamos que tenemos estos 3 enlaces:

Código HTML:
Ver original
  1. <a href = "resultados.php?dato=1">Resultados 1</a>
  2. <a href = "resultados.php?dato=2">Resultados 2</a>
  3. <a href = "resultados.php?dato=3">Resultados 3</a>

Mientras que en el archivo resultados.php, tenemos el siguiente código:

Código PHP:
Ver original
  1. $conexion = new mysqli ("servidor", "usuario", "password", "bd"); //Conexión a la BD
  2.  
  3. //Si no se logra establecer la conexión, finalizamos el script
  4. if ($conexion->connect_error)
  5.   exit ("No se ha podido realizar la conexión");
  6.  
  7. //Si todo va bien con la conexión, proseguimos
  8. $dato = $_GET["dato"]; //El dato recibido
  9.  
  10. //La consulta
  11. $consulta = $conexion->query(sprintf("SELECT * FROM tabla WHERE id = %d", $dato));
  12.  
  13. //Si obtenemos resultados de la consulta
  14. if ($consulta->num_rows) {
  15.   //Creamos un array asociativo con los resultados de la consulta
  16.   $array = $consulta->fetch_array();
  17.  
  18.   //Y procedemos a imprimirlos, inventaré nombres de campos en la tabla de la BD
  19.   echo "Nombre: " . $array["nombre"] . "<br />";
  20.   echo "Edad: " . $array["edad"] . "<br />";
  21.   echo "Teléfono: " . $array["telefono"] . "<br />";
  22.  
  23.   //Liberamos a la memoria de los resultados de la consulta
  24.   $consulta->free();
  25. }
  26. else //Si la consulta no arrojó resultados
  27.   echo "No se encontraron datos en la consulta";
  28.  
  29. $conexion->close(); //Cerramos la conexión a la BD

Eso es básicamente lo que se realizaría en una consulta de datos de alguien o algo en particular en una tabla que se encuentre en la base de datos, por ejemplo, los datos de una persona en una tabla de usuarios.

Como verás, el array asociativo te permite imprimir los resultados correspondientes a cada campo en la tabla de la BD, por lo que si tiene 5 campos, bien puedes imprimir los datos de los 5 campos o menos, pero también podrías restringir la consulta cambiando el asterisco por los nombres de los campos:

Código MySQL:
Ver original
  1. SELECT campo1, campo2, campo3 FROM tabla WHERE condición

Analiza y adecua esto a tu código. Saludos.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 02/01/2014, 23:11
 
Fecha de Ingreso: mayo-2013
Ubicación: Cúcuta
Mensajes: 98
Antigüedad: 11 años, 6 meses
Puntos: 2
Respuesta: ¿Como hacer una página de impresión de entradas?

¿De donde obtendré por GET ese valor si no estoy procesando un formulario? Se supone que el contenido de la página debe modificarse de acuerdo al id que se encuentra en la URL. Por ejemplo, la página "...ver.php?id_2" debería contener los valores que contiene la fila que tiene por "id" el número 2 ¿sí me hago entender?

No estoy usando la extensión mysqli sino MySQL, ¿tendrá esto que ver en la programación de los querys?

Tal vez esté muy idiota por ser medianoche pero no logro entender la solución que me das x_x
  #6 (permalink)  
Antiguo 02/01/2014, 23:36
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: ¿Como hacer una página de impresión de entradas?

No necesariamente tienes que enviar los datos a través de un formulario. Si te fijas bien en el código que puse en la respuesta anterior, a cada enlace le concateno una variable con un valor, ese es el valor que llegará a través del método GET hasta el archivo PHP.

Código HTML:
Ver original
  1. <a href = "resultados.php?dato=1">Resultados 1</a>
  2. <a href = "resultados.php?dato=2">Resultados 2</a>
  3. <a href = "resultados.php?dato=3">Resultados 3</a>

Eso valores pueden ser sustituidos por los valores que arroje una consulta, por ejemplo:

Código PHP:
Ver original
  1. <?php
  2. $consulta = mysql_query("SELECT * FROM tabla");
  3.  
  4. if (mysql_num_rows($consulta) {
  5.   while ($array = mysql_fetch_array($consulta)) {
  6. ?>
  7.     <a href = "ver.php?dato=<?=$array["id"]?>"> Enlace <?=$array["id"]?> </a>
  8. <?php
  9.   }
  10. }
  11. ?>

De este modo, generas una determinada cantidad de enlaces, en donde a cada uno le asigno una variable "dato" con un valor que corresponderá al valor del campo "id" en la tabla de la base de datos, que será distinto en cada registro. Ese valor es el que recibirás a través de $_GET["dato"] en el archivo PHP.

No es necesario que uses la extensión Mysqli, puedes seguir usando la extensión Mysql, pero te recomiendo que en la brevedad empieces a utilizar Mysqli.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 02/01/2014, 23:55
 
Fecha de Ingreso: mayo-2013
Ubicación: Cúcuta
Mensajes: 98
Antigüedad: 11 años, 6 meses
Puntos: 2
Respuesta: ¿Como hacer una página de impresión de entradas?

Sí, eso lo entiendo. Mira, tengo este código

Código PHP:
<?php echo '<a href="ver.php?id_'.$row['id_noticia'].'" class="pull-right">Leer más &raquo;</a>' ?>
Así que el enlace quedará como "xxx/ver.php?id2" por ejemplo. Ahí bien, ahora... Mi problema surge en que no puedo tomar el valor del id que está en la URL. Intento con el "$id = $_GET['id']" pero me dice que la variable está vacía :s
  #8 (permalink)  
Antiguo 03/01/2014, 00:00
 
Fecha de Ingreso: mayo-2013
Ubicación: Cúcuta
Mensajes: 98
Antigüedad: 11 años, 6 meses
Puntos: 2
Respuesta: ¿Como hacer una página de impresión de entradas?

Disculpa, se solucionó lo de la variable vacía cambiando el "_" de la concatenación por un "=".

Ahora, hice este query pero me da error

Código PHP:
$resultado mysql_query("SELECT * FROM noticias WHERE id_notica = '$id'"$connect) or die('Error obteniendo articulos desde MySQL'); 
¿Alguna idea de que habrá que hacer?
  #9 (permalink)  
Antiguo 03/01/2014, 00:14
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: ¿Como hacer una página de impresión de entradas?

Creo que escribiste mal el nombre del campo, me parece que debe ser id_noticia en lugar de id_notica.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #10 (permalink)  
Antiguo 03/01/2014, 00:30
 
Fecha de Ingreso: mayo-2013
Ubicación: Cúcuta
Mensajes: 98
Antigüedad: 11 años, 6 meses
Puntos: 2
Respuesta: ¿Como hacer una página de impresión de entradas?

Dale, burlate de mí. Adelante xD x_x Los ojos se me cierran y ni me doy cuenta de lo que tipeo. Gracias, Alexis88. Funciona a la perfección, doy el tema por solucionado :D

Etiquetas: página, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:06.