Foros del Web » Programando para Internet » PHP »

Update en MySql

Estas en el tema de Update en MySql en el foro de PHP en Foros del Web. Hola a todos, espero que se encuentren super! les escribo porq tengo un problema con el update y no se que pueda ser... tengo dos ...
  #1 (permalink)  
Antiguo 25/06/2007, 15:47
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
De acuerdo Update en MySql

Hola a todos, espero que se encuentren super! les escribo porq tengo un problema con el update y no se que pueda ser... tengo dos paginas.php una que me carga los valores existentes en la base de datos y a través de una entrada tipo texto me los deja cambiar (formulario) y otra que me procesa los datos y me hace el update, el problema es que no me funciona, unicamente me cambia los datos de la primera tabla y son tres, me sale un error como el siguiente:Error: Out of range value adjusted for column 'ant_beam_width' at row 1
Ayuda please anexo los dos codigos

Código PHP:
<?php
include ("conec.php");
$link=conectarse();
$sql="select a.sectores,a.mcc,a.mnc,b.lac,a.rac,a.ci,a.id_sectores,b.id_lac from sectores a, lac b
where a.clave_lac=b.id_lac and a.clave_estacion=88"
;//Busqueda de identificacion global de la celda
$result=mysql_query($sql,$link);
$info_bcch="select sectores, arfcn, bsic, ant_direction, antena, id_sectores from sectores where clave_estacion=88";//Busqueda de informacion de RF
$result2=mysql_query($info_bcch,$link);
$lista_hopping="select sectores, tch_arfcn_1, tch_arfcn_2, tch_arfcn_3, tch_arfcn_4, tch_arfcn_5, tch_arfcn_6, tch_arfcn_7, tch_arfcn_8,tch_arfcn_9, tch_arfcn_10, tch_arfcn_11, tch_arfcn_12, tch_arfcn_13, tch_arfcn_14, tch_arfcn_15, tch_arfcn_16, tch_arfcn_17, tch_arfcn_18, HSN, id_sectores from sectores where clave_estacion=88";//Busqueda de lista de hopping
$result3=mysql_query($lista_hopping,$link);
?> 

<table border="1" align="center" cellpadding="1" cellspacing="1">
<tr> 
<td>&nbsp;Sectores</td>
<td>&nbsp;MCC</td>
<td>&nbsp;MNC</td>
<td>&nbsp;LAC</td>
<td>&nbsp;RAC&nbsp;</td>
<td>&nbsp;CI&nbsp;</td>
</tr>

<?php
while($salida=mysql_fetch_array($result))//Tabla modificacion de identificacion global de la celda
{
echo 
'<tr>';
echo 
'<td><INPUT TYPE="text" NAME="sectores[]" SIZE="20" MAXLENGTH="30" value="'.$salida['sectores'].'"></td>';
echo 
'<td><INPUT TYPE="text" NAME="mcc[]" SIZE="10" MAXLENGTH="30" value="'.$salida['mcc'].'"></td>';
echo 
'<td><INPUT TYPE="text" NAME="mnc[]" SIZE="10" MAXLENGTH="30" value="'.$salida['mnc'].'"></td>';
echo 
'<td><INPUT TYPE="text" NAME="lac[]" SIZE="10" MAXLENGTH="30" value="'.$salida['lac'].'"></td>';
echo 
'<td><INPUT TYPE="text" NAME="rac[]" SIZE="10" MAXLENGTH="30" value="'.$salida['rac'].'"></td>';
echo 
'<td><INPUT TYPE="text" NAME="ci[]" SIZE="10" MAXLENGTH="30" value="'.$salida['ci'].'">';
echo 
'<INPUT TYPE="hidden" NAME="clave[]" value="'.$salida['id_sectores'].'">';
echo 
'<INPUT TYPE="hidden" NAME="clave2[]" value="'.$salida['id_lac'].'">';
echo 
'</td>';
echo 
'</tr>';
}

mysql_free_result($result);
?>
</table>
<br>

<table border="1" align="center" cellpadding="1" cellspacing="1">
<tr> 
<td>&nbsp;Sectores</td>
<td>&nbsp;ARFCN</td>
<td>&nbsp;BSIC</td>
<td>&nbsp;Orientacion de la Antena</td>
<td>&nbsp;Antena</td>
</tr>

<?php
while($salida2=mysql_fetch_array($result2))//Informacion RF
{
echo 
'<tr>';
echo 
'<td><INPUT TYPE="text" NAME="sectores[]" SIZE="20" MAXLENGTH="30" value="'.$salida2['sectores'].'"></td>';
echo 
'<td><INPUT TYPE="text" NAME="arfcn[]" SIZE="10" MAXLENGTH="30" value="'.$salida2['arfcn'].'"></td>';
echo 
'<td><INPUT TYPE="text" NAME="bsic[]" SIZE="10" MAXLENGTH="30" value="'.$salida2['bsic'].'"></td>';
echo 
'<td><INPUT TYPE="text" NAME="ant_direction[]" WIDTH="auto" MAXLENGTH="30" value="'.$salida2['ant_direction'].'"></td>';
echo 
'<td><INPUT TYPE="text" NAME="antena[]" WIDTH="auto" MAXLENGTH="30" value="'.$salida2['antena'].'">';
echo 
'<INPUT TYPE="hidden" NAME="clave[]" value="'.$salida2['id_sectores'].'">';
echo 
'</td>';
echo 
'</tr>';
}
mysql_free_result($result2);
?>
</table>
<br>

<table border="1" align="center" cellpadding="1" cellspacing="1">
<tr> 
<td>&nbsp;Sectores</td>
<td>&nbsp;1</td>
<td>&nbsp;2</td>
<td>&nbsp;3</td>
.
.
.
<td>&nbsp;HSN&nbsp;</td>
</tr>
<?php
while($salida3=mysql_fetch_array($result3))//Informacion a modificar lista de hopping
{
echo 
'<tr>';
echo 
'<td><INPUT TYPE="text" NAME="sectores[]" SIZE="20" MAXLENGTH="30" value="'.$salida3['sectores'].'"></td>';
.
.
.
echo 
'<td><INPUT TYPE="text" NAME="HSN[]" SIZE="5" MAXLENGTH="30" value="'.$salida3['HSN'].'">';
echo 
'<INPUT TYPE="hidden" NAME="clave[]" value="'.$salida3['id_sectores'].'">';
echo 
'</td>';
echo 
'</tr>';
}
mysql_free_result($result3);
?>
</table>
<br>
<div align="center">Para guardar las modificaciones efectuadas presione modificar
<input type="submit" name="accion" value="Modificar" align="middle">
y esta es la pagina que me hace el update

Código PHP:
<?php
include ("conec.php");

$link=conectarse();

for (
$i=0$i count($_POST['sectores']); $i++)
{

$n_sectores=$_POST['sectores'][$i];
$n_mcc=$_POST['mcc'][$i];
$n_mnc=$_POST['mnc'][$i];
$n_lac=$_POST['lac'][$i];
$n_rac=$_POST['rac'][$i];
$n_ci=$_POST['ci'][$i];
$n_clave=$_POST['clave'][$i];
$n_clave2=$_POST['clave2'][$i];
$n_arfcn=$_POST['arfcn'][$i];
$n_bsic=$_POST['bsic'][$i];
$n_ant_direction=$_POST['ant_direction'][$i];
$n_atn_beam_width=$_POST['ant_beam_width'][$i];
$n_tch_arfcn_1=$_POST['tch_arfcn_1'][$i];
$n_tch_arfcn_2=$_POST['tch_arfcn_2'][$i];
.
.
.
$n_hsn=$_POST['HSN'][$i];

$sql="update sectores,lac set sectores.sectores='$n_sectores', sectores.mcc='$n_mcc', sectores.mnc='$n_mnc', sectores.rac='$n_rac', lac.lac='$n_lac' where sectores.id_sectores='$n_clave' and lac.id_lac='$n_clave2'";//Update de tabla de identificacion global de la celda

$result=mysql_query($sql,$link);
if(!
$result) {die ('Error: '.mysql_error());}

$bcch="update sectores set sectores='$n_sectores', arfcn='$n_arfcn', bsic='$n_bsic', ant_direction='$n_ant_direction', ant_beam_width='$n_atn_beam_width' where id_sectores='$n_clave'";//Update tabla de BCCH

$result2=mysql_query($bcch,$link);
if(!
$result2) {die ('Error: '.mysql_error());}

$lista_hopping="update sectores set sectores='$n_sectores',tch_arfcn_1='$n_tch_arfcn_1', tch_arfcn_2='$n_tch_arfcn_2', ...., HSN='$n_hsn'";/*Update lista de hopping*/

$result3=mysql_query($lista_hopping,$link);
if(!
$result3) {die ('Error: '.mysql_error());}
}
?>
Tengo este problema desde hace varios dias y me lo resolvieron algunos compañeros de este foro (gracias por ello) todo funcionaba perfectamente hasta que le agregue las otras dos tablas no me hace el update de estas dos ultimas... pq sera?
Ayudenme

Última edición por Melania; 26/06/2007 a las 09:30
  #2 (permalink)  
Antiguo 25/06/2007, 19:21
 
Fecha de Ingreso: febrero-2003
Ubicación: Santiago
Mensajes: 220
Antigüedad: 21 años, 2 meses
Puntos: 4
Re: Update en MySql

Asumo que existe la tabla "sectores"

Por lo que veo un "Out of range", es que estas modificando mas columnas de las que tiene la misma tabla.

Y despues tiene una consulta del tipo:
Código PHP:
$lista_hopping="update sectores set sectores='$n_sectores',tch_arfcn_1='$n_tch_arfcn_1', tch_arfcn_2='$n_tch_arfcn_2', ...., HSN='$n_hsn'"
donde tienes un -> .....

Recuerda que no es valido eso

Nos vemos
__________________
Roberto Osses Elgueta
Senior Web Developer
  #3 (permalink)  
Antiguo 26/06/2007, 06:15
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Update en MySql

Gracias por tu respuesta... pero no es asi yo si estoy modificando la cantidad exacta de columnas que tengo en mi tabla, lo que pasa es que uso puntos suspensivos porq son muchos campos para no escribirlos todos y hacer el codigo mas largo aqui en el foro...

Porfa de verdad ne cesito ayuda con esto alguien porfa???
  #4 (permalink)  
Antiguo 26/06/2007, 06:58
Avatar de chuscazo  
Fecha de Ingreso: abril-2004
Mensajes: 84
Antigüedad: 20 años
Puntos: 0
Re: Update en MySql

He visto en los reportes de bugs de mysql http://bugs.mysql.com/ bastantes reportes con ese problema, al parecer tiene que ver con MySQL 5 y algunos tipos de campo. Pero son todos del 2005 o 2006.

Quer version de MySQL estas gastando? desde cuando la tienes parcheada?

Saludos y suerte
  #5 (permalink)  
Antiguo 26/06/2007, 07:19
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Update en MySql

Hola Gracias por responder.. la version de Mysql que tengo es la 5 y es la unica que he utilizado ya que soy nueva programando, crees que pueda ser una falla de la BD?
  #6 (permalink)  
Antiguo 26/06/2007, 07:32
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: Update en MySql

Hola posiblemente te falte el SET en tu UPDATE, LA SENTENCIA ES ALGO ASI:

UPDATE tabla SET campos a cambiar CONDICION

Salu2 y suerte ;)
__________________
"Eres grande por que caminas entre gigantes"
  #7 (permalink)  
Antiguo 26/06/2007, 09:29
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Update en MySql

Listo ya quedo solucionado mi problema! gracias a todos los que respondieron
  #8 (permalink)  
Antiguo 26/06/2007, 17:10
 
Fecha de Ingreso: junio-2007
Mensajes: 1
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Update en MySql

disculpa...¿como lo solucionaste?

tengo el mismo problema

muchas gracias
  #9 (permalink)  
Antiguo 27/06/2007, 08:52
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Update en MySql

Bueno te comento que en mi caso eran errores de sintaxis, y errores al momento de declarar los campos en la BD por ejemplo se me presento un problema porq uno de los campos lo tenia declarado como integer y estaba tratando de dejar la casilla en blanco, y claro me aparecia el error "out of range", otra cosa revisa bien que estas modificando los campos exactos y con los nombres que son pq tambien tuve un inconveniente con ello..

Bueno suerte y bye!

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 16:59.