Foros del Web » Programando para Internet » PHP »

Esta bien la sistaxis de bucle for en mi Php?

Estas en el tema de Esta bien la sistaxis de bucle for en mi Php? en el foro de PHP en Foros del Web. Hola este código me permitiria enviar un mensaje a una cuenta, quiero saber si mi sintaxis de mi for esta bien, muchas gracias. Donde tour ...
  #1 (permalink)  
Antiguo 05/08/2009, 14:11
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Esta bien la sistaxis de bucle for en mi Php?

Hola este código me permitiria enviar un mensaje a una cuenta, quiero saber si mi sintaxis de mi for esta bien, muchas gracias.

Donde tour es el arreglo de unos checkbox

Código PHP:
$vartour $_POST['tour'];
    
$n        count($vartour);
    
$i        0;
        
$x                0;


        if(isset(
$_POST['Submit']) and $capt->check_result()){        
              
$message_send "Mensaje desde la página\n\n      
              Nombre: "
.utf8_decode($_POST['Nombre'])." \n
              Correo: "
.utf8_decode($_POST['Correo'])." \n
                Otros: "
.utf8_decode($_POST['Otros'])." \n";
              for(
$x=0$n-1;$x++):
                  
$message_send $message_send +  "tour".utf8_decode($_POST['tour'])." \n";
        endfor; 
Cualquier sugerencia sera bienvenida gracias
  #2 (permalink)  
Antiguo 05/08/2009, 14:50
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Esta bien la sistaxis de bucle for en mi Php?

no, no esta bien, deberia de ser algo asi

for($x=0; $x < | > | == | <= | >= $n-1; $x++):
$message_send = $message_send + "tour".utf8_decode($_POST['tour'])." \n";

solo uno el | es el delimitador que define las posibles opciones

suerte y si no quedo claro me avisas
  #3 (permalink)  
Antiguo 05/08/2009, 14:53
 
Fecha de Ingreso: julio-2009
Mensajes: 118
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Esta bien la sistaxis de bucle for en mi Php?

y esos dos puntos y el endfor; nose para que los pones, basta con poner:

for($x=0; $x < | > | == | <= | >= $n-1; $x++)
$message_send = $message_send + "tour".utf8_decode($_POST['tour'])." \n";

como bien ha dicho lair
  #4 (permalink)  
Antiguo 05/08/2009, 14:59
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Esta bien la sistaxis de bucle for en mi Php?

La sintaxis en sí del for es válida. Pero produciría un bucle sin salida.

Debería ser como ya te indicaron:
Código PHP:
Ver original
  1. for ($x = 0; $x < $n; $x++)

Además, deberías indicar el índice a la hora de usar el dato:
Código PHP:
Ver original
  1. $_POST['tour'][$x]

En este caso, creo que sería mejor usar un foreach().

P.S.: endfor es correcto ya que está usando la sintaxis opcional de for.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 05/08/2009, 18:22
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Esta bien la sistaxis de bucle for en mi Php?

Hola gracias por contestar, lo probaré ahora mismo, anteriormente yo puse este codigo foreach
Código PHP:
foreach ($_POST['tour'] as $id){ 
                   
$message_send $message_send +"Tour: ".$_POST['Tour']." \n 
                } 
Pero me supongo que no esta bien pues como he visto en sus respuestas me falto el identificador, tengo una duda porque Lair y Alberto me muestran esta solución
for($x=0; $x < | > | == | <= | >= $n-1; $x++)
Y David esta
for ($x = 0; $x < $n; $x++)
les agradecere su respuesta

Última edición por salvador86; 05/08/2009 a las 18:36
  #6 (permalink)  
Antiguo 05/08/2009, 21:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Esta bien la sistaxis de bucle for en mi Php?

No, no está bien tu código del foreach, ya que en lugar de $_POST['Tour'] deberías usar directamente $id, que en cada paso del bucle será el siguiente valor del array.

En cuanto a tu segunda pregunta, el usuario te había indicado que esas eran las posibles opciones y que deberías escoger una de ellas, en este caso la que yo te indiqué (aunque en realidad no es del todo cierto, no necesariamente debe haber una comparación allí, sólo una expresión que cuando sea evaluada como falsa terminará el bucle)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 06/08/2009, 00:21
Avatar de JoseTejada  
Fecha de Ingreso: diciembre-2007
Ubicación: Peru.Lima.Cercado.MDuarez.Granaderos172
Mensajes: 218
Antigüedad: 16 años, 4 meses
Puntos: 11
Respuesta: Esta bien la sistaxis de bucle for en mi Php?

Creo que seria bueno que revises algún libro o tutorial de la sintaxis básica de PHP, ya que me parece que estas confundiendo dicha sintaxis con la de algún otro lenguaje...Bye...
  #8 (permalink)  
Antiguo 06/08/2009, 12:24
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Esta bien la sistaxis de bucle for en mi Php?

Hola, estaba viendo que mi problema esta en el for, estuve buscando información y parece que debo usar el foreach

Código PHP:
if(isset($_POST['Submit']) and $capt->check_result()){        
              
$message_send "Mensaje desde la página\n\n      
              Nombre: "
.utf8_decode($_POST['Nombre'])." \n
              Correo: "
.utf8_decode($_POST['Correo'])." \n
              Otros: "
.utf8_decode($_POST['Otros'])." \n";
              foreach (
$_POST['tour'] as $id){
                    echo 
$id." \n";
               }
            
$headers .= 'To: <'.$email_recipient.'>' "\r\n";
$headers .= 'From: '.$_POST['Nombre'].' <'.$_POST['Correo'].'>' "\r\n"
Me parece lógico pues pero no me queda claro esta linea echo $id." \n"; yo creo que deberia ir algo como esto echo $message_send = $message_send + $id." \n";

Les pido su ayuda, muchas gracias por contestar
  #9 (permalink)  
Antiguo 06/08/2009, 12:37
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: Esta bien la sistaxis de bucle for en mi Php?

Estimado , si mi memoria no me falla el foreach se utiliza en el caso de arreglos asociativos , es decir con un indice alfanumerico , de ese modo recorremos todo el arreglo y obtenemos los diversos valores que van tomando los componentes de dicho elemento.

En cambio el for se utiliza junto con arreglos tambien , pero solo cuando el indice de arreglo a leer por dicho indice del for es numerico es decir lo siguiente:

Con foreach:

Código php:
Ver original
  1. <?php
  2. $datos=array("nombre"=>"Eugenio","nombre"=>"Marcos");
  3. $datos_ordinal=array('cesar','carlos');
  4.  
  5. //-- Acceso mediante nombre del indice del elemento a accesar
  6. foreach($datos as $elemento){
  7. echo $elemento['nombre'];
  8. }
  9.  
  10. //-- Impresión: de la llave y su valor.
  11.  
  12. foreach($datos as $elemento=>$valor){
  13. echo "Llave: ".$elemento." valor: ".$valor;
  14. }
  15.  
  16. //-- Acceso de arreglo indexado del tipo ordinal
  17. $cantidad=count($datos_ordinal);
  18. for($i=0;$i<=$cantidad,$i++){
  19. echo $datos_ordinal[$i];
  20. }
  21.  
  22. ?>

Creo que los ejemplos son bastantes claros.

Saludos!
  #10 (permalink)  
Antiguo 06/08/2009, 13:53
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Esta bien la sistaxis de bucle for en mi Php?

Hola Jonatanc, mira encontre en esta pagina esto http://www.forosdelweb.com/f18/faqs-...tml#post518710 que me muestra el forech de esta manera, y asi lo he hecho pero me sale error, es que quiero gestionar el envio de correos con checkbox pero el bucle sigue sin reconocer al array, gracias por contestar
  #11 (permalink)  
Antiguo 06/08/2009, 14:21
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: Esta bien la sistaxis de bucle for en mi Php?

Estimado que error concreto le da su aplicación?.

Saludos!
  #12 (permalink)  
Antiguo 06/08/2009, 15:41
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Esta bien la sistaxis de bucle for en mi Php?

Disculpa Jonatanc, no entiendo mucho Php, pero mi priblema que quiero gestionar un formulario que tiene checkbox, quiero que se envie en el mensaje a una cuenta no a una base de datos pero solo los check que han sido seleccionados y en realidad no se como hacerlo, mis checbox son un arreglo tour[]
Antes de enviarse con el php lo he validado para determinar la cantidad de check que han sido seleccionado asi
Código PHP:
var ltourtour.lenght
var poststr "Nombre=" encodeURIdocument.getElementById("Nombre").value ) +
                                        
"&Correo=" encodeURIdocument.getElementById("Correo").value )+
                                        
"&Otros=" encodeURIdocument.getElementById("Otros").value );
                                for (
i=0i<ltouri++){
                                      if (
document.getElementById("tour"+i).checked)
                                            
poststr poststr "&tour[" "] = " encodeURIdocument.getElementById("tour"+i).value );
                                }... 
Y luego este ajax recien manda al php
Código PHP:
if(isset($_POST['Submit']) and $capt->check_result()){        
              
$message_send "Mensaje desde la página\n\n      
              Nombre: "
.utf8_decode($_POST['Nombre'])." \n
              Correo: "
.utf8_decode($_POST['Correo'])." \n
                Otros: "
.utf8_decode($_POST['Otros'])." \n";
              foreach (
$_POST['tour'] as $id){
           
$message_send $message_send $id." \n";
        } 
Yo imagino que sea asi pero no entiendo muy bien, ya busque en google y no encuentro la respuesta, espero me puedas ayudar, la verdad es que no comprendo mucho la programación, 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 02:57.