# 2.- Conectar a base de datos
Opción rapida
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
$sql = ("SELECT * FROM usuarios");
$result = $conn->query($sql);
$fila = $mysqli_fetch_array($result);
if($fila["mail"] == $mail ){
echo "El mail correcto";
}else{
echo "El mail no existe en la base de datos";
}
if($fila["password"] == $password ){
echo "El password correcto";
}else{
echo "El password no existe en la base de datos";
}
?>
La mejor opción es crear en un archivo único solo para la conexión
<?php
$server = "localhost";
$username = "root";
$password = "";
$database = "opd";
$conn = mysqli_connect($server, $username, $password, $database);
if (!$conn){
die("Error". mysqli_connect_error());
}
?>
# Opción moderna para utilizar con MVC
<?php
class Conexion{
private $conect;
public function __construct()
{
$pdo = "mysql:host=".host.";dbname=".db.";.charset.";
try {
$this->conect = new PDO($pdo, user, password);
$this->conect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Error en la conexion".$e->getMessage();
}
}
public function conect()
{
return $this->conect;
}
}
?>
<?php
//const base_url = "http://localhost/proyect/restobarPhpMysqlAjaxMVC/admin/";
const base_url = "http://localhost/romacode/restobarPhpMysqlAjaxMVC/admin/";
const host = "localhost";
const user = "root";
const password = "";
const db = "opd";
const charset = "charset=utf-8";
?>
class Query extends Conexion{
private $pdo, $con, $sql;
public function __construct() {
$this->pdo = new Conexion();
$this->con = $this->pdo->conect();
}
}
# Realizar una petición GET a la base de datos
<?php
if(isset($_GET['menuid'])){
$menuId = $_GET['menuid'];
$sql = "SELECT * FROM menu WHERE menuId='$menuId'";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$menuName = $row['menuName'];
$menuPrice = $row['menuPrice'];
$menuDesc = $row['menuDesc'];
$menuCategorieId = $row['menuCategorieId'];
$menuImage = $row['menuImage'];
}
?>
# Realizar una petición POST || UPDATE a la base de datos
function create()
{
include('db/dbconnect.php');
if (isset($_POST['createItem'])) {
$menuName = $_POST["menuName"];
$menuCategorieId = $_POST["menuCategorieId"];
$menuPrice = $_POST["menuPrice"];
$menuDesc = $_POST["menuDesc"];
$menuImage = $_FILES['menuImage']['tmp_name'];
$menuImageType = pathinfo($menuImage, PATHINFO_EXTENSION);
$datainage = file_get_contents($menuImage);
$img_base64 = base64_encode($datainage);
$img = 'data:image/' . $menuImageType . ';base64,' . $img_base64;
$query = "INSERT INTO menu (menuName, menuPrice, menuDesc, menuCategorieId, menuImage) VALUES ('$menuName', '$menuPrice','$menuDesc', '$menuCategorieId', '$img')";
$resultado = mysqli_query($conn, $query);
header("Location: ../admin/index.php");
exit();
}
}
# Realizar una petición POST a la base de datos
function update()
{
include('db/dbconnect.php');
if(isset($_GET['id'])){
$menuId = $_GET["id"];
$sql = "SELECT * FROM menu WHERE menuId = $menuId";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
//Otra forma de poner directamente en los value
// $row->description;
}
if(isset($_POST['update'])){
$menuId = $_GET["id"];
$menuName = $_POST["menuName"];
$menuPrice = $_POST["menuPrice"];
$menuCategorieId = $_POST["menuCategorieId"];
$menuDesc = $_POST["menuDesc"];
$menuImage = $_FILES['menuImage']['tmp_name'];
$menuImageType = pathinfo($menuImage, PATHINFO_EXTENSION);
$datainage = file_get_contents($menuImage);
$img_base64 = base64_encode($datainage);
$img = 'data:image/' . $menuImageType . ';base64,' . $img_base64;
$sql = "UPDATE menu set menuName = '$menuName', menuDesc = '$menuDesc',menuCategorieId = '$menuCategorieId', menuPrice = '$menuPrice', menuImage = '$img' WHERE menuId =' $menuId'";
$result = $conn->query($sql);
header("Location: ../admin/index.php?page=menuManage");
}
?>
# Realizar un POST ||DELETE a la base de datos
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_POST['removeItem'])) {
include_once('../db/dbconnect.php');
$menuId = $_POST["menuId"];
$sql = "DELETE FROM `menu` WHERE `menuId`='$menuId'";
$result = mysqli_query($conn, $sql);
if ($result) {
echo "<script>alert('Removed');
window.location=document.referrer;
</script>";
} else {
echo "<script>alert('failed');
window.location=document.referrer;
</script>";
}
}
}
?>
# Realizar una busqueda
<?php
<?php
$busqueda = strtolower($_REQUEST['busqueda']);
if(isset($_GET[$busqueda])){
header('Location: index.php?page=menuManage');
}
?>
$sql = "SELECT * FROM `menu`
WHERE (
menuName LIKE '%$busqueda%' OR
menuDesc LIKE '%$busqueda%'
)";
$result = $conn->query($sql);
while($row=$result->fetch_assoc()){
?>
# Realizar una paginación
<?php
include('./db/dbconnect.php');
// $sql = "SELECT * FROM `menu`";
$sql = "SELECT * FROM `menu`
WHERE (
menuName LIKE '%%' OR
menuDesc LIKE '%%'
)";
$result = mysqli_query($conn, $sql);
$no_of_products = $result->num_rows;
$no_of_products_per_page = 12;
$no_of_pages = ceil($no_of_products / $no_of_products_per_page);
$page = 1;
if (isset($_GET["pagination"])) {
$page = $_GET["pagination"];
}
$start_limit = ((int)$page - (int)1) * $no_of_products_per_page;
$sql = "SELECT * FROM menu where menuId > $start_limit LIMIT $no_of_products_per_page";
// SELECT * FROM `menu` WHERE (
// menuName LIKE '%queso%' OR
// menuDesc LIKE '%queso%') ORDER BY 1 LIMIT 5
$sel_query = mysqli_query($conn, $sql) or die(mysqli_error($conn));
while ($row = mysqli_fetch_array($sel_query, MYSQLI_ASSOC)) { ?>
<tr>
<th scope="row" class="details_menu"><?php echo $row['menuName'] ?></th>
<th scope="row" class="details_menu"><?php echo $row['menuDesc'] ?></th>
<th scope="row" class="text-center"><?php echo $row['menuPrice'] ?></th>
<th scope="row" class="text-center"><?php echo $row['menuCategorieId'] ?></th>
<th scope="row" class="bgc">
<img class="image_menu" src="data:image/png;base64,<?php echo base64_encode(file_get_contents($row['menuImage'])) ?>">
</th>
<th scope="row" class="text-center">
<div class="row text-rigth ml-3">
<div class="ml-3">
<a href="menuManageUpdate.php?id=<?php echo $row['menuId'] ?>"><i class="fas fa-edit"></i></a>
</div>
<form action="fetch/fetch.php" method="POST" class="ml-3">
<button name="removeItem" class="btn btn-sm btn-danger"><i class="fas fa-trash-alt"></i></button>
<input type="hidden" name="menuId" value="<?php echo $row['menuId'] ?>">
</form>
</div>
</th>
</tr>
<?php } ?>
</tbody>
</table>
<div class="content_pagination">
<!-- Pagination button -->
<nav>
<ul class="pagination">
<li class="page-item"></li>
<?php
for ($i = 1; $i <= $no_of_pages; $i++) {
$pageName = basename($_SERVER["PHP_SELF"]);
if ($page == $i) {
echo "
<li class='page-item active'>
<a href='$pageName?page=menuManage&pagination={$i}' class='page-link'>{$i}</a>
</li>
";
} else {
echo "
<li>
<a href='$pageName?page=menuManage&pagination={$i}' class='page-link'>{$i}</a>
</li>
";
}
} ?>
<li class="page-item"></li>
</ul>
</nav>
</div>