Foros del Web » Programando para Internet » PHP »

Cambiar contenido de VARCHAR()

Estas en el tema de Cambiar contenido de VARCHAR() en el foro de PHP en Foros del Web. Hola amigos: Tengo una tabla con dos campos de SVLETRA1 y SVLETRA2 del tipo VARCHAR(1), intento cambiar mediante la siguiente rutina y no lo consigo. ...
  #1 (permalink)  
Antiguo 26/10/2008, 11:41
 
Fecha de Ingreso: mayo-2006
Mensajes: 59
Antigüedad: 17 años, 11 meses
Puntos: 0
Cambiar contenido de VARCHAR()

Hola amigos:
Tengo una tabla con dos campos de SVLETRA1 y SVLETRA2 del tipo VARCHAR(1), intento cambiar mediante la siguiente rutina y no lo consigo.
Aqui dejo simplificada la rutina por si alguno me puede orientar.
Código PHP:
$result mysql_query("SELECT * FROM VISITES"$mysql_link);
$myrow mysql_fetch_array($result);
$cLetra2 $myrow["VSLETRA2"];    
if (
$Cletra2 == "Z"){
    
$cLetra1 "A";
    
$cLetra2 "A";                        
}ELSE{
    
$cLetra1 "Z";
    
$cLetra2 "Z";                        
}
$strSQL2 "UPDATE VISITES SET " ;
$strSQL2 $strSQL2"VSFECHA = '".$Fecha ."' ";
$strSQL2 $strSQL2",VSLETRA1 = '".$cLetra1."' ";
$strSQL2 $strSQL2",VSLETRA2 = '".$cLetra2."'";                
mysql_query($strSQL2$mysql_link); 
Muchas gracias.
  #2 (permalink)  
Antiguo 26/10/2008, 11:43
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: Cambiar contenido de VARCHAR()

No entiendo lo que tratas de hacer, ¿podrias explicarte un poquito mas?
  #3 (permalink)  
Antiguo 26/10/2008, 11:55
 
Fecha de Ingreso: mayo-2006
Mensajes: 59
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: Cambiar contenido de VARCHAR()

Como he comentado antes la rutina es mas complicada y lo que he hecho es simplificarla, se trata de lo siguiente.
Incialmente tanto VSLETRA1 como VSLETRA2 tienen valor "A", a partir de aqui voy cambiando el valor del campo VSLETRA2 con valores consecutivos B,C,D,E,F,G ...., cuando este valor llega a "Z" este toma valor A y VSLETRA1 toma el siguiente valor B,C,D,E,F,G.... .

Esta es la rutina completa.

Código PHP:
        $hoy=getdate(); 
        
$Fecha$hoy["year"]. $hoy["mon"].$hoy["mday"]; 
        
$result mysql_query("SELECT * FROM VISITES"$mysql_link);
        
$myrow mysql_fetch_array($result);
        
//if ($myrow = mysql_fetch_array($result)) {            
            
$cLetra1 $myrow["VSLETRA1"];
            
$cLetra2 $myrow["VSLETRA2"];                    
            if (
$Fecha  == $myrow["VSFECHA"] ) {
                
$cLetras =  "ABCDEFGHIJKLMNOPQRSTUVXYZ";   
                if (
$Cletra2 == "Z"){
                    
$cLetra1 SUBSTR($cLetrasSTRPOS($cLETRAS,$cLetra1)+1,1);
                    
$cLetra2 "A";
                }ELSE{
                    
$cLetra2 SUBSTR($cLetrasSTRPOS($cLETRAS,$cLetra2)+1,1);
                }
            }Else{
                 
$cLetra1 "A";
                 
$cLetra2 "A";
            } 
            
$strSQL2 "UPDATE VISITES SET " ;
            
$strSQL2 $strSQL2"VSFECHA = '".$Fecha ."' ";
            
$strSQL2 $strSQL2",VSLETRA1 = '".$cLetra1."' ";
            
$strSQL2 $strSQL2",VSLETRA2 = '".$cLetra2."'";                
            
mysql_query($strSQL2$mysql_link); 

Gracias por tan rapida respuesta.
  #4 (permalink)  
Antiguo 26/10/2008, 12:59
 
Fecha de Ingreso: septiembre-2003
Mensajes: 54
Antigüedad: 20 años, 7 meses
Puntos: 2
Respuesta: Cambiar contenido de VARCHAR()

$strSQL2 = "UPDATE VISITES SET " ;
$strSQL2 = $strSQL. "VSFECHA = '".$Fecha ."' ";
$strSQL2 = $strSQL. ",VSLETRA1 = '".$cLetra1."' ";
$strSQL2 = $strSQL. ",VSLETRA2 = '".$cLetra2."'";

Aqui reemplaza por el de arriba. creo xD
trata

$strSQL2 .= "UPDATE VISITES SET " ;
$strSQL2 .= "VSFECHA = '".$Fecha ."' ";
$strSQL2 .= " ,VSLETRA1 = '".$cLetra1."' ";
$strSQL2 .= " ,VSLETRA2 = '".$cLetra2."' ";
__________________
Kame Kame AH
  #5 (permalink)  
