Bonjour à tous,

Je voudrais savoir comment faire pour afficher ma BDD en temps réel sans envoyer trop de requêtes à ma BDD pour que ça ne soit pas trop lourd, je sais qu'il faut utiliser Ajax pour cela mais je ne sais pas si je m'y prends correctement car je ne suis pas très à l'aise avec ça.
Pour l'instant j'utilise JQuery avec la fonction load pour faire cela, pouvez-vous me donner votre avis et me dire comment faire si cela n'est pas la meilleure solution, merci !

Voici mon code :

Ici ma page index avec mon html/css/js (index.php) -> (d'ailleurs je n'ai plus de php sur cette page donc je devrais peut-être changer son type)
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<html>
<head>
	<title>MGT Orders</title>
	<link rel="stylesheet" href="https://unpkg.com/tachyons@4.10.0/css/tachyons.min.css"/>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<style type="text/css">
                section {
                        display: grid;
                        grid-template-rows: auto auto auto;
                }
 
 
                .container {
                        display: flex;
                        flex-wrap: wrap;
                        align-items: center;
                }
 
                .container > div {
                        flex: 100%;
                }
 
                @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
                /* IE10+ CSS styles go here */
                        .container > div {
                                width: 100%;
                        }
                }
 
                @supports (-ms-accelerator:true) {
                /* IE10+ CSS styles go here */
                        .container > div {
                                width: 100%;
                        }
                }
 
 
        </style>
</head>
<body>	
	<section>
		<marquee scrollamount="3" direction="up" height="100%" width="100%">
		<div class="container">
			<div class="tc fl f3 pv2 b">Orders Created</div>
			<div class="tc fl pv2" id="ordersCreated"></div>
		</div>
 
		<div class="container bt b--black">
			<div class="tc fl f3 pv2 b ">Orders To Pick</div>
			<div class="tc fl pv2 " id="ordersToPick"> </div>
		</div>
 
 
		<div class="container bt b--black">
			<div class="tc fl f3 pv2 b">Orders Invoiced</div>
			<div class="tc fl pv2 " id="ordersInvoiced"> </div>
		</div>
		</marquee>
	</section>
 
	<script type="text/javascript">
                setInterval('load_orders()', 500);
                function load_orders() {
                        $('#ordersCreated').load('queryOrdersCreated.php');
                        $('#ordersToPick').load('queryOrdersToPick.php');
                        //$('#ordersToShip').load('queryOrdersToShip.php');
                        $('#ordersInvoiced').load('queryOrdersInvoiced.php');
                }
        </script>
</body>
</html>


Page php pour ma connexion a la bdd : (connect_db.php)
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<?php
 
    $db_name = 'warehouseproject';
    $db_host = 'localhost';
    $db_user = 'root';
    $db_pass = '';
 
	$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
	if (!$conn) {
		die ('Failed to connect to MySQL: ' . mysqli_connect_error());	
	}
?>

Une de mes pages avec mes requetes (queryOrdersToPick.php) :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
    //header("Refresh:1");
include('connect_db.php');
 
$sqlPick = 'SELECT * FROM `orders` WHERE `State`= "Open" AND `Reserved` > 0 AND `Invoice` = "" AND `Ship Date` <> date_format(CURRENT_DATE(), "%m/%d/%Y") ORDER BY `Reserved` DESC';
$sqlPickShip = 'SELECT * FROM `orders` WHERE `State`= "Open" AND `Reserved` > 0 AND `Invoice` = "" AND `Ship Date`= date_format(CURRENT_DATE(), "%m/%d/%Y") ORDER BY `Reserved` DESC';
 
$queryPick = mysqli_query($conn, $sqlPick);
$queryPickShip = mysqli_query($conn, $sqlPickShip);
 
 
if (!$queryPickShip || !$queryPick) {
	die ('SQL Error: ' . mysqli_error($conn));
}
 
 
$noPickShip = 1;
while ($rowPickShip = mysqli_fetch_array($queryPickShip))
{
	echo 	'<div class="pa2 bg-red ba b--white "> SO: <b>'.$rowPickShip['SO'].'</b> 
				---- <b>'.$rowPickShip['Reserved'].'/'.$rowPickShip['Items'].'</b> Items reserved 
				---- Ship date: <b>'. date('m/d/Y', strtotime($rowPickShip['Ship Date'])) 
			.'</b></div>';
 
	$noPickShip++;
}
 
$noPick = 1;
while ($rowPick = mysqli_fetch_array($queryPick))
{
	echo 	'<div class="pa2 bg-yellow ba b--white "> SO: <b>'.$rowPick['SO'].'</b> 
				---- <b>'.$rowPick['Reserved'].'/'.$rowPick['Items'].'</b> Items reserved 
				---- Ship date: <b>'. date('m/d/Y', strtotime($rowPick['Ship Date'])) 
			.'</b></div>';
 
	$noPick++;
}
?>

Une de mes pages avec une requete (queryOrdersCreated.php) :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
    //header("Refresh:1");
include('connect_db.php');
 
$sql = 'SELECT * FROM `orders` WHERE `State`= "Open" AND `Reserved` <= 0 AND `Invoice` = "" ';
 
$query = mysqli_query($conn, $sql);
 
if (!$query) {
	die ('SQL Error: ' . mysqli_error($conn));
}
 
$no = 1;
while ($row = mysqli_fetch_array($query))
{
	echo 	'<div class="pa2 bg-green ba b--white "> SO: <b>'.$row['SO'].'</b> 
				---- <b>'.$row['Reserved'].'/'.$row['Items'].'</b> Items reserved 
				---- Ship date: <b>'. date('m/d/Y', strtotime($row['Ship Date'])) 
			.'</b></div>';
	$no++;
}
?>