Foros del Web » Programando para Internet » PHP »

Duda con explode

Estas en el tema de Duda con explode en el foro de PHP en Foros del Web. Tengo un textarea de nombre $_POST['codigos']. Al apreta el boton, me busca los resultados sobre ese numero que coloco. Le coloqué un explode para que ...
  #1 (permalink)  
Antiguo 10/07/2007, 13:29
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 18 años, 4 meses
Puntos: 2
Duda con explode

Tengo un textarea de nombre $_POST['codigos']. Al apreta el boton, me busca
los resultados sobre ese numero que coloco. Le coloqué un explode para que si coloco 2 numeros diferentes con un enter (\r\n) me muestre los 2 resultados.
Hasta acá funciona todo barbaro, salvo que si en el textarea además de colocarle los 2 numeros diferentes le agrego un enter, me muestra todos los resultados que estan en la tabla.
Quisiera saber si tengo mal el explode o es otra cosa.. gracias!

Código PHP:
$codigos explode("\r\n",$_POST['codigos']); 
  #2 (permalink)  
Antiguo 10/07/2007, 13:51
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 8 meses
Puntos: 10
Re: Duda con explode

A ver si entendí bien, si después del último número se agrega un "enter" quieres eliminarlo?
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #3 (permalink)  
Antiguo 10/07/2007, 14:06
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 18 años, 4 meses
Puntos: 2
Re: Duda con explode

ahi va un ejemplo TolerantX :

2323232424 <br>
343434343 <br>

obviamente los <br> los genera invisibles al presionar ENTER. Ocurre que si al agregar el ultimo numero presiono ENTER, me muestra todos los resultados.
LA idea sería que por mas de que se apreten x cantidad de ENTER despues del ultimo numero no los tenga en cuenta, los elimine.
  #4 (permalink)  
Antiguo 10/07/2007, 14:23
 
Fecha de Ingreso: junio-2007
Ubicación: por ahi
Mensajes: 262
Antigüedad: 17 años, 4 meses
Puntos: 4
Re: Duda con explode

Prueba utilizando trim es decir



$codigos = explode("\r\n",trim($_POST['codigos']));
  #5 (permalink)  
Antiguo 10/07/2007, 14:26
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 8 meses
Puntos: 10
Re: Duda con explode

Supongo que recorres $codigos ya que es un array, verifica que el dato que te arroje no sea nulo.
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #6 (permalink)  
Antiguo 10/07/2007, 14:42
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 18 años, 4 meses
Puntos: 2
Re: Duda con explode

Probé con trim y FUNCIONA !! lo que ahora me ocurre es que si coloco 2 ENTER en vez de 1 entre numero y numero, hay la funcion trim no se realiza y me muestra todos los resultados nuevamente. Hay solucion?
Lamentablemente tengo que fijarme en estas cuestiones ya que el usuario puede llegar a colocar varios ENTER sin darse cuenta y no deben aparecer todos los resultados.
  #7 (permalink)  
Antiguo 10/07/2007, 14:47
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 8 meses
Puntos: 10
Re: Duda con explode

Como te comento, como recorres tu array?
Porque como lo comentas puedes ingresar lo siguiente
Código:
dato1


dato4
Tu variable tendría algo así
$codigos[0] -> dato1
$codigos[1] ->
$codigos[2] ->
$codigos[3] -> dato4

$codigos[1] y $codigos[2] tiene un valor nulo.
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #8 (permalink)  
Antiguo 10/07/2007, 15:01
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 18 años, 4 meses
Puntos: 2
Re: Duda con explode

gracias TolerantX por la respuesta, pero como haría para eliminar esos valores nulos ?
Aqui te muestro como sigue el codigo: (asi lo hizo el anterior programador)
Código PHP:
if($_POST['codigos'] != '') {
                    
                    
$codigos explode("\r\n",trim($_POST['codigos']));
                    
                    
$sql 'AND (';
                    
                    for (
$i $i count($codigos) ; $i++) {                    
                        
$sql .= ' codigo LIKE "%'.$codigos[$i].'%" OR' ;                            
                    }
                    
                    if(
$sql != 'AND (') {                   
                        
$sql = (substr($sql,0,strlen($sql)-3)) . ')';                  
                    }
                    else {
                        
$sql '';    
                    } 
  #9 (permalink)  
Antiguo 10/07/2007, 15:09
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 8 meses
Puntos: 10
Re: Duda con explode

Intenta algo como
Código PHP:
for ($i $i count($codigos) ; $i++) {                    
   if (
trim($codigos[$i]) != "")
        
$sql .= ' codigo LIKE "%'.$codigos[$i].'%" OR' ;                            

O
Código PHP:
if (trim($codigos[$i]) != NULL
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #10 (permalink)  
Antiguo 10/07/2007, 15:15
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 18 años, 4 meses
Puntos: 2
Re: Duda con explode

ahora si, le agregué la primer opcion que me planteaste y funciono. Antes había probado algo parecido pero no funcionaba, hasta que di en la tecla con tu ayuda! gracias!
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 22:01.