PHP - Ayuda con un ejercicio.

 
Vista:
Imágen de perfil de sdsd
Val: 13
Ha aumentado su posición en 481 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con un ejercicio.

Publicado por sdsd (3 intervenciones) el 16/06/2021 11:22:52
Necesito ayuda en un ejercicio, te lo envio por si me podrías ayudar.
Se asume lo siguiente:
• La existencia de la base de datos mi_practica.
• El host localhost para la base de datos.
• El usuario miusuario para la base de datos.
• La clase Miclave para la base de datos.
• Que la base de datos mi_practica no contiene ninguna tabla.
Según las asunciones anteriores, estudia el siguiente fragmento de código y resuelve todos los fallos necesarios para que el resultado final imprima en pantalla «33». No puedes suprimir ningún bloque de código para alcanzar el resultado: el código debe realizar todas las operaciones indicadas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
$pdo=null;
try{
    $pdo=new PDO('mysql:host=localhost;dbname=mi_practica;', 'root', '');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->exec('CREATE TABLE tabla_uno(valor INT UNSIGNED NOT NULL)ENGINE=INNODB');
    $pdo->exec('CREATE TABLE tabla_dos(valor INT UNSIGNED NOT NULL)ENGINE=MYISAM');
    $statement_insert_uno=$pdo->prepare('INSERT INTO tabla_uno(valor) VALUES(val)');
    $statement_insert_uno=$pdo->prepare('INSERT INTO tabla_dos(valor) VALUES(?)');
    $pdo->beginTransaction();
 
    $statement_insert_uno->execute([':val'=> 4]);
    $statement_insert_uno->execute(['?val'=> 5]);
    $statement_insert_uno->execute([':val'=> 6]);
    $pdo->commit();
 
    $pdo->beginTransaction();
    $statement_insert_dos->execute([100]);
    $statement_insert_dos->execute([33]);
    $pdo->rollback();
 
    $pdo->beginTransaction();
    $statement_insert_dos->execute([15]);
    $statement_insert_dos->execute([3]);
    $pdo->commit();
 
    $suma_resultado_uno=0;
    $statement_resultados_uno=$pdo->query('SELECT SUM(valor) AS suma FROM tabla_uno');
    $datos_resultados_uno=$statement_resultados_uno->fetch(PDO::FETCH_BOUND);
    $suma_resultado_uno=$datos_resultados_uno['suma'];
 
    $suma_resultado_dos=0;
    $statement_resultados_dos=$pdo->query('SELECT * FROM tabla_dos');
    while($datos_resultados_dos=$statement_resultados_dos->fetch(PDO::FETCH_ASSOC)) {
        $suma_resultado_dos+=$datos_resultados_dos ['valor'];
    }
echo $suma_resultado_uno+$suma_resultado_dos;
}
 
catch(PDOException $e) {
    echo 'Ha ocurrido un error en la base de datos' .$e->getMessage();
    if($pdo->inTransaction()){
        $pdo->rollback();
    }
}
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con un ejercicio.

Publicado por xve (6935 intervenciones) el 16/06/2021 19:11:09
Hola sdsd, al final he tenido un poco de tiempo, y he modificado tu código para que de 33... espero que te sirva

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
$pdo=null;
try{
    $pdo=new PDO('mysql:host=localhost;dbname=test;', 'root', '');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->exec('CREATE TABLE tabla_uno(valor INT UNSIGNED NOT NULL)ENGINE=INNODB');
    $pdo->exec('CREATE TABLE tabla_dos(valor INT UNSIGNED NOT NULL)ENGINE=MYISAM');
    $statement_insert_uno=$pdo->prepare('INSERT INTO tabla_uno(valor) VALUES(:val)');
    $statement_insert_dos=$pdo->prepare('INSERT INTO tabla_dos(valor) VALUES(:val)');
    $pdo->beginTransaction();
 
    $statement_insert_uno->execute([':val'=> 4]);
    $statement_insert_uno->execute([':val'=> 5]);
    $statement_insert_uno->execute([':val'=> 6]);
    $pdo->commit();
 
    $pdo->beginTransaction();
    $statement_insert_dos->execute([':val'=>10]);
    $statement_insert_dos->execute([':val'=>5]);
    $pdo->rollback();
 
    $pdo->beginTransaction();
    $statement_insert_dos->execute([':val'=>2]);
    $statement_insert_dos->execute([':val'=>1]);
    $pdo->commit();
 
    $suma_resultado_uno=0;
    $statement_resultados_uno=$pdo->query('SELECT SUM(valor) AS suma FROM tabla_uno');
    $datos_resultados_uno=$statement_resultados_uno->fetch(PDO::FETCH_ASSOC);
    $suma_resultado_uno=$datos_resultados_uno['suma'];
 
    $suma_resultado_dos=0;
    $statement_resultados_dos=$pdo->query('SELECT * FROM tabla_dos');
    while($datos_resultados_dos=$statement_resultados_dos->fetch(PDO::FETCH_ASSOC)) {
        $suma_resultado_dos+=$datos_resultados_dos ['valor'];
    }
echo $suma_resultado_uno+$suma_resultado_dos;
}
 
catch(PDOException $e) {
    echo 'Ha ocurrido un error en la base de datos' .$e->getMessage();
    if($pdo->inTransaction()){
        $pdo->rollback();
    }
}
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de dnn
Val: 13
Ha aumentado su posición en 481 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con un ejercicio.

Publicado por dnn (3 intervenciones) el 16/06/2021 23:47:03
Muchísimas gracias de verdad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar