Hola a todos:
Estoy realizando un ejercicio con PDO donde en la página de inicio, si no hay ningún registro en la tabla, el botón de modificar y el botón de baja esté deshabilitado. Cuando realizo un alta en la tabla y vuelvo a la pagina de inicio, no me habilita los botones correctamente.
Este es mi código:
index.php:
Código PHP:
Ver original<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Empresas asociadas</title>
</head>
<body>
<a href="alta.html">Alta</a><br/>
<?php
//llamada al archivo de los datos de conexion y conectar a la base de datos.
require_once 'inc/db.inc';
connectDB();
// preparar sentencia sql a ejecutar.
$query = "SELECT * FROM table WHERE ID=?";
$stmt = $connect->prepare($query);
$stmt->bindParam(1, $_GET['id'], PDO::PARAM_INT);
// ejecutamos la sentencia y comprobamos si cuenta filas de la tabla
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if($row)
{
echo '<input type="button" value="Modificar" /><br/>';
echo '<input type="button" value="Eliminar" /><br/>';
}
else
{
echo '<input type="button" value="Modificar" disabled /><br/>';
echo '<input type="button" value="Eliminar" disabled /><br/>';
}
closeDB();
?>
</body>
</html>
inc/db.inc:
Código PHP:
Ver original<?php
/*
* En este archivo se guardan los datos para la conexión a la base de datos.
* También creamos metodos para la conexión y el cierre de la base de datos.
*/
$hostname = 'localhost';
$database = 'empresas';
$username = 'root';
$password = '';
$dbtable = 'registro';
$connect;
function connectDB()
{
try
{
$GLOBALS['connect'] = new PDO
('mysql:host='.$GLOBALS['hostname'].';
dbname='.$GLOBALS['database'],$GLOBALS['username'], $GLOBALS['password']);
}
catch(PDOException $e)
{
print "Error: ".$e->getMessage();
}
}
function closeDB()
{
$GLOBALS['connect'] = NULL;
}
?>
alta.html:
Código HTML:
Ver original<!DOCTYPE html>
<script type="text/javascript" src="js/altaform.js"></script> <form id="altaform" name="altaform" method="post" action="alta_exec.php" onsubmit="return checkAltaForm();">
<input type="text" name="emp_nombre" size="50" maxlength="50" /><br/> <input type="text" name="emp_web" size="50" maxlength="50" /><br/> <input type="text" name="emp_tlf" size="20" maxlength="20" /><br/> <input type="text" name="emp_sector" size="30" maxlength="30" /><br/> <label for="emp_desc">Descripci
ón empresa:
</label><br/> <input type="text" name="emp_desc" size="50" maxlength="50" /><br/> <input type="text" name="emp_karma" size="3" maxlength="3" /><br/> <input type="submit" value="Dar alta" />
js/altaform.js:
Código Javascript
:
Ver originalfunction checkAltaForm()
{
var isOK = true;
var arrayInput = [];
var frm = document.getElementById("altaform");
for (i=0;i<frm.elements.length;i++)
{
if(frm.elements[i].type === "text")
{
if(frm.elements[i].value == "")
{
alert("Campo vacio");
isOK = false;
}
if(frm.elements[i].name === "emp_karma")
{
// Solo hacemos pasar por esta funcion al campo emp_karma
if(!isANumber(frm.elements[i].value))
{
alert("Número no válido")
isOK = false;
}
}
}
}
return isOK;
}
// Esta funcion comprueba que el campo que sea un numero entero positivo
function isANumber(value)
{
return !isNaN(value) && value > 0;
}
alta_exec.php:
Código PHP:
Ver original<?php
require_once 'inc/db.inc';
connectDB();
$emp_nombre = $_POST['emp_nombre'];
$emp_web = $_POST['emp_web'];
$emp_tlf = $_POST['emp_tlf'];
$emp_sector = $_POST['emp_sector'];
$emp_desc = $_POST['emp_desc'];
$emp_karma = $_POST['emp_karma'];
$query1 = "INSERT INTO $dbtable (nombre, web, telefono, sector, descrip, karma)";
$query2 = " VALUES (?,?,?,?,?,?)";
$insert = $connect->prepare($query1.$query2);
$insert -> execute(array($emp_nombre, $emp_web, $emp_tlf, $emp_sector, $emp_desc, $emp_karma));
closeDB();
echo "<br>Alta correcta";
echo "<br><br><a href='alta.html'>Otra alta</a>";
echo "<br><br><a href='index.php'>Inicio</a>";
?>
La tabla registro tiene un campo id tipo int autoincrementado.
He estado probando diversas soluciones, pero todas no realizan bien el if de index.php al contar filas de la tabla. No se donde estoy fallando.
Saludos.