Foros del Web » Programando para Internet » PHP »

Asignar un texto (string) a una posición de un Arreglo

Estas en el tema de Asignar un texto (string) a una posición de un Arreglo en el foro de PHP en Foros del Web. Que tal Maestros, Estoy usando este codigo, en un script que me genera un formato (que funciona bien). Código PHP: $sql = "SELECT fi.consecutivo as consecutivo_fianza, UPPER(af.nombre) as afianzado FROM fianzas fi, afianzados af ...
  #1 (permalink)  
Antiguo 26/07/2008, 15:40
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Asignar un texto (string) a una posición de un Arreglo

Que tal Maestros,

Estoy usando este codigo, en un script que me genera un formato (que funciona bien).

Código PHP:
$sql="SELECT fi.consecutivo as consecutivo_fianza,
UPPER(af.nombre) as afianzado
FROM fianzas fi, afianzados af
WHERE fi.id_afianzado=af.id_afianzado 
AND fi.id_fianza='"
.$_GET['id_fianza']."'";

$equivalencias[0][0]="#*afianzado*#";
$equivalencias[0][1]="afianzado";
$equivalencias[1][0]="#*consecutivo_fianza*#";
$equivalencias[1][1]="consecutivo_fianza"
La pregunta es como podría hacer para asignarle a una posición del arreglo un valor (string) de una variable............que no esté en la consulta ?


He intentado algo como :

Código PHP:
$equivalencias[1][1]=$texto
Pero no funciona...


Alguna idea ?

Muchas Gracias de Antemano.
__________________
EL LIMITE ES EL UNIVERSO
  #2 (permalink)  
Antiguo 26/07/2008, 23:06
Avatar de Gerifaltus  
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 180
Antigüedad: 18 años, 9 meses
Puntos: 4
Respuesta: Asignar un texto (string) a una posición de un Arreglo

Estoy tratando de entender tu pregunta pero no logro captar bien la idea.

Tal vez si nos dijeras cual es el objetivo de asignar un string en un posición de un array probablemente la solución a tu problema sea de otra manera y no usando un array.

Saludos.
__________________
:::.. Todo tiene un ¿Por qué? y un ¿Para qué? ..:::
:::.. Todo se reduce a un SI y a un No ..:::
  #3 (permalink)  
Antiguo 27/07/2008, 14:08
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: Asignar un texto (string) a una posición de un Arreglo

Hola Gerifaltus, gracias por contestar, varias cosas :

1. Estoy usando este codigo para generar un archivo de word .rtf como se ve en este turorial : http://www.desarrolloweb.com/articulos/1826.php

2. Ya lo tengo y me funciona perfecto.

3. En el formato que estoy generando en word tiene que aparecer una cifra, por ejemplo 100257, pero se requiere que aparezca con el formato de numero, como 100,257.00

4. Dicho formato hasta donde sé no puedo darlo desde mysql, es decir desde la conuslta no se puede...............entonces debo pasarselo al arreglo que menciono como un string, haciendo algo como :


Código PHP:
$equivalencias[1][1]=number_format($texto['contrato_valor'],2,".",","); 
Para que en el formato me aparezca con el formato numero.............................

5. Hasta ahora no consigo resolverlo. Muchasa Gracias por cualquier solucion que se me pueda brindar. Saludos.
__________________
EL LIMITE ES EL UNIVERSO
  #4 (permalink)  
Antiguo 27/07/2008, 14:31
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: Asignar un texto (string) a una posición de un Arreglo

se me ocurre esto,,,
para formato a decimales, en el caso del punto

$valor=100257;

$valor=sprintf("%.2f",$numero);

se nos genera una cadena igual a "100257.00"
hacemos un explode a esa cadena

$valor2=explode(".",$valor);
se nos generan 2 cadenas

$valor2[0]="100257";
$valor2[1]="00"

ahora incias al reves del largo de la cadena y por cada 3 dígitos colocas una coma (,).
al final, colocas los valores concatenados, no te olvides del punto..

prácticamentes esto es para dividir de manera lógica y juntar todo al final.

cualquier duda comenta.
__________________
" La vida es un programa que no hemos logrado depurar."
"El programar tu vida es como si le metieras más errores a tu futuro, el proceso es ahora"
  #5 (permalink)  
Antiguo 27/07/2008, 16:43
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: Asignar un texto (string) a una posición de un Arreglo

Hola Noorpoll...

Al intentar asignar valores como por ejemplo :

