Estoy creando una vista de tabla de horarios usando PHP, en la que obtengo los datos de la conferencia según el día y la hora.

Aquí está el código que hice.

$monday_lectures = "SELECT * from lectures where lecture_time = '11am to 1pm' and lecture_day = 'firday'";
$result_11to1 = mysqli_query($con, $monday_lectures);
$m11to1 = mysqli_fetch_array($result_11to1);
if ($m11to1["lecture_day"] == !'') {
    echo "<td>".$m11to1["lecture_name"]."</td>";
} else {
    echo "<td> no class</td>";
}

Pero recibo el siguiente error para el código anterior:

Advertencia: Intentando acceder a la compensación de la matriz en un valor de tipo nulo en C: \ xampp \ htdocs \ nexgschool \ admin \ notificar \ add_time_table.php en la línea 45

0
pal deepak 22 ene. 2021 a las 11:22

1 respuesta

La mejor respuesta

Cuando recibe este error después de obtener datos de la base de datos, significa que la base de datos no encontró ninguna fila coincidente. La mayoría de las funciones de búsqueda de bases de datos devuelven null o una matriz vacía cuando no hay registros coincidentes o cuando el conjunto de resultados se ha agotado.

Para resolver el problema, debe verificar la veracidad del valor o la existencia de la clave a la que desea acceder.

$monday_lectures = "SELECT * from lectures where lecture_time = '11am to 1pm' and lecture_day = 'firday'";
$result_11to1 = mysqli_query($con, $monday_lectures);
$m11to1 = mysqli_fetch_array($result_11to1);
if ($m11to1 && $m11to1["lecture_day"] == !'') {
    echo "<td>".$m11to1["lecture_name"]."</td>";
} else {
    echo "<td> no class</td>";
}

Si lo que busca es un valor único de la matriz de resultados, puede especificar un valor predeterminado en caso de que el resultado no esté presente.

$monday_lectures = "SELECT * from lectures where lecture_time = '11am to 1pm' and lecture_day = 'firday'";
$result_11to1 = mysqli_query($con, $monday_lectures);
$m11to1 = mysqli_fetch_array($result_11to1);
$lecture = $m11to1["lecture_day"] ?? null;

Lo mismo se aplica a la DOP.

$monday_lectures = $pdo->prepare("SELECT * from lectures where lecture_time = '11am to 1pm' and lecture_day = 'firday'");
$monday_lectures->execute();
$m11to1 = $monday_lectures->fetch();
$lecture = $m11to1["lecture_day"] ?? null;
0
Dharman 22 ene. 2021 a las 15:14