Foros del Web » Programando para Internet » PHP »

PHP OO Reemplazar foreach por while?

Estas en el tema de Reemplazar foreach por while? en el foro de PHP en Foros del Web. Buenas a todos, resulta que estoy grabando, modificando y eliminando desde php, un archivo xml, para eliminar y modificar no tengo problema, pero al insertar, ...
  #1 (permalink)  
Antiguo 06/07/2011, 16:00
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Reemplazar foreach por while?

Buenas a todos, resulta que estoy grabando, modificando y eliminando desde php, un archivo xml, para eliminar y modificar no tengo problema, pero al insertar, debo validar que no se repitan valores...algo que realmente no lo he podido hacer

Lo hago asi:
Recibo una variable, antes de agregar en el archivo xml, utilizo el foreach para mostrar el valor de los elementos:

Código PHP:
Ver original
  1. <?php
  2. //Primero recibo la variable que me trae el valor a agregar
  3. $codigo=trim($_POST['idsugg']);
  4.  
  5. //Aca cargo el documento xml
  6.  $x = new SimpleXMLElement($archivo, null, true);
  7. //Y ahora comparo:
  8.  foreach( $x->diagno as $diagno ) {
  9. $coddia=$diagno['cod'];
  10.  $princi=$diagno['prin'];
  11. echo $coddia;
  12.   echo "</br>";
  13. echo $codigo;
  14.   if($coddia==$codigo)
  15.   echo "<font color='red'>Ya existe este diagnostico</font>";
  16.  else
  17.   echo "se graba";
  18.  }
  19. ?>

El problema es el siguiente:
Yo tengo dos datos en el archivo xml:
AB11 y AB12

Al insertar envio AB11 Y pasa lo siguiente:

Me compara con AB11 y como son iguales me dice: Ya existe este diagnostico

Pero luego me compara con AB12 y como no es igual, me hace el ingreso....
Entonces, q podria hacer ?
Como puedo utilizar un while en vez del foreach?....Agradezco me puedan colaborar....gracias
  #2 (permalink)  
Antiguo 06/07/2011, 16:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Reemplazar foreach por while?

¿Que ventaja habría si cambias el while() por foreach() según tu?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/07/2011, 16:16
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: Reemplazar foreach por while?

Pues me haria bien la validación.....Es que co el foreach me compara con cada item, la primera vez como es igual no me ingresa, pero al comparar con el segun item, como no es igual, si ingresa...entonces como lo controlo?
  #4 (permalink)  
Antiguo 06/07/2011, 23:31
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Reemplazar foreach por while?

De verdad que no entendí, foreach es la forma más fácil de trabajar con los array. No veo razón de cambiar a while, vas a hacer lo mismo que con foreach, vas a hacer validaciones dentro del while, como se haría con foreach.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: foreach, reemplazar, variables
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 20:20.