Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

[SOLUCIONADO] Foro >> Web PHP

Estas en el tema de Foro >> Web PHP en el foro de Sistemas de gestión de contenidos en Foros del Web. Hola buena... estoy creando una web (.php) en la cual necesito en una de las pagina que me muestre los temas creados en el foro, ...
  #1 (permalink)  
Antiguo 13/02/2011, 15:35
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Foro >> Web PHP

Hola buena... estoy creando una web (.php) en la cual necesito en una de las pagina que me muestre los temas creados en el foro, solo el tema #1, no los comentarios.

Necesito que me muestre ID - Seccion en donde esta | Tema - Autor - Fecha - Views

Lo bueno que esos datos me los muestra, el problema es que por ejm si creo el tema "Prueba" en Categoria > Foro > Post (osea Prueba), la web me muestra 2 temas.

ID - Categoria | Prueba - Autor - Fecha - Views
ID - Foro | Prueba - Autor - Fecha - Views

Osea me duplica el tema en la web php pero me muestra uno en categoria y otro en foro, el problema que nose como decirle a la $consulta que solo me muestre 1 que seria este.

ID - Foro | Prueba - Autor - Fecha - Views

Espero que me comprendan a lo que voy y haber si me ayudan...

THX!
  #2 (permalink)  
Antiguo 13/02/2011, 16:26
davidbrepe
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Foro >> Web PHP

ufff no entiendo muy bien lo que pides...

¿Que foro utilizas? phpbb3?
  #3 (permalink)  
Antiguo 13/02/2011, 16:40
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

No... utilizo IP.Board

Haber... en una web php quiero extraer datos de las tablas del foro y que me muestre esto

ID del post | Seccion donde esta el post | Tema | Autor | Fecha de creacion | Views

Yo utilizo esto en el .php

Código:
<?php

$limit = 20;

    DEFINE ('HOST_BD', 'XXX');
    DEFINE ('USUARIO_BD', 'XXX');
    DEFINE ('CLAVE_BD', 'XXX');
    DEFINE ('NOMBRE_BD', 'XXX');

    $conexion = mysql_connect(HOST_BD, USUARIO_BD, CLAVE_BD) or
    die ('No se pudo conectar a la BD');
    mysql_select_db(NOMBRE_BD) or die ('ERROR...');

    $consulta = "SELECT tid, title, starter_name, start_date, views, forum_id FROM topics ORDER BY tid DESC LIMIT 0, " . $limit . "";
    $resultado = mysql_query($consulta) or die ('Error al ejecutar la consulta');

 while ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC)){
        echo '<tbody>
				<tr class=" ">
					<td class="no">'.$fila['tid'].'</td>
					<td class="subject"><a href="#"><em>'.$fila['forum_id'].'</em></a> | <a href="#">'.$fila['title'].'</td>
					<td class="writer">'.$fila['starter_name'].'</td>
					<td class="date">'.$fila['start_date'].'</td>
					<td class="hit">'.$fila['views'].'</td> 
				</tr>
             </tbody> ';
   }
		
?>
El problema que al crear un post me muestra en la web php 2 temas del mismo post pero en diferente categoria, osea me muestra el post en la categoria y el mismo post en la seccion, nose si me explico ahora.
  #4 (permalink)  
Antiguo 13/02/2011, 17:22
davidbrepe
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Foro >> Web PHP

vale ahora entendi...

nunca he trabajado con IP.Board pero supongo que todo tema además de estar en un foro estará en una categoría, por eso te lo duplica...

tienes que buscar en la tabla como se define que pertenezca a categoria y a foro y restringir la consulta...

de todas formas prueba a meterle un distinct al select a ver si hubiera suerte... pero no creo...


un saludo y suerte!!
  #5 (permalink)  
Antiguo 13/02/2011, 17:35
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

ok vamos a intentarlo...

Lo otro... el problema es que los POST se ubican en la tabla topics y las categorias en la tabla forum... entonces como puedo obtener la informacion de ambas tablas?

Asi es como me muestra los post en el php.

Código:
4	A Test Forum | fdffddfsdfdds	                            otro              1297627398	0
4	MANUALES | fdffddfsdfdds	                            otro              1297627398	0
4	A Test Category | fdffddfsdfdds	                    otro              1297627398	0
4	General | fdffddfsdfdds                                        otro              1297627398	0
2	General | PROBLEMAS	                                     janndo	1297564426	1
2	A Test Forum | PROBLEMAS	                             janndo	1297564426	1
2	MANUALES | PROBLEMAS	                                     janndo	1297564426	1
2	A Test Category | PROBLEMAS                              janndo	1297564426	1
1	MANUALES | Welcome	                                     janndo	1297563725	1
1	A Test Category | Welcome	                             janndo	1297563725	1
1	General | Welcome	                                             janndo	1297563725	1
1	A Test Forum | Welcome	                                     janndo	1297563725	1
el otro problema que tengo es la fecha... nose como transformarla
  #6 (permalink)  
Antiguo 13/02/2011, 17:44
davidbrepe
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Foro >> Web PHP

pues tienes que hacer un join

te pongo un ejemplo

Código MySQL:
Ver original
  1. SELECT t.tid, t.title, t.starter_name, t.start_date,t.views, t.forum_id, f.tid
  2. FROM topics t inner join forum f on t.tid= f.tid
(suponiendo que la clave de la tabla forum es tid)

Bueno pues lo que te puede dar alguna duda aquí son los alias, por ejemplo t.title
La explicación, todas las columnas de la tabla topics comenzaran por t. y todas las de la tabla forum por f.
porque así ha sido definido en el inner join
  #7 (permalink)  
Antiguo 13/02/2011, 17:52
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

Entonces copiando esto deberia no repetirse un post?
  #8 (permalink)  
Antiguo 13/02/2011, 17:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Tema movido desde PHP a Aplicaciones prefabricadas
  #9 (permalink)  
Antiguo 13/02/2011, 18:47
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

mmmm no me resulta... me manda error al ejecutarlo

EDIT. Lo soluciones... muchas gracias por tu codigo. ahora quisiera saber, como puedo hacer para que

CATEGORIA | POST tengan sus respectivos enlaces osea el enlace de la categoria donde fue posteado y el enlace del post

Última edición por janndo; 13/02/2011 a las 18:56
  #10 (permalink)  
Antiguo 13/02/2011, 19:20
davidbrepe
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Foro >> Web PHP

pues no se como va el tema en IP.Board pero te pongo un ejemplo

imagínate que la clave de este post es foro-web-php-885698
el link sera http://www.forosdelweb.com/f54/foro-web-php-885698/

por lo tanto tendrías que hacer lo siguiente
Código HTML:
Ver original
  1. <a  href="http://www.forosdelweb.com/f54/<?php echo $fila['clave']; ?>">


edito. Que solucionaste? que se te repita o la unión de las tablas?
  #11 (permalink)  
Antiguo 13/02/2011, 19:22
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

Para que no se repitan los post
  #12 (permalink)  
Antiguo 13/02/2011, 19:45
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

no me resulta... lo de la URL...

Ignorando lo de la url... como puedo transformar la fecha 1297627398 a DD.MM.YYYY
  #13 (permalink)  
Antiguo 13/02/2011, 20:57
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

Bueno... logre hacer que no se duplicaran los post.

Lo otro... como combinar 2 celdas de la misma tabla para general la SQL puesto que los link de IP.Board son .../ID-NameDelPost/ entonces como puedo combinar la ID y el Name del post para general la URL automaticamente.

Tambien tengo el problema de la fecha... como la transformo a DD.MM.YYYY

Espero que me puedan ayudar.

THX!
  #14 (permalink)  
Antiguo 14/02/2011, 00:11
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

Bueno... ya solucione lo de la URL... solo me queda como transformo esta fecha 1297627398 a DD.MM.YYYY.

Porfavor es lo ultimo que necesito arreglar. THX
  #15 (permalink)  
Antiguo 14/02/2011, 03:37
davidbrepe
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Foro >> Web PHP

SELECT DATE_FORMAT(start_date,’%d/%m/%Y');

añade eso a la consulta ;)
  #16 (permalink)  
Antiguo 14/02/2011, 11:32
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

una consulta como puedo agregar 2 consultas... porque me manda error.

Tengo esto

$consulta = "SELECT * FROM topics INNER JOIN forums ON topics.forum_id = forums.id ORDER BY tid DESC LIMIT 0, " . $limit . "";

y si intengo agregar otra

esto

while ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC)){

me manda un error
  #17 (permalink)  
Antiguo 14/02/2011, 13:09
davidbrepe
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Foro >> Web PHP

la consulta esta mal

Código PHP:
$consulta "SELECT * FROM topics t INNER JOIN forums f ON t.forum_id = f.id 
tienes que ponerle un alias a las tablas

Código MySQL:
Ver original
  1. FROM <tabla1> <alias1> INNER JOIN <tabla2> <alias2> ON <alias1>.<clave1> = <alias2>.<clave2>
  #18 (permalink)  
Antiguo 14/02/2011, 13:12
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

osea... me lo toma igual pero nose como cargar otra consulta porque esto

mysql_fetch_array me dice que no soporta 2 consultas
  #19 (permalink)  
Antiguo 14/02/2011, 13:48
davidbrepe
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Foro >> Web PHP

pero no puedes sacar todos los datos de una sola consulta?

Código PHP:
Ver original
  1. $consulta = "SELECT * FROM topics t INNER JOIN forums f ON t.forum_id = f.id

de ahí sacas todas las columnas de las dos tablas, no te esta ahí la fecha y todo lo que necesites?
  #20 (permalink)  
Antiguo 14/02/2011, 13:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

en la tabla topics esta todo, pero como hago para que me lo transforme con el codigo que me pasate tu?
  #21 (permalink)  
Antiguo 14/02/2011, 13:56
davidbrepe
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Foro >> Web PHP

Código PHP:
Ver original
  1. $consulta = "SELECT t.columna1, t.columna2, t.columna3, f.columna4 f.columna5, f.columna6, DATE_FORMAT(t.start_date',’%d/%m/%Y') FROM topics t INNER JOIN forums f ON t.forum_id = f.id

y luego el array añades la fila
Código PHP:
Ver original
  1. <td class="date">'.$fila['t.start_date'].'</td>
  #22 (permalink)  
Antiguo 14/02/2011, 14:01
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

aja ok vamos a ver
  #23 (permalink)  
Antiguo 14/02/2011, 14:11
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

Haber... al pone SELECT *... necesito llamar todas las tablas de topics y ademas forums...

si le pongo uno por uno me da error
  #24 (permalink)  
Antiguo 14/02/2011, 14:19
davidbrepe
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Foro >> Web PHP

ok
Código PHP:
Ver original
  1. $consulta = "SELECT * ,DATE_FORMAT(t.start_date',’%d/%m/%Y') as 'fecha' FROM topics t INNER JOIN forums f ON t.forum_id = f.id

Código PHP:
Ver original
  1. <td class="date">'.$fila['fecha'].'</td>
  #25 (permalink)  
Antiguo 14/02/2011, 14:38
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

ya sirve (no me da error)... pero la fecha no lo muestra.
  #26 (permalink)  
Antiguo 14/02/2011, 15:04
davidbrepe
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Foro >> Web PHP

en que formato te la imprime? me refiero, 10-10-2010-13:00, 101020101300
¿?
  #27 (permalink)  
Antiguo 14/02/2011, 15:07
 
Fecha de Ingreso: febrero-2011
Mensajes: 40
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Foro >> Web PHP

osea la tabla lo muestra asi 1297563725 y yo lo quiero poner asi %d.%m.%Y

Pero al ponerle DATE_FORMAT... en la web no se ve nada.
  #28 (permalink)  
Antiguo 14/02/2011, 15:24
davidbrepe
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Foro >> Web PHP

pues la fecha esta guardada en segundos... no se como se convierte a fecha... si encuentro algo te aviso ;)

Etiquetas: php, foros
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:43.