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
js/altaform.js:
Código Javascript:
Ver original
function 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); 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.