Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - erniker

Páginas: [1]
1
Buenas otra vez. Este es el enunciado:
El ejercicio 2 de la entrega: https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=613:ejemplo-consulta-php-mysql-select-bucle-while-mysqlifetcharray-recorrer-resultados-query-cu00842b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193

Y mi código es:
Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
</head>
<body>
<?php
$link mysqli_connect("sql311.byethost7.com""b7_15257931""199199");
mysqli_select_db($link"b7_15257931_nombreElegido");
$tildes $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes correctamente
$result mysqli_query($link"SELECT * FROM ciudades");
while ($fila mysqli_fetch_array($result)){
$numHabitantes $numHabitantes $fila[habitantes];
$conMetro $conMetro $fila[tieneMetro];
}
echo "La suma de habitantes de México D.F., Barcelona, Buenos Aires, Medellín, Lima, Caracas, Santiago, Antigua, Quito y La Habana es: $numHabitantes habitantes";
echo "<br>";
echo "De estas ciudades tienen metro: $conMetro ciudades.";
mysqli_free_result($result);
mysqli_close($link);
?>

</body>
</html>

Y este es mi resultado:
La suma de habitantes de México D.F., Barcelona, Buenos Aires, Medellín, Lima, Caracas, Santiago, Antigua, Quito y La Habana es: 5663886 habitantes
De estas ciudades tienen metro: 0 ciudades.

Es decir, no consigo hacer que cuente las ciudades con metro.
¿Alguna idea?
Muchas gracias

2
Hola otra vez.
Este es el enunciado:
Utilizando la tabla <<ciudades>> que hemos creado para el ejercicio de la entrega anterior del curso, cuyo contenido era:
Pongo link a la entrega mejor :P: https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=612:php-consultas-mysql-mysqliconnect-selectdb-query-fetcharray-freeresult-close-ejemplos-cu00841b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193

Crea un archivo php donde se realice una consulta a la base de datos para extraer todos los datos de la tabla y a continuación muestra por pantalla los valores de país y ciudad de cada fila.

Ejemplo de resultados a obtener:

Los resultados de la consulta a la base de datos son los siguientes:

País: México --- Ciudad: México D.F.

País: España --- Ciudad: Barcelona

País: Argentina --- Ciudad: Buenos Aires


Mi codigo es:
Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
</head>
<body>
<?php //Ejemplo aprenderaprogramar.com
$link mysql_connect("sql311.byethost7.com""b7_15257931""199199");
mysql_select_db("b7_15257931_nombreElegido"$link);
mysql_query("SET NAMES 'utf8'"); //Para que se muestren las tildes
$result mysql_query("SELECT * FROM ciudades"$link);
for ($i 0$i<=count($result); $i++){
echo"Pais: ".mysql_result($result$i"pais")."<br>";
echo"Ciudad: ".mysql_result($result$i"ciudad")."<br>";
}
mysql_free_result($result);
mysql_close($link);
?>

</body>
</html>
El problema es que solo me presenta en pantalla esto:
Pais: México
Ciudad: México D.F.
Pais: España
Ciudad: Barcelona
Es decir, solo me toma las dos primeras filas de la tabla... no las 10... supongo que me habré equivocado a la hora de tomar la bariable para el bucle... pero ni idea...
Gracias!

3
Bien, el enunciado es este:
Recupera el código fuente de tres páginas web diferentes y usando las funciones para cadenas de php muestra por pantalla cuántas veces aparece la etiqueta <h1> en cada una de ellas. Ejemplo de resultado a obtener: La etiqueta h1 aparece 34 veces en aprenderaprogramar.com. La etiqueta h1 aparece 45 veces en elmercurio.cl. La etiqueta h1 aparece 88 veces en clarin.com
Mi codiog es este:
Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
</head>
<body>
<?php //Ejemplo aprenderaprogramar.com
$web0 "https://www.aprenderaprogramar.com";
$web1 "http://www.cuanto(insulto).com/";
$web2 "http://www.cuantarazon.com/";
$texto0 file_get_contents($web0);
$texto1 file_get_contents($web1);
$texto2 file_get_contents($web2);
$cadena "<h1>";
echo "La etiqueta h1 aparece ".substr_count($texto0$cadena). " veces en $web0";
echo "<br>";
echo "La etiqueta h1 aparece ".substr_count($texto1$cadena). " veces en $web1";
echo "<br>";
echo "La etiqueta h1 aparece ".substr_count($texto2$cadena). " veces en $web2";
?>

