0

我正在学习使用 php、html 和 xamp。发生的事情是我有一个错误,因为无法识别我在页面上为获取您拥有的数据库的列表(查询)所做的语句。问题是在另一个页面上它告诉我没有定义empleadoID ,据此没有定义empleadoID我不知道为什么

这是清单。这是我在最后 2 个回声中定义它的地方:

 <?php
  include("basededatos.php");
  $conexionbd=conectar_bd();
  $query ="SELECT id,nombre,edad FROM empleado;"; 
  $resultado = mysqli_query($conexionbd,$query);
  mysqli_close($conexionbd);
  ?>
  <html>
  <head>
  </head>
  <body>
            <h1>Lista de empleados</h1>
            <ul>
                <?php
                   while ($registro = mysqli_fetch_assoc($resultado)) 
                   {
                    echo '<li>'.$registro['nombre'].' ('.$registro['edad'].'años)';
                    echo '<a href="modificarEmpleado.php?empleadoID ='.$registro['id'].'"> Modificar</a></li>';
                    echo '<a href="eliminarEmpleado.php?empleadoID ='.$registro['id'].'"> Eliminar</a></li>';
                   }
                ?>
            </ul>
  </body>
  </html>

这是他告诉我他不存在的地方:

<?php
include("basededatos.php");
$conexionbd = conectar_bd();
$query = "SELECT id,nombre,edad FROM empleado Where id".$_GET['empleadoID']."LIMIT 1";
$resultado=mysqli_query($conexionbd,$query);
mysqli_close($conexionbd);
$registro = mysqli_fetch_assoc($resultado);
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Modificar Empleado</title>
</head>
<body>
<form action="actualizarempleado.php" method="post" name="nuevoempleado">
    Nombre: <input type="text" name="empleado_nombre" value="<?php echo $registro['nombre']?>">
    <br>
    <br>
    Edad: <input type="text" name="empleado_edad" value="<?php echo $registro['edad']?>">
    <br>
    <br>
    <input type="hidden" name="empleado_id" value="<?php echo $registro['id']?>">
    <br>
    <br>
    <input type="submit" name="actualizar empleado">
</form> 

</body>
</html>

这些是第二页中的错误:

 Notice: Undefined index: empleadoID in C:\xampp\htdocs\modificarempleado.php on line 5

 Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in C:\xampp\htdocs\modificarempleado.php on line 8
4

1 回答 1

0

你有两个主要问题。首先,您没有使用准备好的语句。其次,您的 SQL 查询中有一个拼写错误,缺少=. 您看不到错误,因为您没有启用 MySQLi 错误。

正确的方法看起来与此类似

<?php
include "basededatos.php";
// This line should go inside conectar_bd()
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conexionbd = conectar_bd();

// prepared -> bind -> execute -> get result
$query = "SELECT id,nombre,edad FROM empleado Where id=? LIMIT 1";
$stmt = $conexionbd->prepare($query);
$stmt->bind_param('i', $_GET['empleadoID']);
$stmt->execute();
$resultado = $stmt->get_result();

mysqli_close($conexionbd);
$registro = mysqli_fetch_assoc($resultado);
?>
于 2019-08-10T11:25:20.060 回答