Diferencia entre revisiones de «PHP Estruturas de control»
Ir a la navegación
Ir a la búsqueda
(→for) |
(→for) |
||
(No se muestran 6 ediciones intermedias del mismo usuario) | |||
Línea 53: | Línea 53: | ||
+ | |||
+ | * É posible empregar outra sintaxe no if que consiste en ter nunha única liña a sentenza con dous puntos ao final e en vez de empregar o peche de chaves empregamos endif; | ||
+ | Exemplo de código: | ||
+ | ::<syntaxhighlight lang="php" line enclose="div" highlight="1" > | ||
+ | <?php if ($a > $b): ?> | ||
+ | <div>A é maior que b</div> | ||
+ | <?php endif; ?> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | : Esta sintaxe se emprega cando estamos a mesturar código php e html, quedando moito máis claro. | ||
+ | |||
+ | <br /> | ||
=== else === | === else === | ||
Línea 71: | Línea 83: | ||
+ | * É posible empregar outra sintaxe no if-else que consiste en ter nunha única liña a sentenza con dous puntos ao final, o else tamén leva dous puntos e en vez de empregar o peche de chaves empregamos endif; | ||
+ | Exemplo de código: | ||
+ | ::<syntaxhighlight lang="php" line enclose="div" highlight="1,3,5" > | ||
+ | <?php if ($a > $b): ?> | ||
+ | <div>A é maior que b</div> | ||
+ | <?php else: ?> | ||
+ | <div>A é menor que b</div> | ||
+ | <?php endif; ?> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | : Esta sintaxe se emprega cando estamos a mesturar código php e html, quedando moito máis claro. | ||
+ | |||
+ | |||
+ | |||
+ | <br /> | ||
=== elseif | else if === | === elseif | else if === | ||
Línea 91: | Línea 118: | ||
} | } | ||
?> | ?> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | <br /> | ||
+ | |||
+ | == switch == | ||
+ | |||
+ | Máis información en: https://www.php.net/manual/es/control-structures.switch.php | ||
+ | |||
+ | * Permite ter moitos if else if else pero dunha forma moito máis lexible. | ||
+ | : Cada case debe ter un break se non queremos que se executen as ordes do seguinte case. | ||
+ | |||
+ | Exemplo de código: | ||
+ | ::<syntaxhighlight lang="php" line enclose="div" highlight="2,4" > | ||
+ | <!DOCTYPE html> | ||
+ | <html> | ||
+ | <head> | ||
+ | <title>Exemplo de switch en PHP</title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <h1>Día da Semana</h1> | ||
+ | <?php | ||
+ | $numeroDia = 3; // Podes cambiar este valor para probar diferentes días | ||
+ | |||
+ | switch ($numeroDia) { | ||
+ | case 1: | ||
+ | echo "Hoxe é luns."; | ||
+ | break; | ||
+ | case 2: | ||
+ | echo "Hoxe é martes."; | ||
+ | break; | ||
+ | case 3: | ||
+ | echo "Hoxe é mércores."; | ||
+ | break; | ||
+ | case 4: | ||
+ | echo "Hoxe é xoves."; | ||
+ | break; | ||
+ | case 5: | ||
+ | echo "Hoxe é venres."; | ||
+ | break; | ||
+ | case 6: | ||
+ | echo "Hoxe é sábado."; | ||
+ | break; | ||
+ | case 7: | ||
+ | echo "Hoxe é domingo."; | ||
+ | break; | ||
+ | default: | ||
+ | echo "Número de día non válido."; | ||
+ | } | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Línea 137: | Línea 217: | ||
: Sairá como resultado os números do 1 ata o 10. | : Sairá como resultado os números do 1 ata o 10. | ||
+ | |||
+ | * Ao igual que có if, podemos empregar outra sintaxe cando estamos a mesturar código php e código html. | ||
+ | : Este sería un exemplo de cómo facelo. | ||
+ | ::<syntaxhighlight lang="php" enclose="div" highlight="2,3" > | ||
+ | <ul> | ||
+ | <?php while ($condicion): ?> | ||
+ | // código | ||
+ | <?php endwhile; ?> | ||
+ | </ul> | ||
+ | </syntaxhighlight> | ||
== do-while == | == do-while == | ||
Línea 283: | Línea 373: | ||
: Poderíamos enviar de vez os estados (roto,perfecto, pintado,...) de cada un dos exemplares a dar de alta (é un exemplo, loxicamente se queremos gardar ese tipo de dato sería mais conveniente utilizar un <select> cos diferentes estados. | : Poderíamos enviar de vez os estados (roto,perfecto, pintado,...) de cada un dos exemplares a dar de alta (é un exemplo, loxicamente se queremos gardar ese tipo de dato sería mais conveniente utilizar un <select> cos diferentes estados. | ||
: Lembrar que xa vimos [http://wiki.cifprodolfoucha.es/index.php?title=PHP_Arrays#Creando_arrays_cos_datos_dun_formulario anteriormente na wiki] como enviar datos en forma de array. | : Lembrar que xa vimos [http://wiki.cifprodolfoucha.es/index.php?title=PHP_Arrays#Creando_arrays_cos_datos_dun_formulario anteriormente na wiki] como enviar datos en forma de array. | ||
+ | |||
+ | |||
+ | |||
+ | * Ao igual que có if, podemos empregar outra sintaxe cando estamos a mesturar código php e código html. | ||
+ | : Este sería un exemplo de cómo facelo. | ||
+ | |||
+ | ::<syntaxhighlight lang="php" enclose="div" highlight="1,3" > | ||
+ | <?php for ($i = 0; $i < 10; $i++): ?> | ||
+ | <p>Ítem <?php echo $i; ?></p> | ||
+ | <?php endfor; ?> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Exercicios propostos == | ||
+ | |||
+ | * '''Exercicio 1:''' Determinar se un número é positivo ou negativo. Emprega unha variable e dalle os diferentes valores. Debe amosar unha mensaxe diferente para cando é positivo, negativo ou igual a cero. | ||
+ | |||
+ | |||
+ | * '''Exercicio 2:''' Determina se dada unha contrasinal e un usuario, este pode entrar. Debes empregar dúas variables, unha para o usuario e outra para o password. Se o usuario non existe debe amosar unha mensaxe. Se o usuario existe e a contrasinal é incorrecta deberá indicalo. Se a contrasinal é correcta deberá indicar Acceso concedido. | ||
+ | |||
+ | |||
+ | * '''Exercicio 3:''' Contar ata X. Emprega unha variable para gardar o número ata o que ten que contar e amosa en cada liña Número: X dende 1 ata X | ||
+ | |||
+ | |||
+ | * '''Exercicio 4:''' Taboa de multiplicar. Emprega un bucle for para xerar a taboa de multiplicar do 5. | ||
+ | |||
+ | |||
+ | * '''Exercicio 5:''' Amosa o nome dunha froita en función dun número. Por exemplo, 1 => Mazá, 2 => Pera,.... | ||
+ | |||
+ | |||
+ | * '''Exercicio 6:''' Partindo dunha variable cadea na que gardas un número, convirte dita cadea a número e comproba que dito número sexa superior a 0. En caso de que non o sexa, terá que incrementar o valor do número na cadea e volverá a facer a comprobación. Así continuamente ata que sexa superior a 0. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <br /> | ||
+ | === Solución Exercicios === | ||
+ | |||
+ | * '''Exercicio 1:''' Determinar se un número é positivo ou negativo. Emprega unha variable e dalle os diferentes valores. Debe amosar unha mensaxe diferente para cando é positivo, negativo ou igual a cero. | ||
+ | ::<syntaxhighlight lang="php" enclose="div" highlight="" > | ||
+ | <!DOCTYPE html> | ||
+ | <html> | ||
+ | <head> | ||
+ | <title>Exercicio con if-else</title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <h1>Determinar se un número é positivo ou negativo</h1> | ||
+ | <?php | ||
+ | $numero = 10; // Podes cambiar este valor para probar diferentes números | ||
+ | |||
+ | if ($numero > 0) { | ||
+ | echo "O número $numero é positivo."; | ||
+ | } elseif ($numero < 0) { | ||
+ | echo "O número $numero é negativo."; | ||
+ | } else { | ||
+ | echo "O número é igual a 0."; | ||
+ | } | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | |||
+ | <br /> | ||
+ | * '''Solución Exercicio 2:''' Determina se dada unha contrasinal e un usuario, este pode entrar. Debes empregar dúas variables, unha para o usuario e outra para o password. Se o usuario non existe debe amosar unha mensaxe. Se o usuario existe e a contrasinal é incorrecta deberá indicalo. Se a contrasinal é correcta deberá indicar Acceso concedido. | ||
+ | ::<syntaxhighlight lang="php" enclose="div" highlight="" > | ||
+ | <!DOCTYPE html> | ||
+ | <html> | ||
+ | <head> | ||
+ | <title>Exercicio con if-else</title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <h1>Determinar se un usuario ten acceso</h1> | ||
+ | <?php | ||
+ | // Datos del usuario existente | ||
+ | $usuario_correcto = "usuario1"; | ||
+ | $contrasena_correcta = "secreta123"; | ||
+ | |||
+ | // Datos del usuario ingresado | ||
+ | $usuario_ingresado = "usuario1"; // Cambia el usuario ingresado | ||
+ | $contrasena_ingresada = "secreta1234"; // Cambia la contraseña ingresada | ||
+ | |||
+ | // Comprobar si el usuario y la contraseña son correctos | ||
+ | if ($usuario_ingresado == $usuario_correcto && $contrasena_ingresada == $contrasena_correcta) { | ||
+ | echo "Acceso concedido. Benvido, $usuario_correcto."; | ||
+ | } elseif ($usuario_ingresado == $usuario_correcto) { | ||
+ | echo "Acceso denegado. A contrasinal é incorrecta."; | ||
+ | } else { | ||
+ | echo "Acceso denegado. O usuario non existe."; | ||
+ | } | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | |||
+ | <br /> | ||
+ | * '''Solución Exercicio 3:''' Contar ata X. Emprega unha variable para gardar o número ata o que ten que contar e amosa en cada liña Número: X dende 1 ata X | ||
+ | ::<syntaxhighlight lang="php" enclose="div" highlight="" > | ||
+ | <!DOCTYPE html> | ||
+ | <html> | ||
+ | <head> | ||
+ | <title>Exemplo de bucle for en PHP</title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <h1>Contar ata un número específico</h1> | ||
+ | <?php | ||
+ | $numero_a_contar = 7; // Número hasta el cual se va a contar | ||
+ | |||
+ | for ($i = 1; $i <= $numero_a_contar; $i++) { | ||
+ | echo "Número: $i<br>"; | ||
+ | } | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | |||
+ | <br /> | ||
+ | * '''Solución Exercicio 4:''' Taboa de multiplicar. Emprega un bucle for para xerar a taboa de multiplicar do 5. | ||
+ | ::<syntaxhighlight lang="php" enclose="div" highlight="" > | ||
+ | <!DOCTYPE html> | ||
+ | <html> | ||
+ | <head> | ||
+ | <title>Exemplo de bucle for en PHP</title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <h1>Taboa de multiplicar do 5</h1> | ||
+ | <?php | ||
+ | $numero = 5; | ||
+ | |||
+ | for ($i = 1; $i <= 10; $i++) { | ||
+ | $resultado = $numero * $i; | ||
+ | echo "$numero x $i = $resultado<br>"; | ||
+ | } | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | <br /> | ||
+ | * '''Solución Exercicio 5:''' Amosa o nome dunha froita en función dun número. Por exemplo, 1 => Mazá, 2 => Pera,.... | ||
+ | ::<syntaxhighlight lang="php" enclose="div" highlight="" > | ||
+ | <!DOCTYPE html> | ||
+ | <html> | ||
+ | <head> | ||
+ | <title>Exemplo de switch en PHP</title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <h1>Nome da Fruta</h1> | ||
+ | <?php | ||
+ | $numeroFruta = 3; // Podes cambiar este valor para probar diferentes frutas | ||
+ | |||
+ | switch ($numeroFruta) { | ||
+ | case 1: | ||
+ | echo "Mazá"; | ||
+ | break; | ||
+ | case 2: | ||
+ | echo "Pera"; | ||
+ | break; | ||
+ | case 3: | ||
+ | echo "Laranxa"; | ||
+ | break; | ||
+ | case 4: | ||
+ | echo "Kiwi"; | ||
+ | break; | ||
+ | case 5: | ||
+ | echo "Banana"; | ||
+ | break; | ||
+ | default: | ||
+ | echo "Número de fruta non válido."; | ||
+ | } | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | <br /> | ||
+ | * '''Solución Exercicio 6:''' Partindo dunha variable cadea na que gardas un número, convirte dita cadea a número e comproba que dito número sexa superior a 0. En caso de que non o sexa, terá que incrementar o valor do número na cadea e volverá a facer a comprobación. Así continuamente ata que sexa superior a 0. | ||
+ | ::<syntaxhighlight lang="php" enclose="div" highlight="" > | ||
+ | <!DOCTYPE html> | ||
+ | <html> | ||
+ | <head> | ||
+ | <title>Exemplo de bucle Do-While en PHP</title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <h1>Ingresar un número positivo</h1> | ||
+ | <?php | ||
+ | $numero = -1; // Inicializamos con un valor negativo para garantizar la ejecución del bucle al menos una vez | ||
+ | // Simulamos una entrada de usuario (en un entorno real, puedes obtener esto de un formulario) | ||
+ | echo "Por favor, ingrese un número positivo: "; | ||
+ | $entrada_usuario = "-5"; // Cambia este valor para probar diferentes entradas | ||
+ | |||
+ | do { | ||
+ | |||
+ | printf("<br />Número ingresado:%s",$entrada_usuario); | ||
+ | // Convertir la entrada del usuario a un número | ||
+ | $numero = (int)$entrada_usuario; | ||
+ | |||
+ | if ($numero <= 0) { | ||
+ | echo "<br />El número ingresado no es válido. Debe ser positivo.\n"; | ||
+ | $numero++; | ||
+ | $entrada_usuario = strval($numero); | ||
+ | } | ||
+ | } while ($numero <= 0); | ||
+ | |||
+ | echo "<br />Has ingresado un número positivo válido: $numero"; | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
− | <br> -- [[Usuario:angelfg|Ángel D. Fernández González]] -- ( | + | <br> -- [[Usuario:angelfg|Ángel D. Fernández González]] -- (2023). |
Revisión actual del 17:35 29 nov 2023
Sumario
if
- Nota: Esta información está baseada na que se atopa na web de php.
- O construtor if permite a execución condicional de fragmentos de código.
- Sintaxe:
1 if (expr) 2 sentenza
- Sendo expr unha expresión que pode ser avaliada como true ou false.
- En caso de ser avaliada como true se executa a sentenza.
Exemplo de código:
1 <?php 2 if ($a > $b) { // Se $a é maior que $b executa dita sentenza 3 echo "a é maior b"; 4 } 5 ?>
- Se queremos executar varias sentenzas temos que facer uso das chaves {....}. Todas as sentenzas que estean dentro das chaves será executadas.
Exemplo de código:
1 <?php 2 if ($a > $b) { 3 echo "a é maior b"; 4 $b = $a; 5 } 6 ?>
- É necesario que a condición estea entre parénteses: (expr).
- Pódense anidar if´s de forma indefinida.
Exemplo de código:
1 <?php 2 if ($a > $b) { 3 echo "a é maior b"; 4 if ($a > $c) { 5 echo "a é maior que c"; 6 } 7 } 8 ?>
- É posible empregar outra sintaxe no if que consiste en ter nunha única liña a sentenza con dous puntos ao final e en vez de empregar o peche de chaves empregamos endif;
Exemplo de código:
1 <?php if ($a > $b): ?> 2 <div>A é maior que b</div> 3 <?php endif; ?>
- Esta sintaxe se emprega cando estamos a mesturar código php e html, quedando moito máis claro.
else
- Nota: Esta información está baseada na que se atopa na web de php.
- else forma parte do if e vai servir para executar un conxunto de sentenzas cando non se cumpra a condición indicada no if (cando o valor da expresión avaliada no if sexa false).
Exemplo de código:
1 <?php 2 if ($a > $b) { 3 echo "a é maior que b"; 4 } else { 5 echo "a é menor ou igual que b"; 6 } 7 ?>
- É posible empregar outra sintaxe no if-else que consiste en ter nunha única liña a sentenza con dous puntos ao final, o else tamén leva dous puntos e en vez de empregar o peche de chaves empregamos endif;
Exemplo de código:
1 <?php if ($a > $b): ?> 2 <div>A é maior que b</div> 3 <?php else: ?> 4 <div>A é menor que b</div> 5 <?php endif; ?>
- Esta sintaxe se emprega cando estamos a mesturar código php e html, quedando moito máis claro.
elseif | else if
- Nota: Esta información está baseada na que se atopa na web de php.
- As dúas formas ('elsif' e 'else if') van facer o mesmo.
- As condicións elseif van despois dun if e se avalían se a condición do if devolve false. A diferenza do else, podemos ter varios elseif un despois doutro e se irán avaliando en orde ata que un deles se avalía como true. Nese intre executarase o seu código e non se avaliará ningún elseif nin else que haia a continuación.
Exemplo de código:
1 <?php 2 if ($a > $b) { 3 echo "a é maior que b"; 4 } elseif ($a == $b) { 5 echo "a é igual a b"; 6 } else { 7 echo "a é menor que b"; 8 } 9 ?>
switch
Máis información en: https://www.php.net/manual/es/control-structures.switch.php
- Permite ter moitos if else if else pero dunha forma moito máis lexible.
- Cada case debe ter un break se non queremos que se executen as ordes do seguinte case.
Exemplo de código:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Exemplo de switch en PHP</title> 5 </head> 6 <body> 7 <h1>Día da Semana</h1> 8 <?php 9 $numeroDia = 3; // Podes cambiar este valor para probar diferentes días 10 11 switch ($numeroDia) { 12 case 1: 13 echo "Hoxe é luns."; 14 break; 15 case 2: 16 echo "Hoxe é martes."; 17 break; 18 case 3: 19 echo "Hoxe é mércores."; 20 break; 21 case 4: 22 echo "Hoxe é xoves."; 23 break; 24 case 5: 25 echo "Hoxe é venres."; 26 break; 27 case 6: 28 echo "Hoxe é sábado."; 29 break; 30 case 7: 31 echo "Hoxe é domingo."; 32 break; 33 default: 34 echo "Número de día non válido."; 35 } 36 ?> 37 </body> 38 </html>
while
- Nota: Esta información está baseada na que se atopa na web de php.
- Sintaxe:
while (expresión) { Sentenzas a executar; }
- Se o while ten unha única sentenza a executar podemos poñer:
while (expresión) Unha única sentenza;
- Existe unha sintaxe alternativa para o anterior:
while (expresión): Sentenzas a executar; endwhile;
- O que fai while é executar as sentenzas que se atopan dentro das chaves ata que a expresión devolva false.
- Fixarse como primeiro se avalía a expresión e se é certa (devolve true) se executan as sentenzas. Se a primeira vez vale false nunca vai entrar a executar as sentenzas.
- Vexamos un exemplo:
<?php $i = 1; while ($i <= 10) { echo $i++; /* o valor presentado sería $i antes do incremento (post-incremento) */ } ?>
- Sairá como resultado os números do 1 ata o 10.
- Ao igual que có if, podemos empregar outra sintaxe cando estamos a mesturar código php e código html.
- Este sería un exemplo de cómo facelo.
<ul> <?php while ($condicion): ?> // código <?php endwhile; ?> </ul>
do-while
- Nota: Esta información está baseada na que se atopa na web de php.
- Sintaxe:
do { Sentenzas a executar; while (expresión);
- O concepto é o mesmo que no caso do bucle while. A diferenza estriba en que neste caso o grupo de sentenzas a executar sempre se executarán a lo menos unha vez, xa que a avaliación da expresión se fai despois de executar as sentenzas.
- Vexamos un exemplo:
<?php $i = 0; do { echo $i++; } while ($i <= 10); ?>
- Amosará todos os números dende 0 ata o 10.
- Se facemos unha modificación a expresión do while para que sexa false na primeira iteración...
<?php $i = 0; do { echo $i++; } while ($i > 10); ?>
- Amosará o valor 0, e sairá do bucle.
for
- Nota: Esta información está baseada na que se atopa na web de php.
- A sentenza 'for' serve para repetir un conxunto de sentenzas mentres se cumpra unha determinada condición. A cada repetición denomínase 'iteración' (ao igual que no caso do while).
- Sintaxe:
for(expr1;expr2;expr3){ Sentenzas a executar; }
- Sendo:
- expr1: Execútase ao comezo do bucle e soamente unha vez. Normalmente é utilizada para dar valores iniciais á variable que se vai utilizar no bucle.
- expr2: Ao comezo de cada iteración avalíase a expr2 e devolverá true ou false. O bucle for seguirá executando as sentenzas ata que expr2 devolva false.
- expr3: Ao final de cada iteración avalíase (execútase) expr3.
- expr1,expr2 e expr3 poden ser calquera sentenza php e poden poñerse varias sentenzas separadas por ',' (coma).
- Normalmente imos utilizar o bucle for para executar un conxunto de sentenzas en base a un contador que se irá incrementando en cada iteración (repetición) ata que chegue a un determinado valor, indicado na expresión 'expr2'.
- Por exemplo:
for($cont=0;$cont<5;$cont++){ printf("Amosando o valor de \$cont: %s<br />",$cont); }
Nota: $cont++ é igual que poñer $cont=$cont+1. Temos tamén a operación contraria ($cont--).
- Este exemplo produce a seguinte saída:
Amosando o valor de $cont:0 Amosando o valor de $cont:1 Amosando o valor de $cont:2 Amosando o valor de $cont:3 Amosando o valor de $cont:4
- Para saír do for sen esperar a que se cumpra a condición indicada no mesmo podemos facer uso da sentenza break.
- Por exemplo:
for($cont=0;$cont<5;$cont++){ if($cont==3) break; printf("Amosando o valor de \$cont: %s<br />",$cont); }
- Saída:
Amosando o valor de $cont:0 Amosando o valor de $cont:1 Amosando o valor de $cont:2
- Para saltar unha iteración (é dicir, que non continúe executando as sentenzas que se atopan dentro do for e avalíe directamente a expr3, saltando ao comezo do bucle) podemos facer uso da sentenza continue.
- Por exemplo:
for($cont=0;$cont<5;$cont++){ if($cont==2) continue; printf("Amosando o valor de \$cont: %s<br />",$cont); }
- Saída:
Amosando o valor de $cont:0 Amosando o valor de $cont:1 Amosando o valor de $cont:3 Amosando o valor de $cont:4
- Podemos utilizar o for (ao igual que o while) para xerar dinamicamente o contido dun formulario dunha páxina web:
- Imaxinemos que dispoñemos en $_POST['num_exemplares'] o número de exemplares dun libro que queremos dar de alta na nosa base de datos (este dato ven dun formulario anterior).
- Podemos crear o seguinte formulario:
<form action='Alta_Exemplares.php' method='post'> <?php for($cont=1;$cont<$_POST['num_exemplares'];$cont++){ echo "<input type='text' name='txtEstadoExemplar[]' />"; } ?> <input type='submit' value='Enviar' name='btnAltaExemplares' /> </form>
- Poderíamos enviar de vez os estados (roto,perfecto, pintado,...) de cada un dos exemplares a dar de alta (é un exemplo, loxicamente se queremos gardar ese tipo de dato sería mais conveniente utilizar un <select> cos diferentes estados.
- Lembrar que xa vimos anteriormente na wiki como enviar datos en forma de array.
- Ao igual que có if, podemos empregar outra sintaxe cando estamos a mesturar código php e código html.
- Este sería un exemplo de cómo facelo.
<?php for ($i = 0; $i < 10; $i++): ?> <p>Ítem <?php echo $i; ?></p> <?php endfor; ?>
Exercicios propostos
- Exercicio 1: Determinar se un número é positivo ou negativo. Emprega unha variable e dalle os diferentes valores. Debe amosar unha mensaxe diferente para cando é positivo, negativo ou igual a cero.
- Exercicio 2: Determina se dada unha contrasinal e un usuario, este pode entrar. Debes empregar dúas variables, unha para o usuario e outra para o password. Se o usuario non existe debe amosar unha mensaxe. Se o usuario existe e a contrasinal é incorrecta deberá indicalo. Se a contrasinal é correcta deberá indicar Acceso concedido.
- Exercicio 3: Contar ata X. Emprega unha variable para gardar o número ata o que ten que contar e amosa en cada liña Número: X dende 1 ata X
- Exercicio 4: Taboa de multiplicar. Emprega un bucle for para xerar a taboa de multiplicar do 5.
- Exercicio 5: Amosa o nome dunha froita en función dun número. Por exemplo, 1 => Mazá, 2 => Pera,....
- Exercicio 6: Partindo dunha variable cadea na que gardas un número, convirte dita cadea a número e comproba que dito número sexa superior a 0. En caso de que non o sexa, terá que incrementar o valor do número na cadea e volverá a facer a comprobación. Así continuamente ata que sexa superior a 0.
Solución Exercicios
- Exercicio 1: Determinar se un número é positivo ou negativo. Emprega unha variable e dalle os diferentes valores. Debe amosar unha mensaxe diferente para cando é positivo, negativo ou igual a cero.
<!DOCTYPE html> <html> <head> <title>Exercicio con if-else</title> </head> <body> <h1>Determinar se un número é positivo ou negativo</h1> <?php $numero = 10; // Podes cambiar este valor para probar diferentes números if ($numero > 0) { echo "O número $numero é positivo."; } elseif ($numero < 0) { echo "O número $numero é negativo."; } else { echo "O número é igual a 0."; } ?> </body> </html>
- Solución Exercicio 2: Determina se dada unha contrasinal e un usuario, este pode entrar. Debes empregar dúas variables, unha para o usuario e outra para o password. Se o usuario non existe debe amosar unha mensaxe. Se o usuario existe e a contrasinal é incorrecta deberá indicalo. Se a contrasinal é correcta deberá indicar Acceso concedido.
<!DOCTYPE html> <html> <head> <title>Exercicio con if-else</title> </head> <body> <h1>Determinar se un usuario ten acceso</h1> <?php // Datos del usuario existente $usuario_correcto = "usuario1"; $contrasena_correcta = "secreta123"; // Datos del usuario ingresado $usuario_ingresado = "usuario1"; // Cambia el usuario ingresado $contrasena_ingresada = "secreta1234"; // Cambia la contraseña ingresada // Comprobar si el usuario y la contraseña son correctos if ($usuario_ingresado == $usuario_correcto && $contrasena_ingresada == $contrasena_correcta) { echo "Acceso concedido. Benvido, $usuario_correcto."; } elseif ($usuario_ingresado == $usuario_correcto) { echo "Acceso denegado. A contrasinal é incorrecta."; } else { echo "Acceso denegado. O usuario non existe."; } ?> </body> </html>
- Solución Exercicio 3: Contar ata X. Emprega unha variable para gardar o número ata o que ten que contar e amosa en cada liña Número: X dende 1 ata X
<!DOCTYPE html> <html> <head> <title>Exemplo de bucle for en PHP</title> </head> <body> <h1>Contar ata un número específico</h1> <?php $numero_a_contar = 7; // Número hasta el cual se va a contar for ($i = 1; $i <= $numero_a_contar; $i++) { echo "Número: $i<br>"; } ?> </body> </html>
- Solución Exercicio 4: Taboa de multiplicar. Emprega un bucle for para xerar a taboa de multiplicar do 5.
<!DOCTYPE html> <html> <head> <title>Exemplo de bucle for en PHP</title> </head> <body> <h1>Taboa de multiplicar do 5</h1> <?php $numero = 5; for ($i = 1; $i <= 10; $i++) { $resultado = $numero * $i; echo "$numero x $i = $resultado<br>"; } ?> </body> </html>
- Solución Exercicio 5: Amosa o nome dunha froita en función dun número. Por exemplo, 1 => Mazá, 2 => Pera,....
<!DOCTYPE html> <html> <head> <title>Exemplo de switch en PHP</title> </head> <body> <h1>Nome da Fruta</h1> <?php $numeroFruta = 3; // Podes cambiar este valor para probar diferentes frutas switch ($numeroFruta) { case 1: echo "Mazá"; break; case 2: echo "Pera"; break; case 3: echo "Laranxa"; break; case 4: echo "Kiwi"; break; case 5: echo "Banana"; break; default: echo "Número de fruta non válido."; } ?> </body> </html>
- Solución Exercicio 6: Partindo dunha variable cadea na que gardas un número, convirte dita cadea a número e comproba que dito número sexa superior a 0. En caso de que non o sexa, terá que incrementar o valor do número na cadea e volverá a facer a comprobación. Así continuamente ata que sexa superior a 0.
<!DOCTYPE html> <html> <head> <title>Exemplo de bucle Do-While en PHP</title> </head> <body> <h1>Ingresar un número positivo</h1> <?php $numero = -1; // Inicializamos con un valor negativo para garantizar la ejecución del bucle al menos una vez // Simulamos una entrada de usuario (en un entorno real, puedes obtener esto de un formulario) echo "Por favor, ingrese un número positivo: "; $entrada_usuario = "-5"; // Cambia este valor para probar diferentes entradas do { printf("<br />Número ingresado:%s",$entrada_usuario); // Convertir la entrada del usuario a un número $numero = (int)$entrada_usuario; if ($numero <= 0) { echo "<br />El número ingresado no es válido. Debe ser positivo.\n"; $numero++; $entrada_usuario = strval($numero); } } while ($numero <= 0); echo "<br />Has ingresado un número positivo válido: $numero"; ?> </body> </html>
-- Ángel D. Fernández González -- (2023).