Fran.MV
Usuario habitual
Usuario habitual

Hola

Intento hacer un contador de visitas, pero no me resulta. Tengo esta tabla:

CREATE TABLE VISITA(
 ID_TITULO INT NOT NULL, # FOREIGN KEY TITULO.ID_TITULO
 VISITAS INT DEFAULT '0'
);

ALTER TABLE VISITA ADD FOREIGN KEY(ID_TITULO) REFERENCES TITULO(ID_TITULO);

Y pongo este codigo al comienzo de la pagina:

<?
$id = $_GET['id'];

$db = mysql_pconnect("localhost","base","pass"); 
mysql_select_db("tabla",$db);

$consulta = "SELECT ID_TITULO, VISITAS
            FROM VISITA
            WHERE ID_TITULO = ".$id;

$resultado = mysql_query($consulta);
if(!$resultado)
{
    $consulta2 = "INSERT INTO VISITA (ID_TITULO) VALUES (".$id.")";
    $resultado2 = mysql_query($consulta2);

}

while($prox = mysql_fetch_array($resultado))
{
    $visita = $prox['VISITAS'];
    $visita++;
    $consulta3 = "UPDATE VISITA SET VISITAS = ".$visita." WHERE ID_TITULO = ".$id;
    mysql_query($consulta3);  
}
?>

Se supone que deberia; ver si existe una fila con la id que de la pagina, si no existe, crea una fila con la id (La columna VISITAS esta inicializada en 0). Luego, tomo el valor de VISITAS, le sumo 1 y con un UPDATE actualizo el valor.

Por lo menos, esa idea tenia yo. No sé si la sintaxis esta bien. Lo he provado y si actualiza las filas (que ingrese manualmente). Pero si la pagina es nueva, no crea una fila nueva.

No se si esta bien la parte en la que intento ver si existe o no una fila con determinada ID.

Ayudita porfavor :P.

Avatar Image
@man / @woman
@man / @woman

Dices que te falla crear una nueva fila... que debe distinguirse por el ID_TITULO ¿verdad?

Pues mira a ver como la estas creando...

$consulta3 = "UPDATE VISITA SET VISITAS = ".$visita;

¿Creees que eso esta bien?

Fran.MV
Usuario habitual
Usuario habitual

No no, el problema esta en:

$consulta = "SELECT ID_TITULO, VISITAS
            FROM VISITA
            WHERE ID_TITULO = ".$id;

$resultado = mysql_query($consulta);
if(!$resultado)
{
    $consulta2 = "INSERT INTO VISITA (ID_TITULO) VALUES (".$id.")";
    $resultado2 = mysql_query($consulta2);

}

Ahi, lo que intente hacer es que, si no existe una fila con la ID, cree una.

El update que pones ahi, lo uso para actualizar una fila ya creada y sumarle una visita (Esto lo hace bien). Como dije, el problema esta en que cree una fila con la id que no existe.

Mi pregunta es como decirle que si la id de la pagina que esto visitando no existe en la tabla visita, cree una. Como puede ver Sr, yo uso esto:

$resultado = mysql_query($consulta);
if(!$resultado)
{
    $consulta2 = "INSERT INTO VISITA (ID_TITULO) VALUES (".$id.")";
    $resultado2 = mysql_query($consulta2);

}

Pero alparecer, no resulta.

De antemano muchas gracias.

Fran.MV
Usuario habitual
Usuario habitual

No se preocupe Sr, ya lo arreglé :)

Avatar Image
Come y duerme en el foro
Come y duerme en el foro

Explica como por si a alguien más le pasa.

Un saludo.

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 13/Abr/2006, 16:11
pixel2you NoSetup.org17kApr/06
Por: , el 10/Abr/2006, 13:49
pixel2you NoSetup.org12kApr/06
Por: , el 20/Oct/2004, 19:57
kaskk User 1935374 Atomo64 RompeRatones NoSetup.org43kJun/06
Por: , el 12/Ene/2004, 18:45
elmotoraton NoSetup.org12kJan/04
Por: , el 20/Jul/2005, 17:25
Vaita EffectedCard2870Jul/05