Foros del Web » Programando para Internet » PHP »

Ayuda a un novato

Estas en el tema de Ayuda a un novato en el foro de PHP en Foros del Web. Saludos. Me meti a estudiar PHP, llevo 3 lecciones y ya me quede atascado con lo que trato de hacer. Estoy tratando de realizar un ...
  #1 (permalink)  
Antiguo 02/07/2009, 11:21
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Pregunta Ayuda a un novato

Saludos.

Me meti a estudiar PHP, llevo 3 lecciones y ya me quede atascado con lo que trato de hacer. Estoy tratando de realizar un blucle, creo, y va asi:
Código PHP:
<?php
$num
;
define ('min'0);
define ('max'10);
if (
$num == 10){
echo 
"El valor que usted digito es $num , y es igual a diez<br>";
}else if (
$num ""){
echo 
"digite un numero";
}else{
while (
$num<= 10)
   {
      echo 
"El valor que usted digito es $num , y es menor que 10<br>";
   } 
}
?>
el valor de $num lo adquiere de un campo input que tengo en la página de prueba, lo malo es que esta mal porque me corre el echo "El valor que usted digito es $num , y es igual a diez<br>" indefinidamente. Trate de corregirlo aqui
Código PHP:
}else if ($num ""){ 
pero obviamente creo que lo puse mal, porque con solo cargar la página me empieza a dar el problema. Me podrian indicar donde estoy mal
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #2 (permalink)  
Antiguo 02/07/2009, 11:28
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: Ayuda a un novato

El problema que tienes es que $num esta declarado pero sin valor. Primero declarale un valor
$num = 0;

Luego verifica si tiene valor el $num con los if.

El elseif tiene dos errores.
1. Debes escribirlo junto elseif
2. Debes comparar no asignar. Tienes declarado

elseif($num = "")

debe ser
elseif($num == "")

Cuando hayas escrito alguna variable numerica y quieras usar un while tienes que incrementar dentro de los {}

Ejemplo
Código PHP:
while ($num10
   { 
      echo 
"El valor que usted digito es $num , y es menor que 10<br>"
      
$num++;
   } 
Y si quieres verificar si es un numero menor a 10 no puedes usar <=
Debes usar < solamente.

Y por ultimo en realidad debes usar los if dentro del while. Sino solamente te va a funcionar una sola vez los if.
  #3 (permalink)  
Antiguo 02/07/2009, 11:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda a un novato

solo te falta poder salir del bucle while()

revisa el manual...
http://php.net/while

recuerda que se ciclan mientras la condición se verdadera...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 02/07/2009, 11:39
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Respuesta: Ayuda a un novato

Cita:
Iniciado por abimaelrc Ver Mensaje
El problema que tienes es que $num esta declarado pero sin valor. Primero declarale un valor
$num = 0;

Luego verifica si tiene valor el $num con los if.

El elseif tiene dos errores.
1. Debes escribirlo junto elseif
2. Debes comparar no asignar. Tienes declarado

elseif($num = "")

debe ser
elseif($num == "")

Cuando hayas escrito alguna variable numerica y quieras usar un while tienes que incrementar dentro de los {}

Ejemplo
Código PHP:
while ($num10
   { 
      echo 
"El valor que usted digito es $num , y es menor que 10<br>"
      
$num++;
   } 
Y si quieres verificar si es un numero menor a 10 no puedes usar <=
Debes usar < solamente.

Y por ultimo en realidad debes usar los if dentro del while. Sino solamente te va a funcionar una sola vez los if.

Hola gracias por responder.

Ya corregi los errores, ahora si no me tira el bucle infinito, pero tampoco me carga el valor en la variable cuando digitan dentro del input, osea, no hace nada.

La pagina la tengo en un servidor por si quieres ver que es lo que estoy haciendo:

http://yourweblogos.com/php-test/clase2_practica2.php
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #5 (permalink)  
Antiguo 02/07/2009, 11:40
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Respuesta: Ayuda a un novato

Cita:
Iniciado por pateketrueke Ver Mensaje
solo te falta poder salir del bucle while()

revisa el manual...
http://php.net/while

recuerda que se ciclan mientras la condición se verdadera...
Ahh, voy a ir a ver, no habia visto tu msj. El problema con la condicion es que el valor lo deberia tomar de una variable que digita el usuario, asi que no se si construi mal las instrucciones.
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #6 (permalink)  
Antiguo 02/07/2009, 11:43
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: Ayuda a un novato

Haz esto

Código PHP:
$num=$_POST["numero"];
if (
$num==10){ 
  echo 
"El valor que usted digito es $num, y es igual a diez<br>"
}elseif(empty(
$num)){ 
  echo 
"digite un numero"
}else{ 
  while(
$num<10){ 
      echo 
"El valor que usted digito es $num, y es menor que 10<br>"
      
$num++;
   }

  #7 (permalink)  
Antiguo 02/07/2009, 11:51
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
De acuerdo Respuesta: Ayuda a un novato

Cita:
Iniciado por abimaelrc Ver Mensaje
Haz esto

Código PHP:
$num=$_POST["numero"];
if (
$num==10){ 
  echo 
"El valor que usted digito es $num, y es igual a diez<br>"
}elseif(empty(
$num)){ 
  echo 
"digite un numero"
}else{ 
  while(
$num<10){ 
      echo 
"El valor que usted digito es $num, y es menor que 10<br>"
      
$num++;
   }

Bueno, ahora funsiona mejor, aunque si digito por ejm 4, me tira todos los valores entre este y 10 tambien, osea,
El valor que usted digito es 4 , y es menor que 10
El valor que usted digito es 5 , y es menor que 10
El valor que usted digito es 6 , y es menor que 10
El valor que usted digito es 7 , y es menor que 10
El valor que usted digito es 8 , y es menor que 10
El valor que usted digito es 9 , y es menor que 10
.
Voy a revisar un poco a ver que aprendo jeje.

Gracias. Por aqui me van a ver seguido en estos dias :) ya me sali un poco de css, ahora voy con php
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #8 (permalink)  
Antiguo 02/07/2009, 11:53
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: Ayuda a un novato

El proposito del while es crear un loop, y por eso te trae todos los valores del 4 en adelante. Te sugiero que veas lo que te indico pateketrueke. Si lo que quieres es mostrar solamente el numero que selecciono la persona usa

echo $_POST["numero"];

en vez de un while.
  #9 (permalink)  
Antiguo 02/07/2009, 11:59
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Respuesta: Ayuda a un novato

si, ya estube analizando el asunto y tienes toda la razon. Pero bueno, por ahora solo voy a buscar un echo mas acorde a lo que se muestra, ya que parte de la práctica es usar un bucle, pero tambien voy a usar el echo $_POST["numero"]; que es lo que yo queria.

gracias
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
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 05:11.