</body>
</html>

Y el resultado que sale es este:
La etiqueta h1 aparece 0 veces en https://www.aprenderaprogramar.com
La etiqueta h1 aparece 0 veces en http://www.cuanto(insulto).com/
La etiqueta h1 aparece 4 veces en http://www.cuantarazon.com/

He probado la funcion file_get_contents con esta web, y no me muestra el código fuente, solo la pagina en texto plano... supongo que hay alguna funcion en el  codigo para protegerlo de este tipo de visualizaciones no?

4
Una preguntilla, que es una tonteria, pero ahora no caigo.
este es el enunciado:
a) Una función (tipo procedimiento, no hay valor devuelto) denominada escribirNumerosMod que reciba dos parámetros: un array de valores enteros y una cadena de texto que puede ser "sobreescribir" ó "ampliar". La función debe proceder a: escribir cada uno de los números que forman el contenido del array en una línea de un archivo datosEjercicio.txt usando el modo de operación que se indique con el otro parámetro. Si el archivo no existe, debe crearlo.
Ejemplo: El array que se pasa es $numeros = array(5, 9, 3, 22); y la invocación que se utiliza es escribirNumerosMod($numeros, "sobreescribir"); En este caso, se debe eliminar el contenido que existiera previamente en el archivo y escribir en él 4 líneas, cada una de las cuales contendrá los números 5, 9, 3 y 22.

Y este mi codigo:
Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
</head>
<body>
<!--escribirNumerosMod-->
<?php
$numeros = array(59322);
$sobreescribir w;
$ampliar a;
$file fopen("archivo.txt""$sobreescribir");
for ($i 0$i=4$i++){
fwrite($file$numeros[i] . PHP_EOL);
}
fclose($file);
?>

</body>
</html>
No he podido probarlo porque el hosting gratuito me esta dando problemas, pero creo que funciona.
La pregunta tonta es: ¿Como hago para poder manejar el bucle, si no supiera cuantos datos hay en el array "numeros"? Es decir, si el numero de elementos en el array fuera aleatorio, como hago para que el bucle lo recorrar entero?
Muchas gracias!

5
Vamos a ver, el enunciado es este:
Crea un documento HTML que conste de un título h1 con el texto <<Calendario>>. En la página deberá mostrarse el mes y año actuales (en el momento en que hagas el ejercicio) y para cada día del mes, indicar si es lunes, martes, miércoles, jueves, viernes, sábado o domingo.
Ejemplo: suponiendo que hagas el ejercicio en mayo de 2050, debería mostrarse:
Día 1: Domingo, Día 2: Lunes, Día 3: Martes, Día 4: Miércoles, … etc. hasta Día 31: Martes.
Ampliación voluntaria del ejercicio: si tienes conocimiento de maquetación con HTML y CSS te proponemos que cambies el aspecto para que en lugar de mostrarse como texto, el calendario se muestre con aspecto de calendario habitual. Para la maquetación puedes usar una tabla de 7 columnas por 7 filas (total 49 celdas) con ancho de tabla 300 píxeles y tamaño de fuente en la tabla 24 píxeles.


La ampliacion voluntaria, no sabria hacerlo... hace muchos años que estudie CSS y primero querria terminar este curso de introduccion a PHP, antes de ponerme de nuevo con CSS.
Del apartado obligatorio, esto es lo que tengo hasta ahora:
Código: [Seleccionar]
<html>
<head><title>Ejemplo aprenderaprogramar.com</title></head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
<?php
echo '<h1> Calendario</h1>';
$time time();
echo '<h2>'date("F-Y"$time). '<h2>';
echo 'Dia 'date("j: l"$time);
?>

</body>
</html>
Lo que no se es como hacer el bucle, para que repita la instruccion echo 'Dia '. date("j: l", $time); desde el primer dia del mes hasta el ultimo, ya que el ultimo puede ser 28, 29(si el año cae en año bisiesto), 30 o 31... no se si me explico.
Por otro, lado, ¿como se cambiaria para que los nobres del dia y el mes sean en español?¿hay que asociar el valor del time a una variable?
Gracias!

6
El enunciado dice esto:
Crear archivos php que ejecuten la tarea indicada:

a) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", indicar cuántas veces aparece cada vocal usando funciones para cadenas PHP.

b) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", indicar qué consonantes son las que aparecen y cuántas veces aparecen usando funciones para cadenas PHP.

c) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", mostrar la cadena donde todas las a hayan sido sustituídas por el símbolo *. Por ejemplo en lugar de <<El abecedario…>> se habrá de mostrar <<El *beced*rio…>>

d) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", mostrar la subcadena desde la primera aparición de <<completo>> excluyendo completo, es decir, deberá mostrarse << es algo largo y detallarlo exhaustivamente es costoso>>. Para ello usa una o varias funciones para cadenas PHP.


El codigo que yo he escrito es este:

Código: [Seleccionar]
<html>
<head><title>Ejemplo aprenderaprogramar.com</title></head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
<?php
echo '<h1> Apartado a)</h1>';
//Apartado a)
$cadena 'El abecedario completo es algo largo y detallarlo exhaustivamente es costoso';
$a 0$e 0$i 0$o 0$u 0;
for ($cont=0$cont<=strlen($cadena)-1$cont++) {
switch ($cadena[$cont]) {
case 'a': case 'A':
$a++;
break;
case 'e': case 'E':
$e++;
break;
case 'i': case 'I':
$i++;
break;
case 'o': case 'O':
$o++;
break;
case 'u'; case 'U':
$u++;
break;
}
}
echo 'Letra: a encontrada '.  $a.' veces<br/>';
echo 'Letra: e encontrada '.  $e.' veces<br/>';
echo 'Letra: i encontrada '.  $i.' veces<br/>';
echo 'Letra: o encontrada '.  $o.' veces<br/>';
echo 'Letra: u encontrada '.  $u.' veces<br/>';
echo '</br></br>';
echo '<h1> Apartado b)</h1>';
//Apartado b)
$cadena 'El abecedario completo es algo largo y detallarlo exhaustivamente es costoso';
$b 0$c 0$d 0$f 0$g 0$h 0;
$j 0$k 0$l 0$m 0$n 0$ñ 0;
$p 0$q 0$r 0$s 0$t 0$v 0;
$w 0$x 0$y 0$z 0;
for ($cont=0$cont<=strlen($cadena)-1$cont++) {
switch ($cadena[$cont]) {
case 'b': case 'B':
$b++;
break;
case 'c': case 'C':
$c++;
break;
case 'd': case 'D':
$d++;
break;
case 'f': case 'F':
$f++;
break;
case 'g'; case 'G':
$g++;
break;
case 'h': case 'H':
$h++;
break;
case 'j': case 'J':
$j++;
break;
case 'k': case 'K':
$k++;
break;
case 'l': case 'L':
$l++;
break;
case 'm'; case 'M':
$m++;
break;
case 'n': case 'N':
$n++;
break;
case 'ñ': case 'Ñ':
++;
break;
case 'p': case 'P':
$p++;
break;
case 'q': case 'Q':
$q++;
break;
case 'r'; case 'R':
$r++;
break;
case 's': case 'S':
$s++;
break;
case 't': case 'T':
$t++;
break;
case 'v': case 'V':
$v++;
break;
case 'x': case 'X':
$x++;
break;
case 'y'; case 'Y':
$y++;
break;
case 'z'; case 'Z':
$z++;
break;
}
}
echo 'Letra: b encontrada '.  $b.' veces<br/>';
echo 'Letra: c encontrada '.  $c.' veces<br/>';
echo 'Letra: d encontrada '.  $d.' veces<br/>';
echo 'Letra: f encontrada '.  $f.' veces<br/>';
echo 'Letra: g encontrada '.  $g.' veces<br/>';
echo 'Letra: h encontrada '.  $h.' veces<br/>';
echo 'Letra: j encontrada '.  $j.' veces<br/>';
echo 'Letra: k encontrada '.  $k.' veces<br/>';
echo 'Letra: l encontrada '.  $l.' veces<br/>';
echo 'Letra: m encontrada '.  $m.' veces<br/>';
echo 'Letra: n encontrada '.  $n.' veces<br/>';
echo 'Letra: ñ encontrada '.  .' veces<br/>';
echo 'Letra: p encontrada '.  $p.' veces<br/>';
echo 'Letra: q encontrada '.  $q.' veces<br/>';
echo 'Letra: r encontrada '.  $r.' veces<br/>';
echo 'Letra: s encontrada '.  $s.' veces<br/>';
echo 'Letra: t encontrada '.  $t.' veces<br/>';
echo 'Letra: v encontrada '.  $v.' veces<br/>';
echo 'Letra: w encontrada '.  $w.' veces<br/>';
echo 'Letra: x encontrada '.  $x.' veces<br/>';
echo 'Letra: y encontrada '.  $y.' veces<br/>';
echo 'Letra: z encontrada '.  $z.' veces<br/>';
echo '</br></br>';
echo '<h1> Apartado c)</h1>';
//Apartado c)
$cadena 'El abecedario completo es algo largo y detallarlo exhaustivamente es costoso';
echo str_replace("a""*"$cadena);
echo '</br></br>';
echo '<h1> Apartado d)</h1>';
//Apartado d)
$cadena 'El abecedario completo es algo largo y detallarlo exhaustivamente es costoso';
echo strstr($cadena"es"false);
?>

