Conexión a base de datos - mergutm/databasecourse_utm GitHub Wiki

Conexión a una BD en PHP

Para conectarse a una base de datos, puede ocupar la función mysql_

<?php
   $con = mysqli_connect("localhost","root","password","nombre_BD") or die("Some error occurred during connection " . mysqli_error($con));
?>

Una forma más práctica es crear una función que regrese una variable para conectarse a la Base de datos, por ejemplo

<?php

  function abrir_conex()
  {
        //define permite declarar constantes que serán usadas durante la conexión
        define("DB_HOST", "localhost"); //servidor
        define("DB_USER", "usuario");
        define("DB_PASSWORD", "password");
        define("DB_DATABASE", "base de datos");

        //llamada para conexion
        $con = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE) or die("Some error occurred during connection " . mysqli_error($con));
        //echo "success";
        //variable para controlar la conexión
        return $con;
  }
?>
  • Se crea una conexión (llamando a la función).
  • se hace una consulta
  • y se piden los datos
   $con = abrir_conex();
   $sql = "select * from carreras";
   //habilitar el código para ver la consulta
   // echo "$sql<br>";
   $result1 = mysqli_query($con,$sql) or die('Consulta fallida proyectos: ' . mysqli_error($con));

Con el siguiente código se leen todas las filas obtenidas de la consulta.

   while ($row = mysqli_fetch_array($result1,MYSQLI_ASSOC))
   {
        echo "<tr><td> ".$row['nombre']."</td> </tr>";

   }

Un ejemplo completo sería el siguiente:

<html>

 <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

    <title>Hello, world!</title>
  </head>


<body>

 <table class="table table-hover">
<?php

function abrir_conex()
{
        //$con = mysqli_connect("localhost","root","tut$2022@UTM","tutorias") or die("Some error occurred during connection " . mysqli_error($con));
        define("DB_HOST", "localhost");
        define("DB_USER", "root");
        define("DB_PASSWORD", "tut\$2022@UTM");
        define("DB_DATABASE", "tutorias");

        $con = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE) or die("Some error occurred during connection " . mysqli_error($con));
        //echo "success";
        return $con;
}

$con = abrir_conex();

$sql = "select * from carreras";
echo "$sql<br>";
$result1 = mysqli_query($con,$sql) or die('Consulta fallida proyectos: ' . mysqli_error($con));

while ($row = mysqli_fetch_array($result1,MYSQLI_ASSOC)){
        echo "<tr><td> ".$row['nombre']."</td> </tr>";
}
?>
</table>
</body>
</html>

Dropdown usando Bootstrap

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>


    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

</head>
<body>


<div class='container'>
	<div class="dropdown">
		<button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
			Elige la categoria
		</button>
		<ul class="dropdown-menu">
			<?php

				function abrir_conex() 
				{
					//$con = mysqli_connect("localhost","root","tut$2022@UTM","tutorias") or die("Some error occurred during connection " . mysqli_error($con));
					define("DB_HOST", "localhost");
					define("DB_USER", "root");
					define("DB_PASSWORD", "tut\$2022@UTM");
					define("DB_DATABASE", "noticias");

					$con = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE) or die("Some error occurred during connection " . mysqli_error($con));
					//echo "success<br>";
					return $con;
				}

				$conexion = abrir_conex();

				$sql = "SELECT id, nombre from Categorias";				
				//echo "$sql<br>";
				$result1 = mysqli_query($conexion,$sql) or die('Consulta fallida proyectos: ' . mysqli_error($con));
				//echo "Consulta exitosa <br>";
					

				//echo "<table class='table table-hover'>\n";	
				while ($row = mysqli_fetch_array($result1,MYSQLI_ASSOC))   
				{
					//<li><a class="dropdown-item" href="#">Something else here</a></li>

					echo "  <li><a  class='dropdown-item' href='noticias2.php?id=".$row['id']."'>".$row['id']."</a></li>\n";
				}
				//echo "</table>\n";
			?> 
		</ul>
	</div>
</div>

<div class='container'>
	<div class="row">
		<div class="col  col-lg-3 col-md-1"></div>
		<div class="col  col-lg-6 col-md-10">
<?php	
if (isset($_GET['id'])){
			
	$sql = "SELECT noticia_id, encabezado, url FROM Noticias where categoria_id = " . $_GET['id'];				
	//echo "$sql<br>";
	$result1 = mysqli_query($conexion,$sql) or die('Consulta fallida proyectos: ' . mysqli_error($con));


	echo "<table class='table table-hover'>\n";	
	while ($row = mysqli_fetch_array($result1,MYSQLI_ASSOC))   
	{
		echo "   <tr><td> <a href='".$row['url']."'>".$row['url']."</td><td> ".$row['encabezado']."</td> </tr>\n";
	}
	echo "</table>\n";
}
?>	

			</div>
		<div class="col col-lg-3 col-md-1"></div>
	</div>
</div>

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>

</body>
</html>
⚠️ **GitHub.com Fallback** ⚠️