- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Featured Post
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Conectarse al archivo de base de datos de
MS-Access
Primero necesitamos conectarnos a la base de datos usando ODBC, si no puede conectar y muestre el error "could not find driver", muy probablemente debe habilitar la extensión "php_pdo_odbc" en el archivo PHP.ini, quite el simbolo punto y coma(;) de la extensión que desea habilitar como se muestra en la imagen y guarde los cambios,luego pulse stop y luego star en el Apache del panel del xampp, para re-iniciar el servidor.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body {
font-family: Tahoma;
}
table {
border-collapse: collapse;
width: 100%;
}
th, td {
padding: 8px;
text-align: left;
border-bottom: 1px solid #ddd;
}
tr:nth-child(even) {background-color: #f2f2f2;}
th {
background-color: #D20076;
color: white;
}
</style>
</head>
<body>
<input type="text" id="nombre" style="width:180px">
<hr>
<table>
<thead>
<tr>
<th>Id</th>
<th>Nombre</th>
<th>Precio</th>
<th>Rubro</th>
<th>Sub-Rubro</th>
</tr>
</thead>
<tbody id="tbody"></tbody>
</table>
<script>
buscar();
function buscar(){
//let nombre = document.getElementById("nombre").value;
var dato = {
'nombre' : document.getElementById("nombre").value
};
json_dato = JSON.stringify(dato);
fetch('api_json_access.php',{
method : 'PUT',
body : json_dato,
headers: {
'Content-type' : 'application/json',
}
})
.then((response) => response.json())
.then((data)=>{
console.log(data['articulos'].length);
var tbody = document.getElementById('tbody');
if(data['articulos'].length === 0){
tbody.innerHTML = '<td colspan="5" style="background:yellow;color:red;">PRODUCTO NO REGISTRADO TODAVIA</td>'
}else{
var tr = '';
for(var i in data['articulos']){
// var max = data['articulos'].length;
// for(var i=0; i< max; i++){ // otra forma
tr += `<tr>
<td>${data['articulos'][i].id}</td>
<td>${data['articulos'][i].nombre}</td>
<td>${data['articulos'][i].precio}</td>
<td>${data['articulos'][i].rubros}</td>
<td>${data['articulos'][i].subrubros}</td>
</tr>`;
}
tbody.innerHTML = tr;
}
})
.catch((error) => {
show_message('error',"sin datos en la base datos");
});
}
//////////////////////////////////////////////
//document.getElementById('fetchDataBtn').addEventListener('click', ver_tabla);
document.getElementById('nombre').addEventListener('keyup', buscar);
//document.getElementById('caja1').addEventListener('change', ver_tabla);
document.getElementById('nombre').addEventListener('keypress', function (event) {
if (event.keyCode === 13) {
buscar();
}
});
</script>
/////////////////////
api_json_access.php
<?php
//$dbName ='C:/basedatos.accdb';
//$dbName ='base.mdb';
$dbName = realpath("basedatos.accdb");
if (!file_exists($dbName)) {
die("Could not find database file.");
}
$pdo = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=$dbName;charset=utf8;Uid=;Pwd=;");
$pdo->exec("set names utf8");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//$pdo=new PDO("mysql:dbname=selectfetch;host=localhost","root","root");
//$pdo->query("SET NAMES 'UTF8'");
//$sql = "SELECT articulos.id as id , articulos.nombre as nombre , precio, rubros.nombre as rubros, subrubros.nombre as subrubros FROM articulos INNER JOIN rubros ON articulos.idrubros = rubros.id INNER JOIN subrubros ON articulos.idsubrubros = subrubros.id";
//$nombre= isset($_POST['nombre']) ? trim($_POST['nombre']) : '';
//$nombre='coca';
/*
$sql = "SELECT articulos.id as id , articulos.nombre as nombre , precio, rubros.nombre as rubros, subrubros.nombre as subrubros FROM (articulos INNER JOIN rubros ON articulos.idrubros = rubros.id) INNER JOIN subrubros ON articulos.idsubrubros = subrubros.id WHERE articulos.nombre LIKE '%".$nombre."%'";
*/
$input = file_get_contents('php://input');
$decode = json_decode($input, true);
$nombre = $decode["nombre"];
// se agrego el simbolo parentesis dentro inner join
$sql = "SELECT articulos.id as id , articulos.nombre as nombre , precio, rubros.nombre as rubros, subrubros.nombre as subrubros FROM (articulos INNER JOIN rubros ON articulos.idrubros = rubros.id) INNER JOIN subrubros ON articulos.idsubrubros = subrubros.id WHERE articulos.nombre LIKE '%".$nombre."%';";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$response["articulos"] = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$tmp = array();
$tmp["id"] = $row["id"];
$tmp["nombre"] = utf8_encode($row["nombre"]);
$tmp["precio"] = $row["precio"];
$tmp["rubros"] = utf8_encode($row["rubros"]);
$tmp["subrubros"] = utf8_encode($row["subrubros"]);
array_push($response["articulos"], $tmp);
}
$json = json_encode($response,JSON_PRETTY_PRINT);
//print("<pre>".$json."</pre>");
echo $json;
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones




Comentarios
Publicar un comentario