[PHP] [MYSQL] Недостаточно памяти для открытия этой страницы

Система управления библиотекой

Проблема: Администратор или библиотека хотели бы видеть запросы на заимствование от студентов. Однако иногда он не может отображать сотни запросов.

Среда: XAMPP в localhost, PHP, MYSQL (Mariadb 10.1.21), angularjs в качестве внешнего интерфейса. Вы можете обратиться к этому для запроса и БД ->
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. При отладке обнаружена одна ошибка -> недостаточно памяти для открытия этой страницы (когда требуется извлечь данные из loanItems)

0

Решение

Измените ваш код 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);

Надеюсь, это поможет ..!

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector