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.


Mensajes - Dimitar Stefanov

Páginas: 1 ... 4 5 6 7 8 [9] 10 11 12 13 14 ... 30
161
Buenas, Salvadoruve2.

Veo el ejercicio bien resuelto. Buen trabajo.

Saludos :)

162
Buenas, de nuevo :)

Ahora entendí lo que me querías decir César. Después de leer detenidamente el código del enlace que me facilitaste vi como lo había hecho Pedro.

En vez de poner los enlaces en el código HTML los puso en el código PHP y así se produce la llamada desde el servidor y no con una llamada externa como me indicas tú.

Gracias :)

PD: No he dividido la información por ningún motivo, sino que simplemente se ha me había ocurrido así de primeras. Supongo que al estar tantien tiempo programando con JavaScript lo ví más fácil. Espero que cuando coja más práctica con el objeto "XmlHttpRequest" me sentiré igual de seguro programar con él que con JavaScript. Que "XmlHttpRequest" también es JavaScript pero ya me entendréis :)

163
Después de la sugerencia de mi compañero, Pedro, creo que el ejercicio deberá de quedar así:

Código HTML:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Cursos aprende a programar</title>
<meta charset="utf-8">
<style type="text/css">
*{
font-family:sans-serif;
}
a:link{
text-decoration:none;
}
select{
font-size:18px;
}
div div{
color: blue; background-color:#F1FEC6;
font-size: 20px;
float:left; border: solid;
margin: 20px; padding:15px;
}
</style>
<script>

function mostrarSugerencia(str){
var xmlhttp;
var contenidosRecibidos = new Array();
var nodoMostrarResultados = document.getElementById('listaCiudades');
var contenidosAMostrar = '';

if(str.length==0){
document.getElementById("txtInformacion").innerHTML="";
nodoMostrarResultados.innerHTML = '';
return;
}

xmlhttp=new XMLHttpRequest();

xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
    contenidosRecibidos = xmlhttp.responseText.split(",");
    document.getElementById("txtInformacion").innerHTML=contenidosRecibidos[0];
    for(var i=1; i<contenidosRecibidos.length;i++){
    contenidosAMostrar = contenidosAMostrar+'<div id="ciudades'+i+'"> <a href="http://aprenderaprogramar.com" target="_blank">' + contenidosRecibidos[i]+ '</a></div>';
    }
    var msg = "<td>onreadystatechange</td><td>"+xmlhttp.onreadystatechange+"</td>";
    document.getElementById('fila1').innerHTML = msg;

    msg = "<td>readyState</td><td>"+xmlhttp.readyState+"</td>";
    document.getElementById('fila2').innerHTML = msg;

    msg = "<td>responseText</td><td>"+xmlhttp.responseText+"</td>";
    document.getElementById('fila3').innerHTML = msg;

    msg = "<td>status</td><td>"+xmlhttp.statusText+"</td>";
    document.getElementById('fila4').innerHTML = msg;

    nodoMostrarResultados.innerHTML = contenidosAMostrar;
}
}

xmlhttp.open("GET"," CU01207F(01).php?pais="+str);
xmlhttp.send();
}

</script>
</head>
<body style="margin:20px;">
<h2>Elige un país:</h2>
<form action="">
 <select onchange="mostrarSugerencia(this.value)">
  <option value="none">Elige</option>
  <option value="spain">España</option>
  <option value="mexico">México</option>
  <option value="argentina">Argentina</option>
  <option value="colombia">Colombia</option>
</select>
</form>
<br/>
<p>Informacion sobre operacion en segundo plano con Ajax: <span style="color:brown;" id="txtInformacion"></span></p>
<div id="listaCiudades"></div>
<table>
<tr>
<th style="border: solid;">
Estado
</th>
<th>
Descripción
</th>
</tr>
<tr id="fila1">
</tr>
<tr id="fila2">
</tr>
<tr id="fila3">
</tr>
<tr id="fila4">
</tr>
</table>
</body>
</html>

Código PHP:

Código: [Seleccionar]
<meta charset = "utf-8"/>
<?php // Datos

$pais[0]="spain"
$pais[1]="mexico"
$pais[2]="argentina"
$pais[3]="colombia";

$ciudad[0][0]="Madrid"
$ciudad[0][1]="Barcelona"
$ciudad[0][2]="Valencia"
$ciudad[0][3]="Sevilla";
$ciudad[0][4]="Zaragoza"
$ciudad[0][5]="Málaga"
$ciudad[0][6]="Murcia";
$ciudad[1][0]="México D.F."
$ciudad[1][1]="Ecatepec"
$ciudad[1][2]="Guadalajara"
$ciudad[1][3]="Puebla";
$ciudad[1][4]="Juárez"
$ciudad[1][5]="Tijuana"
$ciudad[1][6]="León"
$ciudad[1][7]="Zapopan";
$ciudad[2][0]="Buenos Aires"
$ciudad[2][1]="Córdoba"
$ciudad[2][2]="Rosario"
$ciudad[2][3]="La Plata";
$ciudad[2][4]="Mar del Plata"
$ciudad[2][5]="San Miguel de Tucumán"
$ciudad[2][6]="Ciudad de Salta";
$ciudad[3][0]="Bogotá"
$ciudad[3][1]="Medellín"
$ciudad[3][2]="Cali"
$ciudad[3][3]="Barranquilla";
$ciudad[3][4]="Cartagena"
$ciudad[3][5]="Cúcuta"
$ciudad[3][6]="Soledad"
$ciudad[3][7]="Ibagué";
 
