Foros del Web » Programando para Internet » PHP »

problemas con Update

Estas en el tema de problemas con Update en el foro de PHP en Foros del Web. Tengo un script, k lo que me hace es: tengo 2 tablas, iguales. Con nombres de pueblos, lo k una tiene 2 campos con sus ...
  #1 (permalink)  
Antiguo 19/05/2009, 14:29
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 3
problemas con Update

Tengo un script, k lo que me hace es:


tengo 2 tablas, iguales. Con nombres de pueblos, lo k una tiene 2 campos con sus coordenadas, y la otra no. Lo que hago con el script es donde el pueblo y la comarca de la tabla 2 sea igual en la primera, me grabe alli los campos de coordenadas.

el problema:

$activa ( "Update tabla1 SET longitud=$longitud, latitud=$latitud WHERE nombre=$nombre AND comarca=$comarca");

ejecutandolo asi todo va bien, me va grabando los datos en la tabla 1 en el campo k toca, pero hay un momento que ya no graba mas datos.

Las variables las saco del Select k me busca en la segunda tabla.

he cambiado las variables por nombres, buscandolos yo en la base de datos. Y bueno en total:

$activa ( "Update tabla1 SET longitud=$longitud, latitud=$latitud WHERE nombre=ZUETA AND comarca=$comarca");

probando probando.. Asi si k me grabaria los campos logitud y latitud en el pueblo ZUETA en zaragoza.... pero si pongo la variable $nombre, entonces no va... aunque ponga todo nombres y solo variable en nombre=$nombre.. tampoco va... hasta aki bien, el error esta en $nombre... ara bien.. si cuando hago el while, justo encima de el UPDATE pongo

echo $nombre;

y aki si k me escribe ZUETA
no entiendo nada...
ayudaaaa
  #2 (permalink)  
Antiguo 19/05/2009, 14:42
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: problemas con Update

Si el campo es VARCHAR o CHAR, entonces debe ir dentro de comillas simples en tu consulta SQL.

UPDATE tabla SET talcosa = 'cadena'
  #3 (permalink)  
Antiguo 19/05/2009, 14:47
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: problemas con Update

Los e puesto todos con comillas y sin comillas... aun asi, si:

$nombre es ZUETA y asi no va con o sin comillas


y si pongo directamente zueta si va... seria iaugal si es char o varchar o lo k sea no?? no me iria poniendo ZUETA tampoco..
  #4 (permalink)  
Antiguo 19/05/2009, 14:50
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: problemas con Update

Las comillas son en la consulta

Update tabla1 SET longitud=$longitud, latitud=$latitud WHERE nombre='ZUETA' AND comarca=$comarca

Ponle comillas simples a todos los campos que sean varchar o char. Si el campo es entero no es necesario.
  #5 (permalink)  
Antiguo 19/05/2009, 14:55
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: problemas con Update

todos los campos son varchar... la latitud longitud comarca y nombre.. el problema es que si dejo la variable $Nombre siendo su valor ZUETA, no va, pero si va si escribo yo ZUETA... e provado poner comillas y sin...
y nada... eske es tal cual.. si nombre= $nombre no va, pero si nombre=ZUETA si va.. com coillas y sin...
  #6 (permalink)  
Antiguo 19/05/2009, 14:58
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: problemas con Update

Prueba ejecutar la consulta asi:
Update tabla1 SET longitud='$longitud', latitud='$latitud' WHERE nombre='$nombre' AND comarca='$comarca'

Y utiliza mysql_error() para que MySQL te diga cual es el error.
  #7 (permalink)  
Antiguo 21/05/2009, 06:55
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 3
buenaas perodon por tardar pero no tengo internet en casa..
volvamos, he traido el script entero:


<?
set_time_limit(0);

include 'admin/config.php';

$resultf = mysql_query ( "SELECT * FROM coordenadas LIMIT 0,1");


while ($array = mysql_fetch_array ($resultf) ){


$latitud = $array ["latitud2"];
$provincia = $array ["provincia2"];
$longitud = $array ["longitud2"];
$nombre = $array ["pueblo"];
$id = $array ["id2"];


echo $nombre." ".$provincia." ".$latitud.$longitud;


$sumar = mysql_query ("UPDATE pueblos SET longitud='$longitud', latitud='$latitud' WHERE nombrep='$nombre' AND provincia='$provincia' ");



}

?>

Haber el echo me debuelve esto:

ZUERA Zaragoza 41.86893-0.7870700

pero en el update si envez de $nombre pongo ZUERA me agrega los datos bien, pero si lo dejo en $nombre, sindo su valor ZUERA no va...

Tengo este script , de la tabla coordenadas tengo campos latitud longitud nombre y provincia, y otra tabla pueblos. kiero k se me graben las coordenadas en la tabla pueblos donde el nombre de la tabla coordenadas sea igual k en la tabla pueblos.. ya que no todos son iguales..
Ahora, al ejecutarlo de unos 19000 registros me ha echo 2000 bien.. al final del script hacia k me borrara el campo en coordenadas k ya habia sido guardado, ahora lo kite para poder probar... bueno eso, que me grabo unos 2000 y ya no me graba mas... Pense, ya no hay mas k coincidan... pero si k los hay.. al ejecutar este script, me sigue encontrando, pero no grabandolos..
bueno el script:




set_time_limit(0);

include 'admin/config.php';

$resultf = mysql_query ( "SELECT * FROM coordenadas LIMIT 0,1");


while ($array = mysql_fetch_array ($resultf) ){


$latitud = $array ["latitud2"];
$provincia = $array ["provincia2"];
$longitud = $array ["longitud2"];
$nombre = $array ["pueblo"];
$id = $array ["id2"];


echo $nombre." ".$provincia." ".$latitud.$longitud;


$sumar = mysql_query ("UPDATE pueblos SET longitud='$longitud', latitud='$latitud' WHERE nombrep='$nombre' AND provincia='$provincia' ");



}

