php - [PHP][MYSQL] 内存不足,无法打开此页面

标签 php mysql angularjs xampp

图书馆管理系统

问题:管理员或图书馆希望查看学生的借阅请求。但是,有时无法显示数百个请求。

环境:本地主机中的XAMPP,PHP,MYSQL(Mariadb 10.1.21),angularjs作为前端框架。查询和db可以引用这个 -> https://www.db-fiddle.com/f/asGAdqfK3cP29svgQtBM9F/5#&togetherjs=Kp3I4En96O

JS代码:

$http.get("GetAllBorrow.php", { params: { "StudentID":""} })
    .then(function(data) {
        console.log(data.data);
        $scope.requests = data.data;

PHP 代码:

if(strcmp($_GET["StudentID"] , "") == 0)
{
$sql = //query 1
} else {
    exit('Invalid student');
}
$result = mysqli_query($conn,$sql) or die (mysql_error());
$data = array();

while($row = mysqli_fetch_array($result,MYSQL_ASSOC))
{
    $borrowItemID= $row['borrowItemID'];
    $resourceID= $row['resourceID'];
    $borrowingID= $row['borrowingID'];

    include('GetBorrowItem.php');//from query 2 to query 8
    $data[] = $row;
}

GetBorrowItem.php代码

<?php
$str1 = substr ($resourceID,0,2);

if(strcmp($str1, "IN") == 0) {
    $sql2 = //query 2
} else if(strcmp($str1, "BO") == 0) {
    $sql2 = //query 3
} else if (strcmp($str1, "CD") == 0) {
    $sql2 = //query 4
} else if (strcmp($str1, "MG") == 0) {
    $sql2 = //query 5
} else if (strcmp($str1, "EB") == 0) {
    $sql2 = //query 6
} else if (strcmp($str1, "FL") == 0) {
    $sql2 = //query 7
} else if (strcmp($str1, "DC") == 0) {
     $sql2 = //query 8
} else{
    die ("There is no such item!");
}

if (!mysqli_query($conn,$sql2)) {
printf("Error: %s\n", mysqli_error($conn));}

while($row2 =  mysqli_fetch_array($result2,MYSQL_ASSOC)){
    $LineDataDetails = $row2;
}

header("Content-Type: application/json; charset=UTF-8");
$LineDataDetails =  json_encode($LineDataDetails);

echo $LineDataDetails;?>

我已经解决这个问题近两周了,但仍然找不到解决方案。 以下是我所做的事情:

  1. 怀疑是因为一次检索的数据太多->删除了数据库中的一些数据->结果:可以显示但有时不能显示

  2. 一行一行的大量调试 -> 只显示空白(从数据库中检索不到任何内容) -> 怀疑代码问题,但有时确实使用过,两个月后才出现错误

  3. 调试时,发现有一个错误 -> 内存不足,无法打开此页面(当想从borrowItems中检索数据时)

最佳答案

使用以下代码修改您的 PHP 代码。

if(strcmp($_GET["StudentID"] , "") == 0)
{
$sql = //query 1
} else {
    exit('Invalid student');
}
$result = mysqli_query($conn,$sql) or die (mysql_error());
$data = array();

while($row = mysqli_fetch_array($result,MYSQL_ASSOC))
{
    $borrowItemID= $row['borrowItemID'];
    $resourceID= $row['resourceID'];
    $borrowingID= $row['borrowingID'];

     $str1 = substr ($resourceID,0,2);

    if(strcmp($str1, "IN") == 0) {
        $sql2 = //query 2
    } else if(strcmp($str1, "BO") == 0) {
        $sql2 = //query 3
    } else if (strcmp($str1, "CD") == 0) {
        $sql2 = //query 4
    } else if (strcmp($str1, "MG") == 0) {
        $sql2 = //query 5
    } else if (strcmp($str1, "EB") == 0) {
        $sql2 = //query 6
    } else if (strcmp($str1, "FL") == 0) {
        $sql2 = //query 7
    } else if (strcmp($str1, "DC") == 0) {
         $sql2 = //query 8
    } else{
        die ("There is no such item!");
    }

    $result2=mysqli_query($conn,$sql2) or die(mysqli_error($conn));
        while($row2 =  mysqli_fetch_array($result2,MYSQL_ASSOC)){
          array_push($data,$row2);
    }


}
echo json_encode($data);

希望这会有所帮助..!

关于php - [PHP][MYSQL] 内存不足,无法打开此页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49230837/

相关文章:

php - 不知道如何制作这个表格

php - 如何为使用 ExcelImport、存储库和模型的自定义命令编写 Laravel 测试

php - 表单中的选择字段未使用 php 发送数据

javascript - 基于另一个下拉列表的下拉列表,选择选项来自数据库

MySQL服务器配置失败

javascript - AngularJS 中的 Kendo Sortable 事件,如何捕获?

MySQL 通过每秒从另外 2 个列中选择来更新一个列

Mysql子查询返回不正确的结果

javascript - 通过 ng-repeat 循环时从 dict 获取值

javascript - 使用后退按钮时如何恢复 Angular Controller 中的过滤状态?