Foros del Web » Programando para Internet » PHP »

Problema actualizando BBDD

Estas en el tema de Problema actualizando BBDD en el foro de PHP en Foros del Web. Ante todo, decir que he buscado y requetebuscado... e incluso me he bajado el manual SQL en html y lo tengo en mi localhost para ...
  #1 (permalink)  
Antiguo 24/07/2009, 01:53
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 14 años, 9 meses
Puntos: 0
Problema actualizando BBDD

Ante todo, decir que he buscado y requetebuscado... e incluso me he bajado el manual SQL en html y lo tengo en mi localhost para consutarlo a menudo. Pero me persiste el error, y por más que lo miro no entiendo el por qué. Necesito que alguien le eche un vistazo y me diga en qué me estoy equivocando (probablemente será una estupidez de sintaxis... pero es que no la veo).

Se trata de un contador de enlaces. Tengo una botonera a la derecha y he numerado los enlaces de la siguiente forma:

Código:
<ul>
        <li>
            <a class="links_derecho" href="contador.php?link=1" target="_blank">
                enlace 1
            </a>
         </li>
         <li>
            <a class="links_derecho" href="contador.php?link=2" target="_blank">
                enlace2
            </a>
         </li>
[...] </ul>
en la página "contador.php" recojo el valor de link mediante GET, y pido a la base de datos que me actualice el valor total por total+1:

Código:
<?php
$origen=$_GET['link'];
     include "conexion.php";
     $sql = "UPDATE contador SET total=[total+1] WHERE num=$origen;";
    mysql_close($conexion); 
?>
La idea es que el contador num vaya creciendo, y luego haga un header.location al enlace en cuestion (que también se recogerá de la BBDD). He probado varias opciones en cuanto a comillas simples, comillas dobles, con corchetes y sin ellos, con paréntesis... Esta que pongo es la última que he probado.

Gracias!

Edit.- la BBDD se compone de:

Código:
id_link: int, auto-increment, clave primaria.
num: int(250).
nombre: varchar(250).
total: int(250).
destino: varchar(250).
  #2 (permalink)  
Antiguo 24/07/2009, 07:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema actualizando BBDD

Tema transladado desde el foro de MySQL.
Véase: http://www.forosdelweb.com/f21/funci...-datos-413499/

La consulta debe ir sin los corchetes. El problema es que en ningún momento estás ejecutando la consulta con mysql_query()
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 24/07/2009, 07:42
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Problema actualizando BBDD

Cita:
SET total=[total+1]
nunca lo había visto de esta forma. Cámbialo por paréntesis.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 24/07/2009, 14:58
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema actualizando BBDD

Gracias... El lunes a primera hora lo miro, en cuanto llegue al trabajo.

Editado:

Pues sí... ya funciona por fin. Muchísimas gracias a todo. Pego aquí el código resultante (que me da mucho coraje buscar soluciones por internet y encontrar hilos de gente que por fin lo ha solucionado..... pero se olvida de compartir la solución, con lo cual tengo que seguir buscando):

Código:
<?php
//recogemos por GET el valor que tenga link
$origen=$_GET['link'];

     //hacemos la conexion con la BBDD
     include "conexion.php";

     //creamos la sentencia SQL y la ejecutamos
     $sSQL="UPDATE contador SET total=(total+1) WHERE num=$origen";
     mysql_query($sSQL);

     //segunda consulta, esta para sacar el enlace y redireccionar.
     $sSQL2="SELECT * FROM contador WHERE num=$origen";
     $result=mysql_query($sSQL2);
     $fila=mysql_fetch_array($result);
     $fuera=$fila[destino];     
     mysql_close($conexion);
     header ("Location: $fuera");  
?>
Yo lo he hecho en dos consultas porque no sé si se puede hacer en una sola.

Última edición por blocdeesbozos; 27/07/2009 a las 02:21
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 15:41.