?>


El error:

En el echo me debuelve esto:

ZUERA Zaragoza 41.86893-0.7870700

Pero en el update si envez de '$nombre' pongo 'ZUERA' me agrega los datos bien, pero si lo dejo en $nombre, sindo su valor ZUERA no va...

Última edición por GatorV; 21/05/2009 a las 09:28
  #8 (permalink)  
Antiguo 21/05/2009, 07:39
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santa Fe - Argentina
Mensajes: 35
Antigüedad: 20 años, 4 meses
Puntos: 0
Respuesta: sigo cagandome en el update

Yo lo que veo es un error de sintaxis, probá de poner así:

$sumar = mysql_query ("UPDATE pueblos SET longitud='{$longitud}', latitud='{$latitud}' WHERE nombrep='{$nombre}' AND provincia='{$provincia}' ");

Agregar las llaves a las variables.

Saludos
Analía
  #9 (permalink)  
Antiguo 21/05/2009, 07:51
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: sigo cagandome en el update

pero si escribo yo el nombre ZUETA funciona...

sin llaves..

ademas, durante 2000 registros funcionó...

esque al no estar en casa no puedo comprobarlo.. despues ire... pero ademas creo que los 2000 pueblos que si funciono, los nombres eran: el papiol, la bisbal... pueblos con articulo delante... todos ellos con articulo los k no tenian articulo son los k no funcionan...

puede ser causa de eso?
  #10 (permalink)  
Antiguo 21/05/2009, 07:55
 
Fecha de Ingreso: marzo-2008
Mensajes: 51
Antigüedad: 16 años
Puntos: 1
Respuesta: sigo cagandome en el update

bueno no se lo de las llaves.. yo lo que veo es que no tienes puntos para concatenar el texto con las variables php

haz algo como esto mejor..

"UPDATE BLA BLA ' ".$variable." ' BLA BLA";

Es decir cuando metas la variable pon comillas simples, luego cierra las dobles, pon un punto para concatenar, abre las dobles, cierra las simples y continua con el codigo.. es ladillin pero asegura la cosa.
Las separe para que las veas mejor.. pero puedes unirlas

Última edición por rafaelovalles; 21/05/2009 a las 08:01
  #11 (permalink)  
Antiguo 21/05/2009, 08:02
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: sigo cagandome en el update

Y las comparaciones que haces en el where tienen valor?? yo lo voe bien.
  #12 (permalink)  
Antiguo 21/05/2009, 08:08
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: problemas con Update

Cita:
nombrep='$nombre'
¿nombrep? ¿Es asi que se llama el campo?

En todo caso:

$sumar = mysql_query ("UPDATE pueblos SET longitud='$longitud', latitud='$latitud' WHERE nombrep='$nombre' AND provincia='$provincia'") or die(mysql_error());

Agrégale eso. Para ver si hay algún error en la consulta.
  #13 (permalink)  
Antiguo 21/05/2009, 08:19
 
Fecha de Ingreso: diciembre-2006
Mensajes: 61
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: problemas con Update

escribe esto en el script:
Código PHP:
$q "UPDATE pueblos SET longitud='$longitud', latitud='$latitud' WHERE nombrep='$nombre' AND provincia='$provincia' ";

echo 
$q
Esto te imprimirá la consulta con los valores de las variables. Fijate por qué valor reemplaza a $nombre.

Saludos
__________________
INVOhost (www.invohost.com)
Software de gestión para empresas de hosting
.
Cobranza, tickets, faqs, manuales, carrito de compras.
100% en ESPAÑOL
  #14 (permalink)  
Antiguo 21/05/2009, 08:42
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: sigo cagandome en el update

si claro... son para k me los grabe en el sitio, en el mismo nombre y misma provincia k el de coordenadas, ya k un mismo nombre esta en 2 provincias...
  #15 (permalink)  
Antiguo 21/05/2009, 09:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: sigo cagandome en el update

Temas unidos por favor NO dupliques temas.
  #16 (permalink)  
Antiguo 21/05/2009, 10:55
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: sigo cagandome en el update

Cita:
Iniciado por phyronx Ver Mensaje
si claro... son para k me los grabe en el sitio, en el mismo nombre y misma provincia k el de coordenadas, ya k un mismo nombre esta en 2 provincias...
Porfavor, fijate bien. El campo se llama "nombrep" ¿con la "p" delante?

Tambien:
Cita:
En todo caso:

$sumar = mysql_query ("UPDATE pueblos SET longitud='$longitud', latitud='$latitud' WHERE nombrep='$nombre' AND provincia='$provincia'") or die(mysql_error());

Agrégale eso. Para ver si hay algún error en la consulta.
  #17 (permalink)  
Antiguo 21/05/2009, 14:21
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: problemas con Update

haber, he ido a casa a probar...

-Lo de "'$nombre'", no hace nada sigue igual...

-Lo de echo $q; no me dice nada el echo....

-Lo de '".$nombre."' tampoco, sigue igual..

-y lo de or die(mysql_error()); al final del update, tampoco me hace nada..

en todos estos casos no agrega, pero el echo me devuelve:

ZUERA Zaragoza 41.86893-0.7870700


He vuelto a provar cambiar $nombre por ZUERA en el update, y entonces si agrega la latiut y longitud... O_O

Muchas gracias por intentar ayudarme he!! toy desesperao.. es como si le dices al pc k k una mano tiene cinco dedos y por sus huevos te contesta k no.. xD

Ronruby, no se si te entiendo... el campo con el nombre del pueblo, en la tabla coordenadas es: pueblo

Y en la tabla pueblos es: nombrep
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 20:48.