Foros del Web » Programando para Internet » PHP »

como utilizar wordwrap o explode (dinamico)

Estas en el tema de como utilizar wordwrap o explode (dinamico) en el foro de PHP en Foros del Web. Buenas a todos, tengo una pequeña duda y me gustaria saber si alguien me puede indicar como hacer esto: Por POST recibo una variable que ...

  #1 (permalink)  
Antiguo 17/06/2011, 07:09
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
como utilizar wordwrap o explode (dinamico)

Buenas a todos, tengo una pequeña duda y me gustaria saber si alguien me puede indicar como hacer esto:
Por POST recibo una variable que trae una cadena separando por el caracter @

Se que por POST puedo separarla, el problema es que La cadena es dinamica, es decir, varia en el numero de palabras que trae

Como hago para separarla, pero poderle asignar una variable diferente a cada valor que separe

Ejemplo:

Código PHP:
Ver original
  1. $examen_folio=$_POST['examenes'];
  2.  
  3. //Me muestra: 870001@902208@150806
Yo lo que deseo es poder separar esos tres valores, pero en tres variables diferentes, ya que son criterios para una consulta SQL

Con explode encuentro que se puede hacer asi:

Código PHP:
Ver original
  1. $examen= explode("@", $examen_folio);
  2.  
  3. echo $examen[0];  // Me muestra 870001
  4. echo $examen[1];  // Me muestra 902208
  5. echo $examen[2];  // Me muestra 150806

Pero como informo, la cadena es variable, y creo que para este caso solo serviria para los tres valores, y si vienen mas, como creo dinamicamente $examen[3], $examen[4], etc....?

Encontre que con wordwrap se puede asi:

Código PHP:
Ver original
  1. $examen=wordwrap($examen_folio,7,"</br>",true);
  2.  
  3. echo "".$examen."</br>";

Pero siempre sera la misma variable para cada valor

Entonces como puedo utilizar alguna de estas dos funciones pero poder asignarle variables diferentes a los valores de la cadena??

Agradezco que me puedan colaborar, muchas gracias..
  #2 (permalink)  
Antiguo 17/06/2011, 07:25
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: como utilizar wordwrap o explode (dinamico)

te hago una pregunta:
una ves que logres cargar los datos en variables distntas
que vas a hacer con esas variables?
asi nos ponemos en contexto, generalmente si las variables son dinamicas son para recorrerlas
  #3 (permalink)  
Antiguo 17/06/2011, 07:32
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: como utilizar wordwrap o explode (dinamico)

www.php.net/explode
www.php.net/foreach


pues los array son para recorrerlos con bucles !
te dej un ejemplo

