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($resultado2, 0)