// Rescatamos el parámetro pais que nos llega mediante la url que invoca xmlhttp
$paisRecibido=$_REQUEST["pais"]; 
$ciudadesDevueltas="";
$existePais false;

for(
$i=0;$i<count($pais);$i++){     
if($paisRecibido == $pais[$i]){
$indicePais $i
$existePais=true;

}

$msg 'El pais recibido por get en segundo plano es '.$paisRecibido;
if(
$existePais){
$msg $msg' y tiene indice '.$indicePais;
}

$ciudadesRespuesta "";

//  Creamos el array a devolver
for($i=$indicePais$i<count($ciudad[$indicePais]); $i++){
    
$ciudadesRespuesta $ciudadesRespuesta.",".$ciudad[$indicePais][$i];
}

echo 
$msg.$ciudadesRespuesta;
//echo count($ciudad[1]);
?>

Es algo así, Pedro?

164
Buenas, Pedro.

Gracias por la aclaración. Ahora hago el ejercicio de nuevo. Ya decía yo que algo no había entendido, jejejeje


Saludos.

165
Buenos días compañeros.

Gracias por vuestro tiempo y por corregirme el ejercicio. Estuve una semana fuera y no podría conectarme. Ahora estoy de vuelta :)

Pedro, utilicé el array multidimensional porque fue lo primero que se me ocurrió. Además, haberlo visto en el curso PHP desde cero, lo tenía recien visto y me acorde de su uso.

César, cómo podría hacerlo sin haber definido las urls? Quizás hay otra manera pero como aún voy por la octava entrega del curso Ajax desde cero. No se me ocurre otra manera.

Saludos :)

166
Buenas noches.

Aquí expongo una posible solución del ejercicio CU01207F del curso Ajax desde cero.

Citar
EJERCICIO

Tomando como punto de partida el código de ejemplo Ajax con el que estamos trabajando:

a) Modifica el código para que cuando se produzca una transmisión de información se muestre en una tabla el valor de todas las propiedades del objeto XMLHttpRequest.

Código HTML:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Cursos aprende a programar</title>
<meta charset="utf-8">
<style type="text/css">
*{
font-family:sans-serif;
}
a:link{
text-decoration:none;
}
select{
font-size:18px;
}
div div{
color: blue; background-color:#F1FEC6;
font-size: 20px;
float:left; border: solid;
margin: 20px; padding:15px;
}
td, th{
border: solid;
}
</style>
<script>

function mostrarSugerencia(str){
var xmlhttp;
var contenidosAMostrar = '';
var paises = str;

xmlhttp=new XMLHttpRequest();

xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==1){
var msg = "<td>Estado 1</td><td>conexión con servidor establecida. Indica que se ha abierto la conexión pero todavía no se ha enviado la petición (no se ha llamado a send)</td>";
document.getElementById('fila1').innerHTML = msg;
alert('Estado 1');
}
if(xmlhttp.readyState==2){
msg = "<td>Estado 2</td><td>recibida petición en servidor. Indica que el servidor ya ha recibido la petición (se ha llamado a send)</td>";
document.getElementById('fila2').innerHTML = msg;
alert('Estado 2');
}
if(xmlhttp.readyState==3){
msg = "<td>Estado 3</td><td>enviando información. Se está enviando la información por parte del servidor, todavía no se ha completado la recepción.</td>";
document.getElementById('fila3').innerHTML = msg;
alert('Estado 3');
}
if(xmlhttp.readyState==4){
msg = "<td>Estado 4</td><td>completado. Se ha recibido la información del servidor y está lista para operar con ella.</td>";
document.getElementById('fila4').innerHTML = msg;
alert('Estado 4');
}

}

xmlhttp.open("GET","CU01206F(01).php?pais="+str);
xmlhttp.send();
}

</script>
</head>
<body style="margin:20px;">
<h2>Elige un país:</h2>
<form action="">
 <select onchange="mostrarSugerencia(this.value)">
  <option value="none">Elige</option>
  <option value="spain">España</option>
  <option value="mexico">México</option>
  <option value="argentina">Argentina</option>
  <option value="colombia">Colombia</option>
</select>
</form>
<br/>
<p>Informacion sobre operacion en segundo plano con Ajax: <span style="color:brown;" id="txtInformacion"></span></p>
<div id="listaCiudades">
<table>
<tr>
<th style="border: solid;">
Estado
</th>
<th>
Descripción
</th>
</tr>
<tr id="fila1">
</tr>
<tr id="fila2">
</tr>
<tr id="fila3">
</tr>
<tr id="fila4">
</tr>
</table>
</div>
</body>
</html>

Código PHP:

Código: [Seleccionar]
<?php 



?>

Realmente no es importante lo que haya en el código PHP. Lo importante es que exista para que el Ajax se pueda conectar.

