Foros del Web » Programando para Internet » PHP »

Problemas con UPDATE php/mysql

Estas en el tema de Problemas con UPDATE php/mysql en el foro de PHP en Foros del Web. Hola amigos: con lo siguiente: Cita: $nombre=$_GET['nombre']; $descripcion=$_GET['descripcion']; $url=$_GET['url']; $q = "UPDATE rank SET nombre='$nombre', descripcion='$descripcion', url='$url' WHERE id=10291"; mysql_query($q, $link); Actualizo las 3 variables ...
  #1 (permalink)  
Antiguo 06/12/2009, 09:54
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Problemas con UPDATE php/mysql

Hola amigos: con lo siguiente:
Cita:
$nombre=$_GET['nombre'];
$descripcion=$_GET['descripcion'];
$url=$_GET['url'];
$q = "UPDATE rank SET nombre='$nombre', descripcion='$descripcion', url='$url' WHERE id=10291";
mysql_query($q, $link);
Actualizo las 3 variables recibidas de un formulario ($nombre, $descripcion y $url) sin problemas.
El tema es que en mi base de datos (10000 registros) tengo las filas ya creadas con 6 campos:
id, promedio, votos, nombre, decripcion y url.
Los 3 primeros campos (id, promedio y votos) están con valores por defecto (1,0,0; 2,0,0, etc.)
Los 3 siguientes campos (nombre, descripcion y url) están vacíos. Lo que quiero hacer es que donde el nombre esté vacío haga una actualización, pero una sola vez, ya que lo hice y me llenó la tabla con los valores que puse en el formulario y tuve que eliminarla.
Supongamos las 2 primeras filas:
(1,0,0,NULL,NULL,NULL)
(2,0,0,NULL,NULL,NULL)
El update lo hace donde está nombre=" " y lo hace en las 2 filas y no en la primera, o sea, quisiera que la actualización la haga solo en la primer fila y no en la segunda.
Bueno, espero que me entiendan y les agradezco la paciencia.
Gracias.
  #2 (permalink)  
Antiguo 06/12/2009, 10:08
Avatar de Alpolo  
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 0
Respuesta: Problemas con UPDATE php/mysql

Hola..

Si lo que tu quieres es actualizar una solo fila le debes pasar la condión ok..

Digamos que tu quieres actualizar la fila 5, pero solo unos campos determinado ok, lo puedes hacer de esta forma vale..

Código PHP:
$q "UPDATE rank SET nombre='$nombre', descripcion='$descripcion', url='$url' WHERE id='5'";
mysql_query($q$link); 
Saludos..
  #3 (permalink)  
Antiguo 06/12/2009, 10:13
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problemas con UPDATE php/mysql

Gracias Alpolo, si, eso lo sé. Pero suponete el caso: tengo 1000 filas y sólo 10 filas llenas (o sea tengo 990 libres) ¿Cómo le digo cual es el id que tiene que seleccionar? Porque debería seleccionar el id=11, llenarlo y luego parar
  #4 (permalink)  
Antiguo 06/12/2009, 10:25
Avatar de Alpolo  
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 0
Respuesta: Problemas con UPDATE php/mysql

Hola..

Si en todas esas filas le vas ha pasar un solo datos no deberias pasarle una condición ok, pero si en cada fila le vas a poner su propio dato, en el formulario que tu haces la actualización puedes poner el id a actualizar y de esa forma te quedara más facil ok..

Saludos..
  #5 (permalink)  
Antiguo 06/12/2009, 10:26
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Problemas con UPDATE php/mysql

asi:

Código PHP:
$q "UPDATE rank SET nombre='$nombre', descripcion='$descripcion', url='$url' WHERE nombre='' ORDER BY id LIMIT 1"
Asi te cogera el primer registro con nombre vacio ordenado por el id
  #6 (permalink)  
Antiguo 06/12/2009, 10:45
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problemas con UPDATE php/mysql

Gracias Doobie. Le puse lo siguiente:

Cita:
$q = "UPDATE rank SET nombre='$nombre', descripcion='$descripcion', url='$url' WHERE nombre='' ORDER BY id BETWEEN 1 and 1000 LIMIT 1";
Para que me actualizara los valores de las variables en el primer valor id cuyos campos "nombre" fuera ' ' , ordenados por ID y les puse entre los registros 1 y 1000 (son cien mil registros en total). En síntesis, que encontrara el primer nombre vacío entre 1 y 1000 (que es en mi base de datos, el 102)
Lo raro es que me lleno el número 1001 (y no el 102, que está vacío).
  #7 (permalink)  
Antiguo 06/12/2009, 11:17
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problemas con UPDATE php/mysql

Porque mis páginas (que son casi 100) toman diferentes registros de la base de datos: pagina 1 (toma de 1 a 1000), pagina 2 (de 1001 a 2000) y así sucesivamente. En consecuencia, necesito el primer registro cuyo campo "nombre" esté vacío, entre los registros que estoy buscando (no en cualquier parte de la base de datos).
  #8 (permalink)  
Antiguo 06/12/2009, 11:29
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Problemas con UPDATE php/mysql

el id, lo tienes como un int (o bigint) o como un string? lo digo, por que parece que ordene de forma no numerica y por eso coge el 1001 antes que el 102

si tienes phpmyadmin, haz este select:

select id, nombre from rank order by id;

a ver como los ordena
  #9 (permalink)  
Antiguo 06/12/2009, 11:40
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problemas con UPDATE php/mysql

Gracias Doobie y Alpolo: Lo hice de la siguiente manera (cheque 2 veces, pero creo que está ok).

Cita:
$q = "UPDATE rank SET nombre='$nombre', descripcion='$descripcion', url='$url' WHERE nombre='' AND id>1001 AND id<2000 LIMIT 1";
Tuve que limitar los registros agregando "WHERE - AND - AND" porque usando "BETWEEN...IN" no me hacía caso.
Enseguida nos vemos, porque ahora me resta capturar las variables de los botones de opcion. Gracias de nuevo
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 12:04.