Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Hola.. no se que poner de titulo pq no se que sera!

Estas en el tema de Hola.. no se que poner de titulo pq no se que sera! en el foro de Bases de Datos General en Foros del Web. Bueno.. es SQL y PHP... pero no se de estos lenguajes.. sin embargo quiero aprender... He estado adaptando unas ondas (scripts) a un CMS que ...
  #1 (permalink)  
Antiguo 22/11/2009, 16:19
 
Fecha de Ingreso: marzo-2008
Ubicación: Patzún, Chimaltenango
Mensajes: 71
Antigüedad: 16 años, 1 mes
Puntos: 0
Hola.. no se que poner de titulo pq no se que sera!

Bueno.. es SQL y PHP...

pero no se de estos lenguajes.. sin embargo quiero aprender...

He estado adaptando unas ondas (scripts) a un CMS que es casi completo, como
resultado estoy obteniendo uno más completo..

ahora tengo un problema...

no se que hacer con esto .. espero me ayuden...
Código PHP:
$sql $db->query("
SELECT 
comments.post_id, 
comments.is_register, 
comments.text, 
comments.autor, 
comments.email, 
post.id, 
post.date as newsdate, 
post.title, 
post.alt_name 
FROM " 
PREFIX "_comments as comments, " PREFIX "_post as post 
WHERE post.id=comments.post_id 
ORDER BY comments.date DESC 
LIMIT 0,"
.LIMITCOMM
);

while(
$row $db->get_row($sql)) {

    
$row['date'] = strtotime($row['date']);
    
$row['newsdate'] = strtotime($row['newsdate']);
    
$row['date'] = strtotime($row['date']);
    
$title $row['title'];
    
$combid $row['id'];
.... 
etc... 
Este es el codigo.. a lo cual.. se supone que me conecta a dos tablas...
"_post" y "_comments"
en fin es una onda que al final me deja un bloque con los últimos comentarios de los usuarios... bueno. no me extiendo mas.. porque la verdad no se interpretarlo jeje..

pero.. el problema es que lo que quiero hacer es crear mi variable "$combid" la cual se supone que sería el ID de la tabla "_comments" pero el problema es que al hacer $row['id'] me selecciona el de "_post" y es problema porque tienen el mismo nombre de columna "id" & "id".. lo que quiero hacer es unicamente seleccionar el "id" pero de la tabla "_comments" ..

si hay algo mas que especificar lo explicaré.. pero espero su ayuda.. ya que no soy nadie en esto.. solo estoy queriendo aprender ..

Thanks in advance!..
  #2 (permalink)  
Antiguo 23/11/2009, 02:59
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Hola.. no se que poner de titulo pq no se que sera!

Código php:
Ver original
  1. $sql = $db->query("SELECT "
  2.              ."comments.post_id, "
  3.              ."comments.is_register,  "
  4.              ."comments.text, "
  5.              ."comments.autor, "
  6.              ."comments.email, "
  7.              ."post.id, "  
  8.              ."post.date as newsdate,  "
  9.              ."post.title,  "
  10.              ."post.alt_name  "
  11.    ."FROM " . PREFIX . "_comments as comments, "
  12.                   . PREFIX . "_post as post  "
  13.    ."WHERE post.id=comments.post_id "
  14.    ."ORDER BY comments.date DESC  "
  15.    ."LIMIT 0,".LIMITCOMM);

Si quieres aprender intenta analizar el SELECT (es decir la parte Sql del script php que nos das) esta escrito en un Ingles muy basico.

SELECT ===> SELECCIONA

comments.post_id
nombreTABLA.nombreCAMPO <==== LO QUE SE SELECCIONA (lista de campos)

FROM tablas <======= DE DONDE SE SELECCINA (lista de tablas)

WHERE <===== DONDE se cumpla que....

post.id=comments.post_id <====== CONDICION lo que se debe cumplir

ORDER BY <==== ORDENADO POR

Una vez vistas las partes vamos a analizar el conjunto


Tenemos

post.id en la lista de campos dificilmente obtendremos comments.id

tambien tenemos

...
comments.post_id,
...
post.id
...
WHERE post.id=comments.post_id


ahí sobra algo puesto que si se cumple post.id=comments.post_id luego para que le dices que te de los dos ( si son iguales con uno bastará...no?)

Yo haria lo siguiente para no tener que cambiar muchas cosas...

Código php:
Ver original
  1. $sql = $db->query("SELECT "
  2.               ."comments.id, "
  3.               ."comments.post_id, "
  4.               ."comments.is_register,  "
  5.               ."comments.text, "
  6.               ."comments.autor, "
  7.               ."comments.email, "
  8.               ."post.date as newsdate,  "
  9.               ."post.title,  "
  10.               ."post.alt_name  "
  11.   ."FROM " . PREFIX . "_comments as comments, "
  12.                  . PREFIX . "_post as post  "
  13.                ."WHERE post.id=comments.post_id "
  14.                ."ORDER BY comments.date DESC  "
  15.                ."LIMIT 0,".LIMITCOMM);
Si?

Quim

Última edición por quimfv; 23/11/2009 a las 07:48
  #3 (permalink)  
Antiguo 23/11/2009, 12:56
 
Fecha de Ingreso: marzo-2008
Ubicación: Patzún, Chimaltenango
Mensajes: 71
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Hola.. no se que poner de titulo pq no se que sera!

bueno, quimfv gracias por responder tan detalladamente, mis respetos y agradecimientos!..

He logrado entender algo de lo que me explicaste.. genial, esto "está muy sabroso"...
lastimosamente no explique del todo.. porque me parece que no detallé que en la tabla "comments" existen otra columna "ID" (que no está en esta consulta) que son dos columnas diferentes "id" & "post_id" y en la tabla "post" existe un "id" (mas otros tantos.. por supuesto) pero que al momento de publicar un articulo lo que hace es vincular .. seleccionando el "id" de la tabla "POST" y la incluye (escribe) en la tabla "COMMENTS" en la columna "post_id" ... pero la columna "ID" de la tabla "COMMENTS" no tiene nada que ver con la columna "post_ID" de la misma tabla... (porque el ID es el "keydefault" o algo así.hhee. no se mucho)..

Bueno.. te agradezco muchisimo pero.. viendo esto.. logré lo que quería..

y lo dejé así..

Código PHP:
$sql $db->query("
SELECT 
comments.id as commid, 
comments.post_id, 
comments.is_register, 
comments.text, 
y creé ahora creé una variable..

Código PHP:
$comm_id $row['commid']; 
porque haciendo $row['id'] me seleccionaba del comments.post_id ( o lo mismo que post.id.. ahora que lo entiendo.. .(bueno si es que no estoy mal hehe))

así haciendo $row['commid'] me seleccionaba la columna "id" de la tabla "comments"..
y es lo por lo que puse: "
Código PHP:
comments.post_id as commid
"

genial.. hasta le agarre onda y lo dejé así..

Código PHP:
$comm_id $row['commid'];
$commida $comm_id
haha.. ahora puedo desplegar el valor de la columna "id" de "comments".. por medio de commida.. .. muy facil de recordar!..

hahahah!

Gracias!! ahi va karma!

Última edición por hwelt; 23/11/2009 a las 12:57 Razón: envolver en PHP
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 02:37.