Foros del Web » Programando para Internet » PHP »

problema con concatenar

Estas en el tema de problema con concatenar en el foro de PHP en Foros del Web. buenas tengo una varible que trae los valores como resultado de otro arreglo mas grande , y trato de crear un segundo array con estos ...
  #1 (permalink)  
Antiguo 22/02/2011, 10:26
 
Fecha de Ingreso: febrero-2011
Mensajes: 167
Antigüedad: 13 años, 2 meses
Puntos: 9
problema con concatenar

buenas tengo una varible que trae los valores como resultado
de otro arreglo mas grande , y trato de crear un segundo array con estos
valores de la varible idsuccli y como necesito imprimir pero que nose repitan
uso el array_unique, pero antes de todo creo una cadena con los valores que vienen
idsuccli , pero nose que esta fallando por que la hora deimprimir sigue imprimiento
todo incluso los que se repiten ojala laguien pueda guiarme por que me parece raro

$texto = " ";
$texto .= $idsuccli;
$d=$texto;
$input=explode(" ",$texto);
$result = array_unique($input);
foreach ($result as $w=>$c){
$c." ";
}
  #2 (permalink)  
Antiguo 22/02/2011, 10:30
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: problema con concatenar

Saludos

Postea todo el codigo completo!
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 22/02/2011, 11:04
 
Fecha de Ingreso: febrero-2011
Mensajes: 167
Antigüedad: 13 años, 2 meses
Puntos: 9
Respuesta: problema con concatenar

$archivo = file("datos.txt");
$lineas = count($archivo);
$clientes = array();
for($i=0; $i < $lineas; $i++)
{
$cadena=$archivo[$i];
if(empty($cadena))
{
continue;
}


$cad1 = ltrim(rtrim(substr($cadena, 0, 10)));
$nroped = ltrim(rtrim(substr($cadena, 10, 10)));
$codcli = ltrim(rtrim(substr($cadena, 20, 15)));
$descli = ltrim(rtrim(substr($cadena, 35, 60)));
$dirdesp = ltrim(rtrim(substr($cadena, 86, 39)));
$distdesp = ltrim(rtrim(substr($cadena, 155, 40)));
$provdesp = ltrim(rtrim(substr($cadena, 195, 40)));
$depdesp = ltrim(rtrim(substr($cadena, 235, 40)));
$codart = ltrim(rtrim(substr($cadena, 275, 20)));
$bulto = ltrim(rtrim(substr($cadena, 296, 14)));
$cubicaje = ltrim(rtrim(substr($cadena, 309, 20)));
//$peso = ltrim(rtrim(substr($cadena, 324, 14)));
$peso = ltrim(rtrim(substr($cadena, 323, 14)));

if(isset($clientes[$cad1]))
{
$clientes[$cad1] = array(
'nroped' => $nroped,
'codcli' => $codcli,
'descli' => $descli,
'dirdesp' => $dirdesp,
'distdesp' => $distdesp,
'provdesp' => $provdesp,
'depdesp' => $depdesp,
'codart' => $codart,
'bulto' => $bulto + $clientes[$cad1]['bulto'],
'cubicaje' => $cubicaje + $clientes[$cad1]['cubicaje'],
'peso' => $peso + $clientes[$cad1]['peso']);
}
else
{
$clientes[$cad1] = array(
'nroped' => $nroped,
'codcli' => $codcli,
'descli' => $descli,
'dirdesp' => $dirdesp,
'distdesp' => $distdesp,
'provdesp' => $provdesp,
'depdesp' => $depdesp,
'codart' => $codart,
'bulto' => $bulto,
'cubicaje' => $cubicaje,
'peso' => $peso);
}
}
?>
<?php
foreach($clientes as $id => $datos) {

$idsuccli=$datos['codcli'];
?>
<tr>
<td height="24"><div align="center">

?>
///////////////aqui empieza
$texto = "";
$texto .= $idsuccli;
echo '"'.$texto.'"';
$input=explode(" ",'$texto');
$result = array_unique($input);
foreach ($result as $w=>$c){
//echo $c." ";
}



}
  #4 (permalink)  
