En esta actividad utilizará PHP para conectarse a la base de datos y ejecutar una consulta.
<?php // comienza el código HTML include('cabecera.php'); include('menu.php'); ?> <?php // terminar código HTML include('pie.php'); ?>
audio
tiene funciones integradas como .play()
e .paused()
información integrada como .paused
. Eso es porque audioes un objeto.[]
, nosotros accedemos a la información y las funciones usando ->
.$mesa->patas = 4;
$mesa->mover($ubicación);
// Configurar la conexión a la base de datos define ('DBCONNECT', "/home/dh_9m7wr9/pdo.php"); // conexión a la base de datos include_once DBCONNECT; $db = 'techschoolwebdev'; $dsn = "mysql:host=$db_host;dbname=$db;charset=utf8mb4"; try { // conectar $pdo = new MyPDO($dsn, $db_user, $db_pass, $db_options); } catch (\PDOException $e) { throw new \PDOException ($e->getMessage(), (int)$e->getCode()); }
define ('DBCONNECT', "../../pdo.php");
) define una estática (variable inmutable) llamada DBCONNECT que contiene la dirección relativa de un archivo fuera del servidor web. Este archivo contiene nuestro host, nombre de usuario y contraseña para la base de datos, así como las opciones que usaremos para conectarnos. No queremos que estén disponibles en el servidor porque si PHP falla por algún motivo, nuestro código completo quedará expuesto a los usuarios y una persona malintencionada podría usar esta información para acceder a nuestra base de datos y arruinar nuestro sitio o usar nuestro servidor para actividades ilegales. Al almacenar los datos fuera del servidor web, el usuario nunca puede ver este detalle.include DBCONNECT
;$db = 'webdev';
) porque cada aplicación/sitio podría usar una base de datos diferente, por lo que debemos definirla dentro de la aplicación/sitio.$dsn = "mysql:host=$db_host;dbname=$db;charset='utf8mb4'";
$pdo = new MyPDO($dsn, $db_user, $db_pass, $db_options);
, donde $pdo
es un objeto que incluye tanto la conexión a la base de datos como las funciones necesarias para acceder a los datos.try/ catch
para manejar cualquier error que pueda ocurrir si falla la conexión. En tal caso, nuestro código arrojará una excepción que incluye un mensaje y el código de error.include('menu.php');
.$query = "SELECT heroes.character_name, hero_villain, first_appeared, power, movie FROM heroes LEFT JOIN appearances ON heroes.character_name=appearances.character_name"; $args = array();
$rslt = $pdo->prepare($query);
$rslt
ahora es un objeto que contiene el resultado de nuestra consulta.$rslt->execute($args);
$rslt->execute($args);
while ($row = $rslt->fetch()) { }
$rslt
y la almacena en la variable $row
.{}
.error_log("MURRAY: query response row - " . print_r($row,1));
<main> <table> <thead> <tr> <th>Name</th> <th>Hero / Villain</th> <th>First Appearance</th> <th>Power</th> <th>Movie</th> </tr> </thead> <tbody> </body> </table> </main>
<main> <table> <thead> <tr> <th>Name</th> <th>Hero / Villain</th> <th>First Appearance</th> <th>Power</th> <th>Movie</th> </tr> </thead> <tbody> <?php while ($row = $rslt->fetch()) { error_log("MURRAY: query response row - " . print_r($row,1)); } ?> </tbody> </table> </main>
<?php while ($row = $rslt->fetch()) { error_log("MURRAY: query response row - " . print_r($row,1)); echo "\t\t\t\t<tr>\n"; echo "\t\t\t\t\t<td>$row['character_name']</td>\n"; echo "\t\t\t\t\t<td>$row['hero_villain']</td>\n"; echo "\t\t\t\t\t<td>$row['first_appeared']</td>\n"; echo "\t\t\t\t\t<td>$row['power']</td>\n"; echo "\t\t\t\t\t<td>$row['movie']</td>\n"; echo "\t\t\t\t</tr>\n"; } ?>
<?php while ($row = $rslt->fetch()) { ?> <tr> <td><?php echo $row['character_name'];?></td> <td><?php echo $row['hero_villain'];?></td> <td><?php echo $row['first_appeared'];?></td> <td><?php echo $row['power'];?></td> <td><?php echo $row['movie'];?></td> </tr> <?php } ?>
$hero_data[$row['character_name']]['hero_villain'] = $row['hero_villain'];
$hero_data[$row['character_name']]['first_appeared'] = $row['first_appeared']; $hero_data[$row['character_name']]['power'] = $row['power'];
$hero_data[$row['character_name']]['movies'] .= $row['movie'] . "<br>";
<br>
agregado después de cada película moverá cada una a su propia línea en la celda de la tabla para que sea más fácil de leer para el usuario.$hero_data
matriz.foreach($hero_data as $name => $details) { }
<tr> <td><?php echo $name;?></td> <td><?php echo $details['hero_villain'];?></td> <td><?php echo $details['first_appeared'];?></td> <td><?php echo $details['power'];?></td> <td><?php echo $details['movies'];?></td> </tr>