Antiguo 26/10/2008, 15:59
 
Fecha de Ingreso: mayo-2006
Mensajes: 59
Antigüedad: 17 años, 11 meses
Puntos: 0
Lo he probado y no me funciona.
Reitero mis gracias.

En realidad el tema de UPDATE funciona correctamente, es el proceso anterior el que me falla.Hay alguien que me pueda dar alguna otra opcion.
Gracias de nuevo

Última edición por GatorV; 27/10/2008 a las 16:30
  #6 (permalink)  
Antiguo 27/10/2008, 16:11
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Cambiar contenido de VARCHAR()

varchar es de 255 caracteres pero no entiendo por que no haces uso de CHAR() la cual es de 0 a 255. no se si lo que quieres es hacerle un chop a el string.. pero de todos modos te paso esto para que puedas tener alguna idea si es esto lo que necesitas...


function limitar( $str, $n )
{
if ( strlen ( $str ) <= $n )
{
return $str;
}
else {
return substr ( $str, 0, $n ) . '...';
}
}
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #7 (permalink)  
Antiguo 27/10/2008, 20: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: Cambiar contenido de VARCHAR()

Cita:
Iniciado por Pinyo22 Ver Mensaje
Lo he probado y no me funciona.
Reitero mis gracias.

En realidad el tema de UPDATE funciona correctamente, es el proceso anterior el que me falla.Hay alguien que me pueda dar alguna otra opcion.
Gracias de nuevo
Talvez porque en tu script creas la variable $cLetras, y en tu funcion llamas a $cLETRAS.

Recuerda que los nombres de las variables son case sensitive.

Cita:
varchar es de 255 caracteres pero no entiendo por que no haces uso de CHAR() la cual es de 0 a 255.
Varchar tambien tiene ese rango. La diferencia esta en como se almacenan los datos. Cuando usas CHAR, si el contenido es menor de la cantidad de caracteres, MySQL lo llena con espacios en blanco, pero con varchar no. Varchar ocupa menos espacio, pero consume mas ... Char ocupa mas espacio y consume menos (es mas rapido que char)
  #8 (permalink)  
Antiguo 28/10/2008, 13:35
 
Fecha de Ingreso: mayo-2006
Mensajes: 59
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: Cambiar contenido de VARCHAR()

Primero, ha sido una clase magistral, al final acabare aprendiendo PHP.

Primero he modificado el tipo de los campos y los he puesto como CHAR(1) y he puesto todas las variables con el misma letras(Mayusculas y Minusculas).

A continuación he hecho una serie de pruebas y los resultados son los siguientes:

Les doy un valor fijo
Código PHP:
    $cLetra1 "A";
    
$cLetra2 "A"
El resultado de la grabacion en la tabla es el correcto.

En este caso intercambie los valores entre los campos
Código PHP:
    $cLetra2 $myrow["VSLETRA1"];
    
$cLetra1 $myrow["VSLETRA2"]; 
Y tambien funcionó bien, el resultado de las grabaciones era el intercambio de sus valores.

El valor de VSLETRA2 es "Z"
Código PHP:
    $cLetra3 $myrow["VSLETRA2"];
    
$cLetra1 "H";
    
$cLetra2 "H";                        
     if (
$cLetra3 == "Z"){
        
$cLetra1 "A";
        
$cLetra2 "A";                        
    }ELSE{
        
$cLetra1 "Z";
        
$cLetra2 "Z";                        
    } 
Valor resultante "Z" y "Z"

Gracias a todos.
  #9 (permalink)  
Antiguo 28/10/2008, 16:44
 
Fecha de Ingreso: mayo-2006
Mensajes: 59
Antigüedad: 17 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Cambiar contenido de VARCHAR()

Hola de nuevo:
En vista de que no conseguia que funcionara esta rutina, le he dado un nuevo enfoque y ha sido usando las funciones ORD y CHR, con resultados positivos.
Adjunto muestro la rutina por si puede resultar de utilidad para alguien.

Código PHP:
if ($Fecha  == $myrow["VSFECHA"] ) {
       
$cLetra1 ord($myrow["VSLETRA1"]);
       
$cLetra2 ord($myrow["VSLETRA2"]);
       if (
$cLetra2 == 90){
            
$cLetra1 $cLetra1 1
            
$cLetra2 65;                    
      }ELSE{
             
$cLetra2 $cLetra2 1;                 
      } 
}Else{
      
$cLetra1 65;    
      
$cLetra2 65;    

$strSQL2 "UPDATE VISITES SET " ;
$strSQL2 $strSQL2"VSFECHA = '".$Fecha ."'  ";
$strSQL2 $strSQL2",VSLETRA1 = '".CHR($cLetra1)."' ";
$strSQL2 $strSQL2",VSLETRA2 = '".CHR($cLetra2)."'"
Agradezco a todos vuestras aportaciones.
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 11:44.