No sé si he entendido muy bien el cometido del ejercicio.

Gracias.

167
Buenas tardes.

Mediante la presente empiezo el curso de Ajax desde cero.

Citar
EJERCICIO

Tomando como punto de partida el código de ejemplo que hemos visto en esta entrega, realiza las modificaciones oportunas en los archivos php y html para:

a) Definir una url asociada a cada ciudad (usa la url de la ciudad en wikipedia, por ejemplo para la ciudad Medellín será https://es.wikipedia.org/wiki/Medell%C3%ADn)

b) Hacer que cuando se elige un país en el combobox, cada ciudad aparezca con el link a su url en wikipedia y que si se pulsa en ese link se abra una nueva ventana en el navegador mostrando la url correspondiente.

Código HTML:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Cursos aprende a programar</title>
<meta charset="utf-8">
<style type="text/css">
*{
font-family:sans-serif;
}
a:link{
text-decoration:none;
}
select{
font-size:18px;
}
div div{
color: blue; background-color:#F1FEC6;
font-size: 20px;
float:left; border: solid;
margin: 20px; padding:15px;
}
</style>
<script>

function mostrarSugerencia(str){
var xmlhttp;
var contenidosRecibidos = new Array();
var nodoMostrarResultados = document.getElementById('listaCiudades');
var contenidosAMostrar = '';
var paises = str;
var ciudades = new Array(2);
ciudades['spain'] = ["https://es.wikipedia.org/wiki/Madrid", "https://es.wikipedia.org/wiki/Barcelona","https://es.wikipedia.org/wiki/Valencia","https://es.wikipedia.org/wiki/Sevilla","https://es.wikipedia.org/wiki/Zaragoza","https://es.wikipedia.org/wiki/M%C3%A1laga","https://es.wikipedia.org/wiki/Murcia"];

ciudades['mexico'] = ["https://es.wikipedia.org/wiki/Ciudad_de_M%C3%A9xico","https://es.wikipedia.org/wiki/Ecatepec_de_Morelos","https://es.wikipedia.org/wiki/Guadalajara_%28M%C3%A9xico%29","https://es.wikipedia.org/wiki/Puebla","https://es.wikipedia.org/wiki/Ciudad_Ju%C3%A1rez","https://es.wikipedia.org/wiki/Tijuana","https://es.wikipedia.org/wiki/Le%C3%B3n_%28Guanajuato%29","https://es.wikipedia.org/wiki/Zapopan"];

ciudades['argentina'] = ["https://es.wikipedia.org/wiki/Buenos_Aires","https://es.wikipedia.org/wiki/Buenos_Aires","https://es.wikipedia.org/wiki/Rosario_%28Argentina%29","https://es.wikipedia.org/wiki/La_Plata","https://es.wikipedia.org/wiki/Mar_del_Plata","https://es.wikipedia.org/wiki/San_Miguel_de_Tucum%C3%A1n","https://es.wikipedia.org/wiki/Ciudad_de_Salta"];

ciudades['colombia'] = ["https://es.wikipedia.org/wiki/Bogot%C3%A1","https://es.wikipedia.org/wiki/Medell%C3%ADn","https://es.wikipedia.org/wiki/Cali","https://es.wikipedia.org/wiki/Barranquilla","https://es.wikipedia.org/wiki/Barranquilla","https://es.wikipedia.org/wiki/C%C3%BAcuta","https://es.wikipedia.org/wiki/Soledad_%28Atl%C3%A1ntico%29","https://es.wikipedia.org/wiki/Ibagu%C3%A9"];


if(str.length==0){
document.getElementById("txtInformacion").innerHTML="";
nodoMostrarResultados.innerHTML = '';
return;
}

xmlhttp=new XMLHttpRequest();

xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
    contenidosRecibidos = xmlhttp.responseText.split(",");
    document.getElementById("txtInformacion").innerHTML=contenidosRecibidos[0];
    for(var i=1; i<contenidosRecibidos.length;i++){
    contenidosAMostrar = contenidosAMostrar+'<div id="ciudades'+i+'"> <a href="'+ciudades[paises][(i-1)]+'" target="_blank">' + contenidosRecibidos[i]+ '</a></div>';
    }
    nodoMostrarResultados.innerHTML = contenidosAMostrar;
}
}

xmlhttp.open("GET"," CU01206F(01).php?pais="+str);
xmlhttp.send();
}

</script>
</head>
<body style="margin:20px;">
<h2>Elige un país:</h2>
<form action="">
 <select onchange="mostrarSugerencia(this.value)">
  <option value="none">Elige</option>
  <option value="spain">España</option>
  <option value="mexico">México</option>
  <option value="argentina">Argentina</option>
  <option value="colombia">Colombia</option>
</select>
</form>
<br/>
<p>Informacion sobre operacion en segundo plano con Ajax: <span style="color:brown;" id="txtInformacion"></span></p>
<div id="listaCiudades"></div>
</body>
</html>

Código PHP:

Código: [Seleccionar]
<meta charset = "utf-8"/>
<?php // Datos