Antiguo 22/02/2011, 11:11
 
Fecha de Ingreso: marzo-2004
Ubicación: España
Mensajes: 185
Antigüedad: 20 años, 1 mes
Puntos: 19
Respuesta: problema con concatenar

No tendrias que hacer idsuccli.=$datos['codcli']." ";

?
__________________
Escape Room -

Ios Games
  #5 (permalink)  
Antiguo 22/02/2011, 11:31
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: problema con concatenar

1. haces cosas innecesarias: $cad1 = ltrim(rtrim(substr($cadena, 0, 10))); puedes dejarla simplemente en $cad1 = trim(substr($cadena, 0, 10));
2.
$texto = "";
$texto .= $idsuccli; puede quedar simplemente como
$texto = $idsuccli;
3. entiendo que quieres sacar una lista con los diferentes id de los clientes, pero aparte de otras cosas innecesarias, ahí veo que la impresión de los ids la haces por cada vez que lees un cliente, en otras palabra por cada cliente repites la lista completa.

Si lo que quieres en esta parte es imprimir sólo los ids (sin los demás datos) puedes dejarlo así:
foreach($clientes as $id => $datos)
echo "<tr><td height=\"24\">$datos[codcli]</td></tr>";

por cierto, si estas metiendo el div dentro del td sólo para centrar el texto, mejor usa estilo en el td:
echo "<tr><td style=\"height:24px;text-align:center;\">$datos[codcli]</td></tr>";

o mejor aún, usa estilos css.
  #6 (permalink)  
Antiguo 22/02/2011, 11:31
 
Fecha de Ingreso: febrero-2011
Mensajes: 167
Antigüedad: 13 años, 2 meses
Puntos: 9
Respuesta: problema con concatenar

$newcliente="select * from SUCCLIXCTA where IDSUCCLICTA ='$idsuccli'";
$rsnewcliente=mssql_query($newcliente);
$nronewcliente=mssql_num_rows($rsnewcliente);

if($nronewcliente=='0'){


y recien solo los $idsuccli' que no estan en la base de datos son los que debo trbajar osea aqui
es donde utilizo que nose repritan

}
  #7 (permalink)  
Antiguo 22/02/2011, 12:15
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: problema con concatenar

Pues sigo sin aclararme... en sí en general que quieres hacer?
veo que lees un archivo de texto.
si quieres meter datos del archivo de texto en la bd pero que no repita los clientes, simple: pon como clave unica el campo identificador del cliente, así cuando metas los datos si ya existen no se sobre escriben.
Si lees datos del archivo y quieres tomar sólo aquellos que no están en la bd puedes hacer esto:

$rsnewcliente=mssql_query("select IDSUCCLICTA from SUCCLIXCTA ");
while ($c=mssql_num_rows($rsnewcliente))
$lclientes[]=$c["IDSUCCLICTA "];

así tendrás la lista de los que ya están en BD. luego, al momento de leerlos en el archivo,
if(!in_array($codcli,$lclientes))
trabajo con el cliente;
else
no hago nada.

Ahora bien, si son miles de clientes, puedes buscar uno por uno en la bd para no alojarlos en memoria y saturarla.
  #8 (permalink)  
Antiguo 22/02/2011, 12:24
 
Fecha de Ingreso: febrero-2011
Mensajes: 167
Antigüedad: 13 años, 2 meses
Puntos: 9
Respuesta: problema con concatenar

no quiero los que estan en base de datos sino los que no estan $idsuccli y que nose repitan ya que vienen del txt alguien sabe si debo usar prerg_replace o algo para colocarlos aunque sea como vacios si ya lo tine la cadena , se que php no tine un data set pero que puedo hacer?

Etiquetas: concatenar
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 10:21.