</body>
</html>
Ovbiamente, seguro que los dos primeros apartados se pueden optimizar muchisimo, pero no he encontrado la manera.
Si se os ocurre como optimizarlo, decidmelo please :)

7
Tengo que crear una función que reciba cinco números enteros como parámetros y muestre por pantalla el resultado de sumar los cinco números (tipo procedimiento, no hay valor devuelto).
Lo que yo he escrito es esto:
Código: [Seleccionar]
<html>
<head><title>Ejemplo aprenderaprogramar.com</title></head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
<?php
//Funcion procedimiento
function sumacincosin($resultado) {
echo $resultado;
}
$n1 1;
$n2 2;
$n3 3;
$n4 4;
$n5 5;
 
sumacincosin(n1 n2 n3 n4 n5);
echo "</br>";
?>

</body>
</html>

Pero me muestra un 0 por pantalla... no se muy bien donde esta el fallo
Gracias

8
He copiado este ejemplo para ver cómo recorrer arrays multidimensionales en PHP:

Código: [Seleccionar]
<?php //Ejemplo arrays aprenderaprogramar.com
$array[0][0] = "Uno";
$array[0][1] = "Dos";
$array[1][0] = "Tres";
$array[1][1] = "Cuatro";
for(
$i=0;$i<count($array);$i++) {
for($j=0;$j<count($array[$i]);$j++) {
echo $array[$i][$j].'<br />';
}
}
echo 
"--------------------";
$array2[0][0][0] = "Cinco";
$array2[0][0][1] = "Seis";
$array2[0][0][2] = "Siete";
$array2[0][1][0] = "Ocho";
$array2[0][1][1] = "Nueve";
for(
$i=0;$i<count($array);$i++) {
for($j=0;$j<count($array[$i]);$j++) {
for($k=0;$k<count($array[$i][$j]);$k++) {
echo $array[$i][$j][$k].'<br />';
}
}
}

Se supone que tiene que salir esto:

 pero a mi me sale esto:

Uno
Dos
Tres
Cuatro
--------------------U
D
T
C

La cosa es que estoy revisando el código, y no lo veo mal...
¿Que esta pasando?
Muchas gracias

9
De acuerdo. este es el ejercicio:
Crea el código PHP que cumpla con lo que se indica a continuación:
a) Declara una variable cuyo contenido sea la cadena "Didáctica y divulgación de la programación"
b) Usando la función substr extrae cada una de las palabras de la cadena anterior a una variable. Como tenemos 6 palabras, debes tener 6 variables con las subcadenas.
c) Usando la concatenación muestra por pantalla lo siguiente: <<Las palabras primera, tercera y sexta son: Didáctica, divulgación, programación>>
d) Usando strlen muestra por pantalla lo siguiente: <<La palabra primera es Didáctica y tiene 9 caracteres, la palabra tercera es divulgación y tiene 11 caracteres. La palabra sexta es programación y tiene 12 caracteres>>


Y este es mi código:

Código: [Seleccionar]
<html>
<head><title>Ejemplo aprenderaprogramar.com</title>
</head>
<body>
<?php
$cad0 "Didáctica y divulgación de la programación";
$cad1 substr($cad009);
$cad2 substr($cad0101);
$cad3 substr($cad01211);
$cad4 substr($cad0243);
$cad5 substr($cad0273);
$cad6 substr($cad03042);
echo "La subcadena número uno es la siguiente: $cad1 <br />";
echo "La subcadena número dos es la siguiente: $cad2 <br />";
echo "La subcadena número tres es la siguiente: $cad3 <br />";
echo "La subcadena número cuatro es la siguiente: $cad4 <br />";
echo "La subcadena número cinco es la siguiente: $cad5 <br />";
echo "La subcadena número seis es la siguiente: $cad6 <br />";
echo "</br>";
$cad7 =  $cad1 $cad3 $cad6;
echo "Las palabras primera, tercera y sexta son: $cad7 <br />";
$cad8 strlen($cad1);
$cad9 strlen($cad3);
$cad10 strlen($cad6);
echo "La palabra primera es $cad1 y tiene $cad8 caracteres, la palabra tercera es $cad3 y tiene $cad9 caracteres. La palabra sexta es $cad6 y tiene $cad10 caracteres <br />";
?>

</body>
</html>

La duda la tengo en el apartado que dice: c) Usando la concatenación muestra por pantalla lo siguiente: <<Las palabras primera, tercera y sexta son: Didáctica, divulgación, programación>>

que yo lo que hago es esto:
Código: [Seleccionar]
$cad7 =  $cad1 . $cad3 . $cad6;
echo "Las palabras primera, tercera y sexta son: $cad7 <br />";

Pero claro, cuando cargo esto en el navegador, me sale esto:

Las palabras primera, tercera y sexta son: Didácticadivulgaciónprogramación

Es decir, no se como intercalar las comas en la concatenación para que quede asi:
 
Las palabras primera, tercera y sexta son: Didáctica, divulgación, programación

Me podeis ayudar?
Gracias!

10
Pues estaba haciendo los ejemplos, este en concreto:
Código: [Seleccionar]
<html>
<?php
$galletas 
true;
if(
$galletas == true){
?>

<br/>
<p>&nbsp ;&nbsp ;&nbsp ;&nbsp ;---------------------------------</p>
<?php
echo '&nbsp ;&nbsp ;&nbsp ;&nbsp ;&nbsp ;&nbsp ;&nbsp ;&nbsp ;&nbsp ;&nbsp ;&nbsp ;&nbsp ;&nbsp ;&nbsp ;Hay galletas';
echo 
'<br/>';
echo 
'<br/>';
echo 
'&nbsp ;&nbsp ;&nbsp ;&nbsp ;---------------------------------';
} else {
echo 
'No hay galletas';
}
?>

</html>

Lo que según el tutorial dice que debería mostrar en el explorador lo siguente:
http://i.imgur.com/uRyj3.png

pero a mi me muestra esto:

  ;  ;  ;  ;---------------------------------

  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;Hay galletas

  ;  ;  ;  ;---------------------------------

¿Que ha ocurrido?
Muchas gracias

11
Buenas.
El enunciado dice lo siguente:
Crea el siguiente archivo y súbelo mediante ftp al directorio raíz de tu sitio web. El archivo llevará por nombre curso3.php y en él debe existir la estructura de un documento HTML, aparecer en la parte superior de la página un título h1 con el texto <<Cursos aprenderaprogramar.com>>, seguido de un título h2 con el texto <<Curso php desde cero>>, y a continuación hacer que se muestre usando echo el siguiente texto dentro de un div con color de fondo amarillo: <<Curso php de aprenderaprogramar.com usando la instrucción echo>>. Debajo de este texto debes usar echo para crear un contenedor div con color de gris donde pueda leerse “Este es el pie de página”.

Mi problema esta en que cuando intento hacer que se muestre usando echo el siguiente texto dentro de un div con color de fondo amarillo, al cargar la página, sale en blanco. es decir, no se como crear el div con fondo amarillo usando echo. Este es el código que tengo hasta ahora:
<html>
   <head>
      <title>Cursos aprenderaprogramar.com</title>
      <meta charset="ulf-8">
   </head>
   <body>
      <h1>Cursos aprenderaprogramar.com</h1>
      <h2>Curso php desde cero</h2>
         <?php
         echo "<div>
               Curso php de aprenderaprogramar.com usando la instrucción echo
             </div>";
         ?>
   </body>
</html>

Esto si funciona y se muestra la página al cargarla en el navegador, pero cuando intento darle al div el fondo amarillo, haciendo esto:
<div style="background-color:yellow">
Curso php de aprenderaprogramar.com usando la instrucción echo
</div>
al cargar la página se muestra en blanco. ¿Donde me estoy equivoncando?

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".