$pais[0]="spain"
$pais[1]="mexico"
$pais[2]="argentina"
$pais[3]="colombia";

$ciudad[0][0]="Madrid"
$ciudad[0][1]="Barcelona"
$ciudad[0][2]="Valencia"
$ciudad[0][3]="Sevilla";
$ciudad[0][4]="Zaragoza"
$ciudad[0][5]="Málaga"
$ciudad[0][6]="Murcia";
$ciudad[1][0]="México D.F."
$ciudad[1][1]="Ecatepec"
$ciudad[1][2]="Guadalajara"
$ciudad[1][3]="Puebla";
$ciudad[1][4]="Juárez"
$ciudad[1][5]="Tijuana"
$ciudad[1][6]="León"
$ciudad[1][7]="Zapopan";
$ciudad[2][0]="Buenos Aires"
$ciudad[2][1]="Córdoba"
$ciudad[2][2]="Rosario"
$ciudad[2][3]="La Plata";
$ciudad[2][4]="Mar del Plata"
$ciudad[2][5]="San Miguel de Tucumán"
$ciudad[2][6]="Ciudad de Salta";
$ciudad[3][0]="Bogotá"
$ciudad[3][1]="Medellín"
$ciudad[3][2]="Cali"
$ciudad[3][3]="Barranquilla";
$ciudad[3][4]="Cartagena"
$ciudad[3][5]="Cúcuta"
$ciudad[3][6]="Soledad"
$ciudad[3][7]="Ibagué";
 
// Rescatamos el parámetro pais que nos llega mediante la url que invoca xmlhttp
$paisRecibido=$_REQUEST["pais"]; 
$ciudadesDevueltas="";
$existePais false;

for(
$i=0;$i<count($pais);$i++){     
if($paisRecibido == $pais[$i]){
$indicePais $i
$existePais=true;

}

$msg 'El pais recibido por get en segundo plano es '.$paisRecibido;
if(
$existePais){
$msg $msg' y tiene indice '.$indicePais;
}

$ciudadesRespuesta "";

//  Creamos el array a devolver
for($i=0$i<count($ciudad[$indicePais]); $i++){
    
$ciudadesRespuesta $ciudadesRespuesta.",".$ciudad[$indicePais][$i];
}

echo 
$msg.$ciudadesRespuesta;
//echo count($ciudad[1]);
?>

Gracias.

168
Buenos días, DRANX88.

El ejercicio está correcto. Sólo te faltan el método  "setPaisOrigen()" y el el método "mostrarProductoFresco()" en la subclase "ProductoFresco".

Si tuvieras varias propiedades comunes en subclases de una superclase, dichas propiedades las prodrías haber definido e inicializado en la superclase. Es decir, podrías haber creado la superclase "Producto" así:

Código: [Seleccionar]
public class Producto {
private String fechaCaducidad;
private String numeroLote;
private String fechaEnvasado;
private String paisOrigen;

public Producto(String nombre, String fechaCaducidad, String numeroLote, String fechaEnvasado, String paisOrigen){
this.nombre = nombre;
this.fechaCaducidad = fechaCaducidad;
this.numeroLote = numeroLote;
this.fechaEnvasado = fechaEnvasado;
this.paisOrigen = paisOrigen;
}

public void setFechaCaducidad(String fechaCaducidad){this.fechaCaducidad = fechaCaducidad;}
public String getFechaCaducidad(){return fechaCaducidad;}

public void setNumeroLote(String numeroLote){this.numeroLote = numeroLote;}
public String getNumeroLote(){return numeroLote;}

public void setFechaEnvasado(String fechaEnvasado){this.fechaEnvasado = fechaEnvasado;}
public String getFechaEnvasado(){return fechaEnvasado;}

public void setPaisOrigen(String paisOrigen){this.paisOrigen = paisOrigen;}
public String getPaisOrigen(){return paisOrigen;}

}

Por lo demás, todo genial.

Para corregirte el ejercicio creé yo los métodos que te faltaban y todo funciona a la perfección. No te pongo la subclase "ProductoFresco" con los metodos faltantes porque es un fallo que de sobrá podrás hacer  tu mismo.

Saludos.

169
Buenos días, DRANZ88.

Por lo menos, te falta el código del productoFresco. Tienes puesto dos veces  el código del productoCongelado. Pega tódos los códigos.

Aunque el código del productoFresco lleve el mismo constructor que su superclase, debería de existir como objeto.

Te recomiendo la lectura de:

https://www.aprenderaprogramar.com/foros/index.php?topic=2342.0

clasificado como ejercicio ejemplo.

Saludos.

170
Hola, César.

Gracias por la corrección del ejercicio. Aquí dejo el primer ejercicio con la instrucción "return".

Código: [Seleccionar]
<?php 

function 
obtenerDatos($fila){

if($fila['edad'] >= 20 && $fila['altura'] >= 1.75){
$msg "Nombre: ".$fila['nombre']."<br>Apellidos: ".$fila['apellidos']."<br>Dirección: ".$fila['direccion']."<br>Teléfono: ".$fila['telefono']."<br>Edad: ".$fila['edad']."<br>Altura: ".$fila['altura']."<br><br><br>";
return $msg;
}

}

$link mysqli_connect("localhost""root");
mysqli_select_db($link"mibasededatos");
$tildes $link -> query("SET NAMES 'utf8'");
$result mysqli_query($link"SELECT * FROM agenda");
echo "Datos encontrados en la base de datos para los registros con una edad mayor o superio a 20 años y con una altura mayor o superior a 1,75cm: <br><br>";
while($fila mysqli_fetch_array($result)){
echo obtenerDatos($fila);
}

mysqli_free_result($result);
mysqli_close($link);

?>

Gracias a vosotros por enseñarnos!!!

Saludos :)

