0

I'm working on a calendar that fetches data from an immensely populated database (more than 10,000 records). This has made the application extremely slow to load.

In view of this, I am trying to implement via AJAX (json) a search for weeks.

I've already been able to load the current week via AJAX, but when I click the prev or next buttons, the adjacent weeks are empty.

From what I read in the documentation, these buttons would continue sending the startParam and endParam variables, but this is not happening.

My code is jammed and full of php patches, but it works perfectly, except for this slowness.

Jquery:

events:{
url: '../ajax/entrada_agenda.php',
type: 'GET',
dataType: 'json',
data: {
        startParam: <?=strtotime($FirstDayWeek)?>, 
        endParam: <?=strtotime($LastDayWeek)?>, 
    },
}

,

And in the PHP page I make a select with the dates sent (already converted to UNIX).

SELECT * FROM agenda_marcacao WHERE DATE(data_do_agendamento) >= '".$data_start."' AND DATE(data_do_agendamento) <= '".$data_end."'

$data_start and $data_end are variables populate like this:

$data_start = date("Y-m-d", $_GET['start']); 
$data_end = date("Y-m-d", $_GET['end']); 

Is there any way I can indicate on the prev and next buttons these start and end values for weeks?

Because of what I see, FullCalendar will not interpret that I want to pick up the events of the weeks only when prompted, not the entire database ...

Any help will be greatly appreciated, thanks :)

ADyson
  • 57,178
  • 14
  • 51
  • 63
  • Your code is vulnerable to SQL Injection attacks. You should use parameterised queries and prepared statements to help prevent attackers from compromising your database by using malicious input values. http://bobby-tables.com gives an explanation of the risks, as well as some examples of how to write your queries safely using PHP / mysqli. **Never** insert unsanitised data directly into your SQL. The way your code is written now, someone could easily steal, incorrectly change, or even delete your data. – ADyson Dec 03 '18 at 09:19
  • P.S. if you show us how you populate $data_start and $data_end we might have some idea if you are picking up the values from fullCalendar correctly. Also, did you check if fullCalendar is _sending_ the right values (by watching your browser's Network tools)? I think you need to debug this a bit more, mainly. – ADyson Dec 03 '18 at 09:20
  • Thanks for comments, $data_start and $data_end are variables populate like this: $data_start = date("Y-m-d", $_GET['start']); $data_end = date("Y-m-d", $_GET['end']); – Franklin Ferreira Dec 03 '18 at 14:54
  • You should be getting an error in PHP then - date() expects the second parameter to be an integer, not a string. See http://php.net/manual/en/function.date.php . You need to involve http://php.net/manual/en/function.strtotime.php in your code. See https://stackoverflow.com/a/49658097/5947043 for example – ADyson Dec 03 '18 at 15:01
  • Man, THANKS you save me, ill never use network tools, but now, i can see what ive post, and can correct that... very well and thanks a lot (sorry for the bad english) – Franklin Ferreira Dec 03 '18 at 15:08

0 Answers0