Código PHP:
$cadena explode('@''aaa@bbb@ccc@ddd');
foreach (
$cadena as $value) {
    echo 
$value '<br />'// aunque vengan 500000 valores los recorrera todos !

saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #4 (permalink)  
Antiguo 17/06/2011, 08:18
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

Cita:
Iniciado por Patriarka Ver Mensaje
te hago una pregunta:
una ves que logres cargar los datos en variables distntas
que vas a hacer con esas variables?
Esas variables son criterios para una consulta SQL, por eso necesito separarlas en diferentes variables

Entonces como seria?
  #5 (permalink)  
Antiguo 17/06/2011, 08:19
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

HideK1, pero de esa forma lo recorre en una sola variable, y eso es lo que no me sirve.....
  #6 (permalink)  
Antiguo 17/06/2011, 08:22
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: como utilizar wordwrap o explode (dinamico)

Cita:
Esas variables son criterios para una consulta SQL, por eso necesito separarlas en diferentes variables

Entonces como seria?
te refieres a una consulta ?

Código PHP:
$cadena explode('@''aaa@bbb@ccc@ddd');
$condicion implode(' OR '$cadena);
$consulta "SELECT dato FROM tabla WHERE $condicion"
es solo una idea ya que aun no dices el uso exacto que le deseas dar a los datos

saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #7 (permalink)  
Antiguo 17/06/2011, 08:29
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: como utilizar wordwrap o explode (dinamico)

aun no respondiste cual es el objetivo de esas variables
  #8 (permalink)  
Antiguo 17/06/2011, 08:57
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

Patriarka, no se si este diciendo mal, lo que pasa es que las variables tienen el siguiente objetivo:

Poder hacer la consulta asi:

SELECT....FROM ..... WHERE .....A='$variable1' OR B='$variable2' .....
  #9 (permalink)  
Antiguo 17/06/2011, 08:59
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

Hidek1, creo que de esa forma si me funciona, exactamente es para eso..........
  #10 (permalink)  
Antiguo 17/06/2011, 09:06
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: como utilizar wordwrap o explode (dinamico)

pero hay tenes un problema mas dicifil:
como vas a armar la query?
$cadena = explode('@', 'aaa@bbb@ccc@ddd');
$condicion = implode(' OR ', $cadena);

aca esta bien pero te va a quedar asi:
"OR aaa OR bbb OR ccc OR ddd"
no recuerdo bien ahora si la sintaxis esta bien.
select * from users where id between ($condicion);
  #11 (permalink)  
Antiguo 17/06/2011, 09:25
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

Si, lo que dices es cierto, el problema es tremendo......ahi si jummmm no se que hacer....
  #12 (permalink)  
Antiguo 17/06/2011, 09:42
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: como utilizar wordwrap o explode (dinamico)

y bueno que te gustaria comparar, lo hacemos
  #13 (permalink)  
Antiguo 17/06/2011, 09:56
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

El problema es como armar la consulta...?
  #14 (permalink)  
Antiguo 17/06/2011, 09:58
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: como utilizar wordwrap o explode (dinamico)

esta bien pero vos que consulta queres hacer?
si nos mostras una idea te ayudamos sino es muy dificil, menos que imposible,
entrar en tu mente
  #15 (permalink)  
Antiguo 17/06/2011, 10:33
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

Ok aca va:

Los datos los traigo asi:
En un while muestra codigos de los examenes:

Código PHP:
Ver original
  1. $sql="SELECT * FROM HCEXAPAC WHERE GPACODIGO='".$paciente."' AND AINCONSEC='".$ingreso."' AND HCCONFOLI='".$folio."'";
  2.   $obj->consulta($sql);
  3. $nfilas=$obj->numFilas();
  4.     //Tengo oculto el numero de filas para pasarlas a una funcion en javascript que es la que me une todos los valores de los checbox    
  5.   echo "<input type='hidden' id='numfilas' value='".$nfilas."'>";
  6.  $nfilas=0;
  7. while($row = sqlsrv_fetch_array($obj->result)){
  8.            
  9.    $nfilas++;
  10.    $descripcion=$row[7];
  11.    echo "<tr><td align='center'><input  type='hidden' id='ap".$nfilas."' value='".$row[3]."' >".$descripcion."</td><td align='center'><input type='checkbox' id='".$row[3]."' ></td></tr>";
  12.      }
  13.  
  14. //Y tengo oculto un campo, que es el que me recoje los valores
  15.  echo "<input type='hidden' id='examenes' value='' size='50' >";
  16. //El boton que envia los datos
  17.  
  18. echo "<button id='copiar' onclick='verifichek(); enviardatos();'>Abrir Folio</button>";

La funcion javascript es la siguiente:

Código Javascript:
Ver original
  1. function verifichek()
  2.  {
  3.     var numfilas=document.getElementById("numfilas").value;
  4.    var cad="";
  5.     for($i=1; $i<=numfilas; $i++)
  6.     {
  7.         x=document.getElementById("ap"+$i).value;
  8.        if(document.getElementById(x).checked)
  9.       {
  10.        
  11.        var cad=cad+x+"@";
  12.        
  13.        document.getElementById("examenes").value=cad;
  14.       }
  15.  
  16.     }
  17.  
  18. }


El campo oculto con id =examenes me recoge solo los ids que fueron chequeados

Ahora la tabla donde debo hacer la consulta:

La tabla (HCEXAPAC) tiene la siguiente estructura:

CODIGOPAC
CONSECUTIVO
CODFOLIO
CODEXAMEN

Los tres primeros valores tambien los recibo por POST,
CODEXAMEN, son todos los codigos que recibo en la cadena

Entonces normalmente la consulta deberia quedar asi:
Código SQL:
Ver original
  1. SELECT     *      FROM         HCEXAPAC
  2. WHERE     (CODIGOPAC= '5820700 ') AND (CONSECUTIVO= '0000700724') AND (CODFOLIO= '171') AND (CODEXAMEN= '870001' OR
  3.   CODEXAMEN= '902208')

Esa es una consulta valida....
  #16 (permalink)  
Antiguo 17/06/2011, 10:34
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

Y entonces que solución me aconsejas?
  #17 (permalink)  
Antiguo 17/06/2011, 10:42
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: como utilizar wordwrap o explode (dinamico)

en un rato vuelvo (1/2 hora) y lo hacemos

mientras los muchachos te va a ir ayudando seguro
  #18 (permalink)  
Antiguo 17/06/2011, 10:45
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

Ok Gracias Patriarka
  #19 (permalink)  
Antiguo 17/06/2011, 11:44
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: como utilizar wordwrap o explode (dinamico)

volvi:
un momento! vos sabes la cantidad de variables que necesitas para hacer la query:
CODIGOPAC
CONSECUTIVO
CODFOLIO
CODEXAMEN
CODEXAMEN_2

es verdad esto?
  #20 (permalink)  
Antiguo 17/06/2011, 11:52
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: como utilizar wordwrap o explode (dinamico)

ya tenias la respuesta de HIKE
Código PHP:
Ver original
  1. $cadena = explode('@', $_REQUEST["CODEXAMEN"]);
  2. $condicion = implode(' OR ', $cadena);
  3. $consulta = "SELECT dato FROM tabla WHERE $condicion";
  #21 (permalink)  
Antiguo 17/06/2011, 12:58
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

Solo existe un CODEXAMEN
  #22 (permalink)  
Antiguo 17/06/2011, 12:59
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

Pero me quedaria una consulta cmo esta:

SELECT dato FROM tabla WHERE CODEXAMEN='valor1' OR valor2 OR valor3

Y asi no funciona...
  #23 (permalink)  
Antiguo 17/06/2011, 13:04
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: como utilizar wordwrap o explode (dinamico)

sabes cual es el numero exacto de variables a parsear?

la respuesta esta ponerlo en un array y llamar el contenido segun necesites...
  #24 (permalink)  
Antiguo 17/06/2011, 13:10
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: como utilizar wordwrap o explode (dinamico)

Cita:
Iniciado por oscarbt Ver Mensaje
Pero me quedaria una consulta cmo esta:

SELECT dato FROM tabla WHERE CODEXAMEN= ('valor1' OR valor2 OR valor3 )

Y asi SI funciona...
  #25 (permalink)  
Antiguo 17/06/2011, 13:23
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

Pero lo ejecuto y no funciona

SELECT * FROM HCEXAPAC WHERE CODEXAMEN=('870001' OR '902208')

Sale:

Sintaxis incorrecta cerca de la palabra clave 'OR'.
  #26 (permalink)  
Antiguo 17/06/2011, 13:25
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

Cita:
Iniciado por Adell Ver Mensaje
sabes cual es el numero exacto de variables a parsear?

la respuesta esta ponerlo en un array y llamar el contenido segun necesites...
No, el numero siempre varia segun la seleccion de checkbox por parte del usuario
  #27 (permalink)  
Antiguo 17/06/2011, 13:37
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: como utilizar wordwrap o explode (dinamico)

la probaste en el phpmyadmin
  #28 (permalink)  
Antiguo 17/06/2011, 13:40
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

NO es MySQL, es SQL Server 2005
  #29 (permalink)  
Antiguo 17/06/2011, 13:43
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: como utilizar wordwrap o explode (dinamico)

donde sea ejecuta la consulta para despejar errores de sintaxis
  #30 (permalink)  
Antiguo 17/06/2011, 14:40
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como utilizar wordwrap o explode (dinamico)

Si es erro de sintaxis, pero esa consulta en Mysql si se puede hacer??

Etiquetas: dinamico, explode, wordwrap
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 09:53.