171
Buenas tardes, César.

Gracias por corregirme este ejercicio también :)

Me parece estupenda la ídea que has tenido. Mira como lo he hecho, a ver si ahora sí :)

Código: [Seleccionar]
<?php 

function 
obtenerDatos($resultados){
if($resultados != NULL){
$msg =  "-Nombre: ".$resultados['nombre']."<br>-Apellidos: ".$resultados['apellidos']."<br>-Dirección: ".$resultados['direccion']."<br>-Teléfono: ".$resultados['telefono']."<br>-Edad: ".$resultados['edad']."<br>*********************************<br>";
return $msg;
}else{
$msg =  "<br>No hay más datos!!! <br>";
return $msg;
}
}

$link mysqli_connect("localhost""root");
mysqli_select_db($link"mibasededatos");
$tildes $link -> query("SET NAMES 'utf8'");
mysqli_query($link"INSERT INTO agenda VALUES('Jesús', 'Murillo Moreno', 'C/ Pintor Murillo 33', '655221122', 34, 1.67)");
echo "Los datos se han insertado correctamente en la base de datos <br><br>";

$result mysqli_query($link"SELECT * FROM agenda");

while($fila mysqli_fetch_array($result)){
echo obtenerDatos($fila);
}

mysqli_free_result($result);
mysqli_close($link);

?>

Gracias.

172
Buenas rooro_resa.

El ejercicio perfecto. Sólo comentarme que también puedes establecer los métodos: "setSalonCasa()" y "setCocina()" así:

Código: [Seleccionar]
ublic void setSalonCasa(SalonCasa valorSalon){

        salonCasa = valorSalon;

    }

Código: [Seleccionar]
public void setCocina(CocinaCasa valorCocina){
        cocina = valorCocina;
    }

La respuesta a tu pregunta la tienes aquí:

https://www.aprenderaprogramar.com/foros/index.php?topic=1220.msg6718#msg6718

que vendría a ser:

Citar
Forma 2 (trabajando con objetos):

Recibir un objeto y crear un nuevo objeto cuyos atributos sean iguales a los del objeto recibido:

Código: [Seleccionar]
public void setSalonCasa (SalonCasa objetoSalon) {
        salonCasa = new SalonCasa();
   salonCasa.setNumeroDeTelevisores(objetoSalon.getNumeroDeTelevisores());
   salonCasa.setTipoSalon(objetoSalon.getTipoSalon());
    }

Saludos :)

173
Bueanas noches. Mediante la presente entrega propongo una posible solución de los ejercicios de la entrega CU00844B del curso PHP.

Citar
EJERCICIO 1

Realiza una consulta y muestra por pantalla los datos correspondientes a filas de la tabla agenda donde la edad sea mayor o igual que 20 y la altura sea mayor o igual que 1.75.

Código: [Seleccionar]
<?php 

function 
mostrarDatos($fila){

if($fila['edad'] >= 20 && $fila['altura'] >= 1.75){
echo "Nombre: ".$fila['nombre']."<br>Apellidos: ".$fila['apellidos']."<br>Dirección: ".$fila['direccion']."<br>Teléfono: ".$fila['telefono']."<br>Edad: ".$fila['edad']."<br>Altura: ".$fila['altura']."<br><br><br>";
}

}

$link mysqli_connect("localhost""root");
mysqli_select_db($link"mibasededatos");
$tildes $link -> query("SET NAMES 'utf8'");
$result mysqli_query($link"SELECT * FROM agenda");
echo "Datos encontrados en la base de datos para los registros con una edad mayor o superio a 20 años y con una altura mayor o superior a 1,75cm: <br><br>";
while($fila mysqli_fetch_array($result)){
mostrarDatos($fila);
}

mysqli_free_result($result);
mysqli_close($link);

?>

Citar
EJERCICIO 2

Crea una tabla que sea copia de agenda a la que denomines agenda3 y un archivo php que al ejecutarlo realice los siguientes procesos:

a) Mostrar el contenido inicial de la tabla agenda3 por pantalla.

b) Eliminar todos los registros de la tabla agenda3 cuyo campo edad sea mayor o igual a 34 y mostrar el contenido actual de la tabla por pantalla.

c) Insertar dos nuevos registros en la tabla agenda3 (elige tú unos datos cualquiera) y mostrar el contenido actual de la tabla por pantalla.

d) Eliminar todos los registros de la tabla agenda3 usando TRUNCATE y mostrar el contenido actual de la tabla por pantalla.

e) Insertar tres nuevos registros en la tabla agenda3 (elige tú unos datos cualquiera) y mostrar el contenido actual de la tabla por pantalla.

