Bonjour,
En guise de hobby j'apprend php , mysql.
J'ai créé une page avec un tableau html dans lequel j'inscris les données issues d'un SELECT, avec un FOREACH.
J'ai une fonction qui va chercher les infos, dans laquelle j'ai un switch car 'ai ajouté des boutons pour classer les données.
J'ai plusieurs requêtes avec ORDER BY qui varient pour chaque cas du switch.
Tout fonctionne.
J'ai aussi essayé avec array_multisort et dans ce cas là je n'ai plus qu'une seule requête que je manipule avec array_multisort.
Celà fonctionne aussi, simplement je ne sais pas si c'est correct, ce qui convient le mieux ou pas !
Si quelqu'un peut m'éclaicir l'esprit et me dire ce qui est logique ou pas les erreurs que j'ai pu faire même si les bons résultats s'affichent.
Voici mes codes.
multi requete
attay_multisort
Code : 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
73
74
75
76
77
78
79
80
81
82
83
84 function produits() { $tableau = ''; $ordre = $_GET['ordre']; switch($ordre) { /*1*/ case 'desc' : $pdo = PDO2::getInstance(); $sql = $pdo->prepare('SELECT reference, description, prix, marqueINT, sousCatINT FROM articles WHERE sousCatINT=:souscat ORDER BY prix DESC'); $sql->bindValue(':souscat', $_GET['sousCat']); $sql->execute(); if($result = $sql->fetchAll(PDO::FETCH_ASSOC)) { include VUE.'tableau_produits.php'; } break; /*2*/ case 'asc' : $pdo = PDO2::getInstance(); $sql = $pdo->prepare('SELECT reference, description, prix, marqueINT, sousCatINT FROM articles WHERE sousCatINT=:souscat ORDER BY prix ASC'); $sql->bindValue(':souscat', $_GET['sousCat']); $sql->execute(); if($result = $sql->fetchAll(PDO::FETCH_ASSOC)) { include VUE.'tableau_produits.php'; } break; /*3*/ case 'descm' : $pdo = PDO2::getInstance(); $sql = $pdo->prepare('SELECT reference, description, prix, marqueINT, sousCatINT FROM articles WHERE sousCatINT=:souscat ORDER BY marqueINT DESC, prix DESC'); $sql->bindValue(':souscat', $_GET['sousCat']); $sql->execute(); if($result = $sql->fetchAll(PDO::FETCH_ASSOC)) { include VUE.'tableau_produits.php'; } break; /*4*/ case 'ascm' : $pdo = PDO2::getInstance(); $sql = $pdo->prepare('SELECT reference, description, prix, marqueINT, sousCatINT FROM articles WHERE sousCatINT=:souscat ORDER BY marqueINT ASC, prix ASC'); $sql->bindValue(':souscat', $_GET['sousCat']); $sql->execute(); if($result = $sql->fetchAll(PDO::FETCH_ASSOC)) { include VUE.'tableau_produits.php'; } break; /*5*/ default : $pdo = PDO2::getInstance(); $sql = $pdo->prepare('SELECT reference, description, prix, marqueINT, sousCatINT FROM articles WHERE sousCatINT=:souscat ORDER BY reference'); $sql->bindValue(':souscat', $_GET['sousCat']); $sql->execute(); $result = $sql->fetchAll(PDO::FETCH_ASSOC); $sql->closeCursor(); if (count($result)==0) { $tableau ='<tr>Aucun article en stock...</tr>'; } if (count($result)) { foreach( $result as $articles) { $tableau .='<tr>'; $tableau .='<td>'.$articles['marqueINT'].'</td>'; $tableau .='<td>'.$articles['reference'].'</td>'; $tableau .='<td><a href="#" class="colornone">'.$articles['description'].'</a></td>'; $tableau .='<td>'.$articles['prix'].' </td>'; $tableau .='</tr>'; } //echo '<pre>'.print_r($result).'</pre>'; } break; } return $tableau; } include VUE.'articles.php';
tabeau_produits
Code : 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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 <?php function produits() { $pdo = PDO2::getInstance(); $sql = $pdo->prepare('SELECT reference, description, prix, marqueINT, sousCatINT FROM articles WHERE sousCatINT=:souscat ORDER BY reference'); $sql->bindValue(':souscat', $_GET['sousCat']); $sql->execute(); $result = $sql->fetchAll(PDO::FETCH_ASSOC); $sql->closeCursor(); $ordre = $_GET['ordre']; $tableau = ''; switch($ordre) { /*1*/ case 'desc' : foreach( $result as $key =>$article) { $prix[$key] = $article['prix']; $mark[$key] = $article['marqueINT']; //$ref[$key] = $article['reference']; //$descrip[$key] = $article['description']; } array_multisort($prix, SORT_DESC, $result); include VUE.'tableau_produits.php'; break; /*2*/ case 'asc' : foreach( $result as $key =>$article) { $prix[$key] = $article['prix']; $mark[$key] = $article['marqueINT']; //$ref[$key] = $article['reference']; //$descrip[$key] = $article['description']; } array_multisort($prix, SORT_ASC, $result); include VUE.'tableau_produits.php'; break; /*3*/ case 'descm' : foreach( $result as $key =>$article) { $prix[$key] = $article['prix']; $mark[$key] = $article['marqueINT']; //$ref[$key] = $article['reference']; //$descrip[$key] = $article['description']; } array_multisort($mark, SORT_STRING, $prix, SORT_DESC, $result); include VUE.'tableau_produits.php'; break; /*4*/ case 'ascm' : foreach( $result as $key =>$article) { $prix[$key] = $article['prix']; $mark[$key] = $article['marqueINT']; //$ref[$key] = $article['reference']; //$descrip[$key] = $article['description']; } array_multisort($mark, SORT_STRING, $prix, SORT_ASC, $result); include VUE.'tableau_produits.php'; break; /*5*/ default : $pdo = PDO2::getInstance(); $sql = $pdo->prepare('SELECT reference, description, prix, marqueINT, sousCatINT FROM articles WHERE sousCatINT=:souscat ORDER BY reference'); $sql->bindValue(':souscat', $_GET['sousCat']); $sql->execute(); $tableau =''; $result = $sql->fetchAll(PDO::FETCH_ASSOC); $sql->closeCursor(); if (count($result)==0) { $tableau ='<tr>Aucun article en stock...</tr>'; } if (count($result)) { foreach( $result as $articles) { $tableau .='<tr>'; $tableau .='<td>'.$articles['marqueINT'].'</td>'; $tableau .='<td>'.$articles['reference'].'</td>'; $tableau .='<td><a href="#" class="colornone">'.$articles['description'].'</a></td>'; $tableau .='<td>'.$articles['prix'].' </td>'; $tableau .='</tr>'; } //echo '<pre>'.print_r($result).'</pre>'; } break; } return $tableau; } include VUE.'articles.php';
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 foreach( $result as $articles) { $tableau .='<tr>'; $tableau .='<td>'.$articles['marqueINT'].'</td>'; $tableau .='<td>'.$articles['reference'].'</td>'; $tableau .='<td><a href="#" class="colornone">'.$articles['description'].'</a></td>'; $tableau .='<td>'.$articles['prix'].' </td>'; $tableau .='</tr>'; }
Voilà, j'espère que mon message est clair, je découvre la programmation depuis 2 mois, j'aime apprendre mais y'en a des choses...
Par avance merci !
Partager