Foros del Web » Programando para Internet » PHP »

Ayuda con Substr

Estas en el tema de Ayuda con Substr en el foro de PHP en Foros del Web. Que tal, Resulta que a partir de un numero que tomo de base de datos quiero hacer lo siguiente: Por ejemplo: 2020-1 Y quiero aumentarlo ...
  #1 (permalink)  
Antiguo 21/10/2005, 15:13
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Ayuda con Substr

Que tal,

Resulta que a partir de un numero que tomo de base de datos quiero hacer lo siguiente:

Por ejemplo: 2020-1 Y quiero aumentarlo a 2020-2

Tengo:

El valor inicial de $valor2=2020-1

Código PHP:
$valor3=substr($valor2,0,4);//Aqui supuestamente asigna a $valor3=2020 sin - 1
$valor4=substr($valor2,5,6); //Aqui supuestamente captura el Numero luego del guion en este caso 1
$numerico=1// Inicializo una variable 
$valor5=$valor4 $numericoAqui $valor5 debe ser 2
$valor6
=$valor3."-".$valor5;//Aqui "armo" de nuevo todo supuestamente 2020-2 
Pero siempre me sale 2020-1 Estoy seguro de que la dificultad es la captura del número final en la línea

Código PHP:
$valor4=substr($valor2,5,6); 
Es decir auí captura el 1 de 2020-1 ???

Creo que está mal leí la función en:

http://www.php.net/manual/es/function.substr.php

Pero no entiendo...

Espero vuestra ayuda, Gracias de antemano.
  #2 (permalink)  
Antiguo 21/10/2005, 15:39
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 2 meses
Puntos: 10
Tengo que decirte que a mi tal cual como lo tenés vos me funciona a la perfección (copie tal cual lo pusiste y le agregue un "echo $valor6;" al final y me devolvio 2020-2).

De todas formas si queres una alternativa podrias usar algo asi;
Código PHP:
$numerico=1
$valor2="2020-1";
$valor2explode("-"$valor2);
$valor3=$valor2[1] + $numerico
$valor4=$valor2[0]."-".$valor3
__________________
oohh... quisiera ser godines!!!
  #3 (permalink)  
Antiguo 21/10/2005, 16:56
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Gracias, quizás se me esté escapando algo, aquí todo el code:

Código PHP:
$resultado2 mysql_db_query("mi_base_de_datos","select number from invoice where id=(select Max(id) from 
invoice WHERE number like '$valor')"
); 
while(
$row2 mysql_fetch_array($resultado2)) 
{
$valor2=$row2["number"];
}
$valor3=substr($valor2,0,4);
$valor4=substr($valor2,5,6);
$numerico=1;
$valor5=$valor4 $numerico;
$valor6=$valor3."-".$valor5
  #4 (permalink)  
Antiguo 21/10/2005, 17:14
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 2 meses
Puntos: 10
si estas seguro que al momento de hacer $valor3=substr($valor2,0,4); el valor de $valor2 es 2020-1, lo otro no tiene porque hacer que el resto del codigo no te devuelva lo que queres.

¿Estas seguro que si pones "echo $valor6;" despues de $valor6=$valor3."-".$valor5; te devuelve el valor original de $valor2?

De ser asi, podrias probar con el ejemplo que te pase.

una cosa aparte, podrias cambiar esto:

Código PHP:
while($row2 mysql_fetch_array($resultado2))
{
$valor2=$row2["number"];

por esto

Código PHP:
$valor2 mysql_result($resultado20
__________________
oohh... quisiera ser godines!!!
  #5 (permalink)  
Antiguo 24/10/2005, 07:56
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Gracias por contestar,

He realizado varios echo para ver los valores, en:

Código PHP:
$valor3=substr($valor2,0,4);//sustr
echo $valor3;
$valor4=substr($valor2,5,6);
echo 
$valor4
Teniendo como entrada 2020-1

$valor3 si toma el valor de 2020

Pero $valor4 no toma el valor 1

es decir la instrucción:

Código PHP:
$valor4=substr($valor2,5,6); 
Es la correcta para tomar el valor 1 cuando la cadena es 2020-1 ???

Esto es lo que está fallando.

Gracias.
  #6 (permalink)  
Antiguo 24/10/2005, 08:15
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por php.net
substr() devuelve la porción de cadena especificada por los parámetros comienzo y longitud.
OJO! longitud...

Si es el último carácter igual puedes hacerlo con:
Código PHP:
$valor4substr($valor2, -11
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 24/10/2005, 08:39
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Ah ok. he verificado que esa no es la falla, saludos.
  #8 (permalink)  
Antiguo 24/10/2005, 14:26
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 2 meses
Puntos: 10
y cual era la falla al final?
__________________
oohh... quisiera ser godines!!!
  #9 (permalink)  
Antiguo 24/10/2005, 15:24
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Que el valor de entrada, por ejemplo 2020-1 lo tomo de un select, que pruebo en mysql y funciona perfectamente, pero en php no me funciona.

Saludos y Gracias.

Última edición por jam1138; 24/10/2005 a las 19:26
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:06.