f) Eliminar todos los registros de la tabla agenda usando DELETE sin condiciones y mostrar el contenido actual de la tabla por pantalla.

Código: [Seleccionar]
<?php 

function 
mostrarDatos($fila){
echo "Nombre: ".$fila['nombre']."<br>Apellidos: ".$fila['apellidos']."<br>Dirección: ".$fila['direccion']."<br>Teléfono: ".$fila['telefono']."<br>Edad: ".$fila['edad']."<br>Altura: ".$fila['altura']."<br><br>";
}

$link mysqli_connect("localhost""root");
mysqli_select_db($link"mibasededatos");
$tildes $link -> query("SET NAMES 'utf8'");
$result mysqli_query($link"SELECT * FROM agenda3");
echo "Datos iniciales de la base de datos: <br><br>";

while ($fila mysqli_fetch_array($result)){
mostrarDatos($fila);
}
mysqli_free_result($result);

mysqli_query($link"DELETE FROM agenda3 WHERE edad >= 34");
$result mysqli_query($link"SELECT * FROM agenda3");
echo "***************************************************<br><br>Datos después del primer borrado: <br><br>";

while($fila mysqli_fetch_array($result)){
mostrarDatos($fila);
}
mysqli_free_result($result);



mysqli_query($link"INSERT INTO agenda3 VALUES('Enrique', 'Pans Gutierréz', 'C/ General Contreras N54', '643087243', 28, 1.83)");
mysqli_query($link"INSERT INTO agenda3 VALUES('Pepita', 'Muñoz Castellano', 'C/ Catalunya N8', '621980954', 42, 1.70)");
$result mysqli_query($link"SELECT * FROM agenda3");
echo "***************************************************<br><br>Datos después de la primera incorporación de dos registros nuevos: <br><br>";

while($fila mysqli_fetch_array($result)){
mostrarDatos($fila);
}
mysqli_free_result($result);

mysqli_query($link"TRUNCATE TABLE agenda3");

$result mysqli_query($link"SELECT * FROM agenda3");
echo "***************************************************<br><br>Datos después de ejecutar la instrucción TRUNCATE TABLE: <br><br>";
while($fila mysqli_fetch_array($fila)){
mostrarDatos($fila);
}
mysqli_free_result($result);


mysqli_query($link"INSERT INTO agenda3 VALUES('Montserrat', 'Ballesteros Alvarez', 'C/ Panamá N30', '623098523', 21, 1.63)");
mysqli_query($link"INSERT INTO agenda3 VALUES('Alberto', 'Parrales Puis', 'C/ Aragón N203', '634078543', 44, 1.92)");
mysqli_query($link"INSERT INTO agenda3 VALUES('Manuel', 'Oto Portales', 'C/ Argentina N23', '632151785', 31, 1.82)");
$result mysqli_query($link"SELECT * FROM agenda3");
echo "***************************************************<br><br>Datos después de la segunda incorporación de dos registros nuevos: <br><br>";

while($fila mysqli_fetch_array($result)){
mostrarDatos($fila);
}

mysqli_free_result($result);

mysqli_query($link"DELETE FROM agenda3");
$result mysqli_query($link"SELECT * FROM agenda3");
echo "***************************************************<br><br>Datos después de ejecutar la instrucción DELETE sin condiciones: <br><br>";

while($fila mysqli_fetch_array($fila)){
mostrarDatos($fila);
}

?>

Como es la última entrega de ejercicios para este curso, quería expresar mis más sinceras agradecimientos a todo el equipo de aprenderaprogramar.com el que haya hecho posible que se lleve a cabo el mismo. También quería agradecer a todos mis compañeros que han estado corregiendo mis ejercicios o me hayan podido aportar conocimientos nuevos. He aprendido muchísimo gracias al curso PHP desde cero de aprenderaprogramar.com y lo recomiendo a todo aquel que se plantea hacerlo.

Gracias.

174
Buenas tardes. A continuación expongo una posible solución del ejercicio CU00843B del curso PHP desde cero.

Citar
EJERCICIO

Inserta en la tabla agenda de la base de datos que estamos utilizando los datos de una persona cuyo nombre es Jesús Murillo Moreno, de 34 años, cuyo teléfono es 655221122, vive en c/Pintor Murillo nº33, y tiene una altura de 1.67 metros. Presta atención al orden en que debes introducir los datos. Una vez realizada la inserción, comprueba visualizando los registros existentes en la tabla que la inserción se haya realizado correctamente. Luego accede al panel de administración del servidor y a la base de datos con phpMyAdmin. Visualiza los registros en la tabla y borra la fila correspondiente a Jesús Murillo Moreno utilizando phpMyAdmin. Como puedes comprobar, podemos operar sobre la tabla tanto a través de phpMyAdmin como a través de código PHP.

Código: [Seleccionar]
<?php 

function 
mostrarDatos($resultados){
if($resultados != NULL){
echo "-Nombre: ".$resultados['nombre']."<br>";
echo "-Apellidos: ".$resultados['apellidos']."<br>";
echo "-Dirección: ".$resultados['direccion']."<br>";
echo "-Teléfono: ".$resultados['telefono']."<br>";
echo "-Edad: ".$resultados['edad']."<br>";
echo "*********************************<br>";
}else{
echo "<br>No hay más datos!!! <br>";
}
}