Código PHP:
$equivalencias[2][1]="100257"
El arreglo no los toma, entonces no aparece nada en el formato.}


Alguna otra alternativa ? Gracias.
__________________
EL LIMITE ES EL UNIVERSO
  #6 (permalink)  
Antiguo 27/07/2008, 17:07
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: Asignar un texto (string) a una posición de un Arreglo

mmm, aplica una impresion a tu matriz antes de enviarlo a rtf, acuerdate de que debes de usar doble ciclo, para que recorra toda la matriz

for ($i=0...
for($j=0...

echo $matriz[$i][$j];


para que veamos cual es el problema.
__________________
" La vida es un programa que no hemos logrado depurar."
"El programar tu vida es como si le metieras más errores a tu futuro, el proceso es ahora"
  #7 (permalink)  
Antiguo 27/07/2008, 17:25
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: Asignar un texto (string) a una posición de un Arreglo

El arreglo sale así..............notese que hace refencia los alias de la consulta, pero en el valor del numero lo toma directamente..........


Código PHP:
#*afianzado*#
afianzado
#*valor_letras*#
valor_letras
#*valor_numero*#
100257
#*consecutivo_fianza*#
consecutivo_fianza
#*beneficiario*#
beneficiario
#*dias*#
dias
#*mes*#
mes
#*ano*#
ano 
__________________
EL LIMITE ES EL UNIVERSO
  #8 (permalink)  
Antiguo 27/07/2008, 17:51
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: Asignar un texto (string) a una posición de un Arreglo

bueno, por qué no utilizas otra matriz,, reasigna los datos que obtienes de las consultas y haces lo necesario en el valor numérico antes de reasignarlo, prueba enviando el valor de la segunda matriz.
__________________
" La vida es un programa que no hemos logrado depurar."
"El programar tu vida es como si le metieras más errores a tu futuro, el proceso es ahora"
  #9 (permalink)  
Antiguo 28/07/2008, 00:46
Avatar de Gerifaltus  
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 180
Antigüedad: 18 años, 9 meses
Puntos: 4
Respuesta: Asignar un texto (string) a una posición de un Arreglo

Ya entendí lo que quiere hacer jpogsistem, el problema no es la acción de convertir el numero normal "100257" hacia un número con formato "100,257.00", sino que el arreglo no está tomando esa conversíon, es decir, con la función number_format() convierte la cantidad, pero el arreglo no acepta esa cantidad formateada.

jpogsistem, haz una prueba, yo acabo de hacer lo siguiente con un archivo php en blanco.

Código PHP:
$numero "100257";
stripcslashes($numero);
$arreglo[2][1] = number_format($numero,2,".",",");
print_r($arreglo); 
Y al momento de mandarlo a imprimir si funciona, es decir, me aparece lo siguiente:

Código PHP:
Array ( [2] => Array ( [1] => 100,257.00 ) ) 
Está un poco raro, debería tomar el valor formateado.....

P.D. Tengo instalado XAMPP versión 1.6.3a basic (Apache 2.2.4, MySQL 5.0.45, PHP 5.2.3)
__________________
:::.. Todo tiene un ¿Por qué? y un ¿Para qué? ..:::
:::.. Todo se reduce a un SI y a un No ..:::
  #10 (permalink)  
Antiguo 28/07/2008, 02:35
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Asignar un texto (string) a una posición de un Arreglo

prueba con esto:

Código PHP:
$sql="SELECT fi.consecutivo as consecutivo_fianza,
UPPER(af.nombre) as afianzado
FROM fianzas fi, afianzados af
WHERE fi.id_afianzado=af.id_afianzado 
AND fi.id_fianza='"
.$_GET['id_fianza']."'";

$equivalencias = array();

$equivalencias[0][0]="#*afianzado*#";
$equivalencias[0][1]="afianzado";
$equivalencias[1][0]="#*consecutivo_fianza*#";
$equivalencias[1][1]="consecutivo_fianza"
a ver si asi te funciona y te deja acceder a cualquier "casilla" del array.
  #11 (permalink)  
Antiguo 31/07/2008, 22:40
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: Asignar un texto (string) a una posición de un Arreglo

Que tal Masters................No han funcionado las ultimas sugerencias realizadoas. Dejo el codigo completo por si se les ocurre alguna otra cosa.

Saludos.


Código PHP:
function leef ($fichero) {
    
$texto file($fichero);
    
$tamleef sizeof($texto);
    
$todo="";
    for (
$n=0;$n<$tamleef;$n++) {$todo$todo.$texto[$n];}
    return 
$todo;
}
//funcion que genera un rtf
function rtf($sql$plantilla$fsalida$matequivalencias){
$prepre=time();
$pre=$prepre;
global 
$nombre_archivo;
$nombre_archivo=$prepre."constancia".".rtf";
$fsalida="constancias_generadas/".$prepre.$fsalida;

mysql_connect("$hosting""$user""pass");//Paso no 1.-Leo una plantilla rtf
$txtplantilla leef($plantilla);//Paso no.2 Saca cabecera, el cuerpo y el final
$matriz=explode("sectd"$txtplantilla);
$cabecera=$matriz[0]."sectd";
$inicio=strlen($cabecera);
$final=strrpos($txtplantilla,"}");
$largo=$final-$inicio;
$cuerpo=substr($txtplantilla$inicio$largo);//Paso no.3 Escribo el fichero
$punt fopen($fsalida"w");
fputs($punt$cabecera);
mysql_select_db("base");
$result =mysql_query($sql); 
While(
$row=mysql_fetch_object($result)){
      
$despues=$cuerpo;
      foreach (
$matequivalencias as $dato) {
      
$datosql=$row->$dato[1];
      
$datosqlstripslashes ($datosql);
      
$datortf=$dato[0];
      
$despues=str_replace($datortf,$datosql,$despues);
    }
    
fputs($punt,$despues);
      
$saltopag="\par";//$saltopag="\par\page\par";
      
fputs($punt,$saltopag);
}
fputs($punt,"}");
fclose ($punt);
return 
$fsalida;
}
$plantilla $generar.".rtf";
//$sql = "select provider_name, provider_address, provider_city, provider_country, provider_phones, patient_name, payor_name, payor_address, payor_city, payor_state, payor_country, payor_phone1, payor_phone2, card_number, card_type, charges from credit_card where ID ='".$new_id ."'";

$sql="SELECT fi.consecutivo as consecutivo_fianza, CONCAT('$',' ', fi.total_a_pagar) as valor_numero, 
UPPER(af.nombre) as afianzado, UPPER(bn.nombre) as beneficiario, UPPER(fi.valor_a_pagar_en_letras) as valor_letras,
SUBSTRING(CURDATE(),9,2) as dias, 
CASE MONTHNAME(CURDATE())
WHEN 'January' THEN 'Enero'
WHEN 'February' THEN 'Febrero'
WHEN 'March' THEN 'Marzo'
WHEN 'April' THEN 'Abril'
WHEN 'May' THEN 'Mayo'
WHEN 'June' THEN 'Junio'
WHEN 'July' THEN 'Julio'
WHEN 'August' THEN 'Agosto'
WHEN 'September' THEN 'Septiembre'
WHEN 'October' THEN 'Octubre'
WHEN 'November' THEN 'Noviembre'
WHEN 'December' THEN 'Diciembre'
END as mes,
SUBSTRING(CURDATE(),1,4) as ano
FROM fianzas fi, afianzados af, beneficiarios bn
WHERE fi.id_afianzado=af.id_afianzado AND fi.id_beneficiario=bn.id_beneficiario
AND fi.id_fianza='"
.$_GET['id_fianza']."'";



$equivalencias[0][0]="#*afianzado*#";
$equivalencias[0][1]="afianzado";
$equivalencias[1][0]="#*valor_letras*#";
$equivalencias[1][1]="valor_letras";
$equivalencias[2][0]="#*valor_numero*#";
$equivalencias[2][1] = "valor_numero";
$equivalencias[3][0]="#*consecutivo_fianza*#";
$equivalencias[3][1]="consecutivo_fianza";
$equivalencias[4][0]="#*beneficiario*#";
$equivalencias[4][1]="beneficiario";
$equivalencias[5][0]="#*dias*#";
$equivalencias[5][1]="dias";
$equivalencias[6][0]="#*mes*#";
$equivalencias[6][1]="mes";
$equivalencias[7][0]="#*ano*#";
$equivalencias[7][1]="ano";

$salida rtf($sql$plantilla$generar.".rtf"$equivalencias);


$salida ="<A href='$salida'><img src='../../../../assets/images/imprimir_constancia_de_pago.gif' width='198' height='16' border='0'></a>";
echo 
$salida
__________________
EL LIMITE ES EL UNIVERSO
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 19:39.