$link mysqli_connect("localhost""root");
mysqli_select_db($link"mibasededatos");
$tildes $link -> query("SET NAMES 'utf8'");
mysqli_query($link"INSERT INTO agenda VALUES('Jesús', 'Murillo Moreno', 'C/ Pintor Murillo 33', '655221122', 34, 1.67)");
echo "Los datos se han insertado correctamente en la base de datos <br><br>";

$result mysqli_query($link"SELECT * FROM agenda");

while($fila mysqli_fetch_array($result)){
mostrarDatos($fila);
}

mysqli_free_result($result);
mysqli_close($link);

?>

Gracias.

175
Misterio resuelto. Contestando a mi propia duda, se podrá conseguir con la instrucción "mysqli_num_rows($result);"

Es decir, el código quedará así:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
</head>
<body>

<?php 

$link mysqli_connect("localhost""root");
mysqli_select_db($link"prueba");
$tildes $link -> query("SET NAMES 'utf8'");
$result mysqli_query($link"SELECT * FROM ciudades");
$numero mysqli_num_rows($result);
$habitantes 0;
$metro 0;
$msg "La suma de habitanes de: ";
$pasadasDeWhile 1;
while($fila mysqli_fetch_array($result)){

disponibilidadMetro($fila);

if($pasadasDeWhile == $numero){
$msg $msg.$fila['ciudad'];
}else{
$msg $msg.$fila['ciudad'].", ";
}

$habitantes $habitantes $fila['habitantes'];
$metro $metro disponibilidadMetro($fila);
$pasadasDeWhile++;

}

function disponibilidadMetro($fila){

$contador 0;

if($fila['tieneMetro'] == 1){
$contador 1;
}

return $contador;

}

echo $msg." es: ".$habitantes;
echo "<br><br>De estas ciudades tienen metro: ".$metro." ciudades.";
mysqli_free_result($result);
mysqli_close($link);

?>


</body>
</html>

Quizás me podriáis proponer otras maneras.

Gracias.

176
Buenas tardes. Hago entrega de los ejercicios de la entrega CU00842B del curso básico de programador web: PHP desde cero.

Citar
EJERCICIO 1

Utilizando la tabla agenda que hemos empleado en los ejemplos y funciones para manejo de cadenas PHP, realiza una consulta a la base de datos para extraer todos los nombres y determina cuántos nombres en la base de datos empiezan por M.

Ejemplo de resultados a obtener: En la base de datos los nombres que empiezan por M son: 2

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
</head>
<body>

<?php 

function buscarLetraIniciaNombre($fila){

$cadena "M";
$contador 0;

if(strncasecmp($fila['nombre'], $cadena1) == 0){
$contador 1;
}

return $contador;

}

$link mysqli_connect("localhost""root");
mysqli_select_db($link"mibasededatos");
$tildes $link -> query("SET NAMES 'utf8'");
$result mysqli_query($link"SELECT * FROM agenda");
$coincidencia 0;
while($fila mysqli_fetch_array($result)){
buscarLetraIniciaNombre($fila);
$coincidencia $coincidencia buscarLetraIniciaNombre($fila);
}


echo "En la base de datos los nombre que empiezan por M son: ".$coincidencia;
mysqli_free_result($result);
mysqli_close($link);

?>


</body>
</html>

Citar
EJERCICIO 2

Utilizando la tabla <<ciudades>> que hemos utilizado para ejercicios de entregas anteriores del curso,

 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 calcula la suma de habitantes de todos los países y cuántas de estas ciudades tienen metro. Muestra el resultado por pantalla.

Ejemplo de resultados a obtener:

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: 5 ciudades.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
</head>
<body>

<?php 

$link mysqli_connect("localhost""root");
mysqli_select_db($link"prueba");
$tildes $link -> query("SET NAMES 'utf8'");
$result mysqli_query($link"SELECT * FROM ciudades");
$habitantes 0;
$metro 0;
$msg "La suma de habitanes de: ";
$pasadasDeWhile 1;
while($fila mysqli_fetch_array($result)){

disponibilidadMetro($fila);

if($pasadasDeWhile == 10){
$msg $msg.$fila['ciudad'];
}else{
$msg $msg.$fila['ciudad'].", ";
}

$habitantes $habitantes $fila['habitantes'];
$metro $metro disponibilidadMetro($fila);
$pasadasDeWhile++;

}

function disponibilidadMetro($fila){

$contador 0;

if($fila['tieneMetro'] == 1){
$contador 1;
}

return $contador;

}

echo $msg." es: ".$habitantes;
echo "<br><br>De estas ciudades tienen metro: ".$metro." ciudades.";
mysqli_free_result($result);
mysqli_close($link);

?>


</body>
</html>

Mi pregunta es: en la parte del código:

Código: [Seleccionar]
while($fila = mysqli_fetch_array($result)){

disponibilidadMetro($fila);

if($pasadasDeWhile == 10){
$msg = $msg.$fila['ciudad'];
}else{
$msg = $msg.$fila['ciudad'].", ";
}

$habitantes = $habitantes + $fila['habitantes'];
$metro = $metro + disponibilidadMetro($fila);
$pasadasDeWhile++;

}

Puede especificar el último registro de la tabla, porque sé que hay 10 registros. Pero como puede hacer esta condicional:

Código: [Seleccionar]
if($pasadasDeWhile == 10)
sin haber mirado la table en phpMyAdmin? No puedo hacer algo como:

Código: [Seleccionar]
if($pasadasDeWhile == count($result))
Evidentemente no me funciona, porque lo probé y el método "count($result)" me devuelve un valor de "12". Que por cierto, no sé de donde sale, porque los registros en la tabla "ciudades" son 10.

Me tiene intrigado. He mirado por internet y veo que hay unas instrucciones como:

Citar
Imaginemos que nuestra tabla "libros" contiene muchos registros. Para averiguar la cantidad sin necesidad de contarlos manualmente usamos la función "count()":

 select count(*) from libros;

pero no consigo aplicarlo.

Gracias.

177
Buenas, Pedro.

Gracias por corregir el ejercicio.

Sí, del modo que me mostraste funciona :)

Saludos :)

178
Buenas tardes, Pedro.

Gracias por corregirme el ejercicio y por el tiempo dedicado.

No sé cómo mandé el ejercicio, pero releyendo mi ejercicio, en el apartado a) expongo como código:

Código: [Seleccionar]
<?php 

$numeros = array(59322);
$sobreescribir "w";

function escribirNumerosMod($numeros$sobreescribir){

$file fopen("datosEjercicio01.txt"$sobreescribir);
foreach($numeros as $arreglo){
fwrite($file$arreglo.PHP_EOL);
}
fclose($file);

}

escribirNumerosMod($numeros$sobreescribir);

?>

Creo que de la manera:

Código: [Seleccionar]
escribirNumerosMod($numeros, $sobreescribir);

function escribirNumerosMod($numeros, $sobreescribir){

$file = fopen("datosEjercicio01.txt", $sobreescribir);
foreach($numeros as $arreglo){
               //código.....


ya estoy pasando como parámetro la instrucción "w".

Sobre la segunda cuestión que mencionas, tienes razón. He corregido el código del tercer apartado del ejercicio y queda de la siguiente manera:

Código: [Seleccionar]
<?php 

$numeros = array(2814);
$sobreescribir "w";
$anyadir "a+";


function escribirNumerosMod($numeros$anyadir){


$file fopen("datosEjercicio02.txt"$anyadir);
$contador 1;

foreach($numeros as $arreglo){

if(fgets($file) && $contador == 1){
fwrite($filePHP_EOL.$arreglo.PHP_EOL);
}else if($contador == count($numeros)){
fwrite($file$arreglo);
}else{
fwrite($file$arreglo.PHP_EOL);
}

$contador++;

}

fclose($file);

}

escribirNumerosMod($numeros$anyadir);

$enlace "datosEjercicio02.txt";

function leerContenidoFichero($enlaceDelFichero){

$contador 1;
$file fopen($enlaceDelFichero"r");
while(!feof($file)){
$linea fgets($file);
echo "La línea ".$contador." contiene: ".$linea."<br>";
$contador += 1;
}

}

leerContenidoFichero($enlace);

echo "<br><br><br>";

$numeros = array(331116);

escribirNumerosMod($numeros$anyadir);

leerContenidoFichero($enlace);

echo "<br><br><br>";

$numeros = array(4912);

escribirNumerosMod($numeros$sobreescribir);

leerContenidoFichero($enlace);

echo "<br><br><br>Gracias por utilizar nuestra aplicación!!!";

?>

Gracias.

179
Gracias por contestar, Pedro.

Echaré un vistazo a la lección otra vez, aunque con tu explicación me ha quedado bastante claro.

Un saludo :)

180
Buenos días, Pedro.

Gracias por el tiempo dedicado y por corregirme el ejercicio. Y también gracias por decirme esos pequeños detalles, porque pueden parecer pequeños, pero es lo que dices tú, sólo así podré aprender más y perfeccionarme.

Sobre los bucles que me has propuesto, tienes toda la razón, no hace falta que utilice un array (nunca sé si es "una" array o "un" array, jejeje), puesto que la variable $linea cambia de valor en cada pasada del bucle.

Referente a pasarle un enlace como parámetro de la función obtenerSuma(), procedo a la oportuna corrección:



Código: [Seleccionar]
<?php 

function 
obtenerSuma($archivo){

$fp fopen($archivo"r");
$contador 0;
$resultado 0
while(!feof($fp)){
$linea fgets($fp);
echo "La línea ".(++$contador)." vale = ".$linea."<br>";
$resultado $resultado $linea;
}
fclose($fp);
return $resultado;

}

$archivo "datosEjercicio.txt";
echo "La suma de las tres líneas es: ".obtenerSuma($archivo);

?>

Gracias.

Páginas: 1 ... 4 5 6 7 8 [9] 10 11 12 13 14 ... 30

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".